1 #define BOOST_TEST_DYN_LINK
2 #include <boost/test/unit_test.hpp>
35 BOOST_CHECK_EQUAL(struc.
basis[0].site_occupant().
size(), 3);
37 std::string check_name[3] = {
"A",
"B",
"C"};
39 for(
int i = 0; i < 3; i++) {
43 BOOST_CHECK_EQUAL(struc.
basis[0].site_occupant()[i].name, check_name[i]);
44 BOOST_CHECK_EQUAL(
almost_equal(struc.
basis[0].site_occupant()[i][0].const_frac(), Eigen::Vector3d(0.0, 0.0, 0.0),
tol),
true);
45 BOOST_CHECK_EQUAL(struc.
basis[0].site_occupant()[i][0].specie.name, check_name[i]);
76 BOOST_CHECK_EQUAL(struc.
basis[0].site_occupant().
size(), 3);
78 std::string check_name[3] = {
"A",
"B",
"C"};
79 int check_value[4] = {0, 0, 1, 2};
81 for(
int i = 0; i < 4; i++) {
82 for(
int j = 0; j < 3; j++) {
86 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant()[j].name, check_name[j]);
87 BOOST_CHECK_EQUAL(
almost_equal(struc.
basis[i].site_occupant()[j][0].const_frac(), Eigen::Vector3d(0.0, 0.0, 0.0),
tol),
true);
88 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant()[j][0].specie.name, check_name[j]);
91 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant().value(), check_value[i]);
138 BOOST_CHECK_EQUAL(struc.
basis.
size(), 4);
140 std::string check_name[4] = {
"A",
"A",
"B",
"C"};
142 for(
int i = 0; i < 4; i++) {
144 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant().
size(), 1);
149 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant()[0].name, check_name[i]);
150 BOOST_CHECK_EQUAL(
almost_equal(struc.
basis[i].site_occupant()[0][0].const_frac(), Eigen::Vector3d(0.0, 0.0, 0.0),
tol),
true);
151 BOOST_CHECK_EQUAL(struc.
basis[i].site_occupant()[0][0].specie.name, check_name[i]);
158 BOOST_AUTO_TEST_SUITE(StructureTest)
169 fs::path tmp_file = testdir /
"PRIM1_out";
196 fs::path tmp_file = testdir /
"POS1_out";
197 fs::ofstream sout(tmp_file);
218 fs::path tmp_file = testdir /
"POS1_vasp5_out";
219 fs::ofstream sout(tmp_file);
238 fs::path tmp_file = testdir /
"POS1_prim.json";
241 fs::ofstream sout(tmp_file);
251 BOOST_AUTO_TEST_SUITE_END()
BOOST_AUTO_TEST_CASE(PRIM1Test)
Structure specifies the lattice and atomic basis of a crystal.
boost::filesystem::path testdir("tests/unit/crystallography")
void write_prim(const BasicStructure< Site > &prim, fs::path filename, COORD_TYPE mode)
Write prim.json to file.
const Lattice & lattice() const
void prim2_read_test(Structure &struc)
BasicStructure< Site > read_prim(fs::path filename)
void print(std::ostream &stream, unsigned int indent=2, unsigned int prec=12) const
Print json to stream.
void print(std::ostream &sout)
Print POSCAR to stream.
const MasterSymGroup & factor_group() const
void pos1_read_test(Structure &struc)
Array< CoordType > basis
Lattice vectors that specifies periodicity of the crystal.
Print POSCAR with formating options.
void set_append_atom_names_off()
Do not append atom name to end of each coordinate line.
bool almost_equal(const GenericCluster< CoordType > &LHS, const GenericCluster< CoordType > &RHS, double tol)
void prim1_read_test(Structure &struc)