def test_clusters_from_file(self): clusters1 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) tort.tort_mod.tear_down() clusters2 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=3.5, elements={"Li"}, ) tort.tort_mod.tear_down() self.assertEqual(len(clusters1), 1) self.assertEqual(len(clusters2), 2)
def test_cluster_periodic(self): clusters1 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) tort.tort_mod.tear_down() clusters2 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=3.5, elements={"Li"}, ) tort.tort_mod.tear_down() self.assertEqual(clusters1.pop().periodic, 3) if clusters2.pop().periodic == 3: self.assertEqual(clusters2.pop().periodic, 0) else: self.assertEqual(clusters2.pop().periodic, 3)
def test_periodic(self): clusters1 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_periodic_1.vasp", rcut=4.0, elements={"Li"}, ) clusters2 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_periodic_2.vasp", rcut=4.0, elements={"Li"}, ) clusters3 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_periodic_3.vasp", rcut=4.0, elements={"Li"}, ) self.assertEqual(clusters1.pop().periodic, 1) self.assertEqual(clusters2.pop().periodic, 2) self.assertEqual(clusters3.pop().periodic, 3)
def test_torture_cluster(self, value): cluster = clusters_from_file(filename="tests/STRUCTURE_FILES/" + value, rcut=4.0, elements={"Li"}) clusterf = cluster.pop() clusterf.grow_cluster() clusterf.torture_fort() tort.tort_mod.tear_down() self.assertEqual( set([ node.tortuosity for node in clusterf.return_key_nodes(key="Halo", value=False) ]), set([4, 3, 3, 3, 3, 3, 3, 3]), )
def test_graph_from_structure(self): clusters1 = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) structure = Structure.from_file("tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp") graph = graph_from_structure(structure, rcut=4.0, elements={"Li"}) neigh_set_1 = set( [frozenset(node.neighbours_ind) for node in clusters1.pop().nodes] ) neigh_set_2 = set( [frozenset(node.neighbours_ind) for node in graph.clusters.pop().nodes] ) self.assertEqual(neigh_set_1, neigh_set_2)
def test_graph_from_file(self): graph = graph_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) tort.tort_mod.tear_down() clusters = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) tort.tort_mod.tear_down() c_nodes = set([node.index for node in clusters.pop().nodes]) g_nodes = set([node.index for node in graph.clusters.pop().nodes]) self.assertEqual(g_nodes, c_nodes)
def test_minimal_cluster(self, value): graph = graph_from_file(filename="tests/STRUCTURE_FILES/" + value, rcut=4.0, elements={"Li"}) cluster = clusters_from_file(filename="tests/STRUCTURE_FILES/" + value, rcut=4.0, elements={"Li"}) clusterf = cluster.pop() clusterf.grow_cluster() clusterf.torture_fort() graph.torture() self.assertEqual( set([c.tortuosity for c in graph.minimal_clusters]), set([c.tortuosity for c in list(graph.clusters)]), )
def test_output_clusters_cif(self): graph = graph_from_file( filename="tests/STRUCTURE_FILES/POSCAR_2_clusters.vasp", rcut=4.0, elements={"Li"}, ) graph.output_clusters(fmt="cif") subprocess.run("mv *CLUS* tests/STRUCTURE_FILES/", shell=True) clusters = clusters_from_file( filename="tests/STRUCTURE_FILES/POSCAR_CLUS_0.cif", rcut=4.0, elements={"Li"}, ) c_nodes = set([node.index for node in clusters.pop().nodes]) g_nodes = set([node.index for node in graph.clusters.pop().nodes]) self.assertEqual(g_nodes, c_nodes)