4 #define BOOST_TEST_DYN_LINK
5 #include <boost/test/unit_test.hpp>
40 return "cd " + dir.string() +
"&& ";
44 virtual void check_init();
47 virtual void check_symmetry();
50 virtual void check_composition();
53 virtual void check_bset() = 0;
56 virtual void check_enum();
59 virtual void check_select();
62 virtual void check_query();
78 void _check_symmetry(
int lat_pg_op,
int lat_pg_class,
79 int xtal_pg_op,
int xtal_pg_class,
80 int fg_op,
int fg_class,
81 std::string lat_pg_name, std::string xtal_pg_name);
83 template<
typename Iterator>
84 void _check_composition_axes(Iterator begin, Iterator end);
100 template<
typename Iterator>
101 void Proj::_check_composition_axes(Iterator begin, Iterator end) {
103 m_p.popen(cd_and() +
"ccasm composition --select 0");
105 for(
auto it = begin; it != end; ++it) {
106 BOOST_CHECK_MESSAGE(boost::regex_search(m_p.gets(), m_match, boost::regex(*it)) ==
true, m_p.gets());
110 boost::regex_search(m_p.gets(), m_match, boost::regex(R
"(Currently selected composition axes: 0)")) ==
Specification of CASM project directory structure.
DirectoryStructure m_dirs
fs::path proj_dir(fs::path init)
Create a new project directory, appending ".(#)" to ensure it is a new project.
Remember how to use popen.
void check_symgroup(const jsonParser &json, int N_op, int N_class)
Check some aspects of a SymGroup json, including the expected number of conjugacy classes and operati...
std::string cd_and() const
BasicStructure< Site > prim
static std::vector< fs::path > & directory_list
Proj(fs::path _proj_dir, const BasicStructure< Site > &_prim, std::string _title, std::string _desc)
notstd::cloneable_ptr< ProjectSettings > m_set