def setUp(self):
        """do MOF full cell"""

        #first replace the deuterium with a hydrogen molecule: 0.741/6.8354 = 0.108406238
        # so each H atom is located 0.054203119 above and below the deuterium center

        self.cifParser = CifParser('MOF74_neutron_4K_a-2H.cif')
class MofParse_TestCase(unittest.TestCase):

    def setUp(self):
        """do MOF full cell"""
        
        #first replace the deuterium with a hydrogen molecule: 0.741/6.8354 = 0.108406238
        # so each H atom is located 0.054203119 above and below the deuterium center
        
        self.cifParser=CifParser('MOF74_neutron_4K_a-2H.cif')
        
    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)
        #assert coords==[['C', '0.00000', '0.00000', '0.00000'], 
        #                ['C', '0.33333', '0.66667', '0.00000']]

    def testAllCoords(self):
        coords=self.cifParser.generateAllCoordinates()
        cell=self.cifParser.getUnitCellAsVectors()
        #this is risky because of round off error problems
        print coords 
        print len(coords)
        print cell
        sc = Supercell(coords, cell)#, 1, 1, 1)#, coordType='cartesian')
        sc.i.m=1
        sc.i.n=1
        sc.i.l=2
        sc.create()
        sc.writeSupCellXYZFile('MOF74_neutron_4K_a-2H-112.xyz')
class MofParse_TestCase(unittest.TestCase):
    def setUp(self):
        """do MOF full cell"""

        #first replace the deuterium with a hydrogen molecule: 0.741/6.8354 = 0.108406238
        # so each H atom is located 0.054203119 above and below the deuterium center

        self.cifParser = CifParser('MOF74_neutron_4K_a-2H.cif')

    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)
        #assert coords==[['C', '0.00000', '0.00000', '0.00000'],
        #                ['C', '0.33333', '0.66667', '0.00000']]

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        #this is risky because of round off error problems
        print coords
        print len(coords)
        print cell
        sc = Supercell(coords, cell)  #, 1, 1, 1)#, coordType='cartesian')
        sc.i.m = 1
        sc.i.n = 1
        sc.i.l = 2
        sc.create()
        sc.writeSupCellXYZFile('MOF74_neutron_4K_a-2H-112.xyz')
 def setUp(self):
     """do MOF full cell"""
     
     #first replace the deuterium with a hydrogen molecule: 0.741/6.8354 = 0.108406238
     # so each H atom is located 0.054203119 above and below the deuterium center
     
     self.cifParser=CifParser('MOF74_neutron_4K_a-2H.cif')
class Li2B12H12Parse_TestCase(unittest.TestCase):
    def setUp(self):
        """do Li2B12H12 full cell"""
        self.cifParser = CifParser(os.getcwd() + os.sep + 'li2b12h12.cif')

    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        print 'li2b12h12'
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)
        sc.writeSupCellXYZFile(os.getcwd() + os.sep + 'li2b12h12.xyz')
class Li2B12H12Parse_TestCase(unittest.TestCase):

    def setUp(self):
        """do Li2B12H12 full cell"""
        self.cifParser=CifParser(os.getcwd()+os.sep+'li2b12h12.cif')
        
    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        print 'li2b12h12' 
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)
        sc.writeSupCellXYZFile(os.getcwd()+os.sep+'li2b12h12.xyz')
class LiBH4HexParse_TestCase(unittest.TestCase):
    def setUp(self):
        """do LiBH4 full cell"""
        #self.cifParser=CifParser(home+'/liBH4/hexagonal.cif')
        self.cifParser = CifParser(os.getcwd() + os.sep + 'hexagonal.cif')

    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        print 'hexagonal'
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)
        sc.writeSupCellXYZFile(os.getcwd() + os.sep + 'hexagonal.xyz')
class LiBH4HexParse_TestCase(unittest.TestCase):

    def setUp(self):
        """do LiBH4 full cell"""
        #self.cifParser=CifParser(home+'/liBH4/hexagonal.cif')
        self.cifParser=CifParser(os.getcwd()+os.sep+'hexagonal.cif')
        
    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        #print coords
        #print len(coords)

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        print 'hexagonal'
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)
        sc.writeSupCellXYZFile(os.getcwd()+os.sep+'hexagonal.xyz')
class LiBH4OrthoParse_TestCase(unittest.TestCase):
    def setUp(self):
        """do LiBH4 full cell"""

        self.cifParser = CifParser(os.getcwd() + os.sep + 'orthorhombic.cif')

    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        print "cif coords:"
        pprintCoords(coords)

    def testAllCoords(self):
        coords = self.cifParser.generateAllCoordinates()
        cell = self.cifParser.getUnitCellAsVectors()
        #this is risky because of round off error problems
        print "all coords:"
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)  #, coordType='cartesian')
        sc.writeSupCellXYZFile(os.getcwd() + os.sep + 'orthorhombic.xyz')
class NaAlH4_TestCase(unittest.TestCase):

    def setUp(self):
        """do NaAlH4 full cell"""
        
        self.cifParser=CifParser(os.getcwd()+os.sep+'naalh4.cif')
        
    def testCoords(self):
        coords = self.cifParser.cifToAtomAndCoordinateList()
        print "cif coords:"
        pprintCoords(coords)

    def testAllCoords(self):
        coords=self.cifParser.generateAllCoordinates()
        cell=self.cifParser.getUnitCellAsVectors()
        #this is risky because of round off error problems
        print "all coords:"
        pprintCoords(coords)
        print len(coords)
        print cell
        sc = Supercell(coords, cell, 1, 1, 1)#, coordType='cartesian')
        sc.writeSupCellXYZFile(os.getcwd()+os.sep+'naalh4.xyz')
 def setUp(self):
     """do LiBH4 full cell"""
     
     self.cifParser=CifParser(os.getcwd()+os.sep+'orthorhombic.cif')
 def setUp(self):
     """do NaAlH4 full cell"""
     
     self.cifParser=CifParser(os.getcwd()+os.sep+'naalh4.cif')
 def setUp(self):
     """do Li2B12H12 full cell"""
     self.cifParser=CifParser(os.getcwd()+os.sep+'li2b12h12.cif')
 def setUp(self):
     """do LiBH4 full cell"""
     #self.cifParser=CifParser(home+'/liBH4/hexagonal.cif')
     self.cifParser=CifParser(os.getcwd()+os.sep+'hexagonal.cif')
 def setUp(self):
     """do Li2B12H12 full cell"""
     self.cifParser = CifParser(os.getcwd() + os.sep + 'li2b12h12.cif')
 def setUp(self):
     """do LiBH4 full cell"""
     #self.cifParser=CifParser(home+'/liBH4/hexagonal.cif')
     self.cifParser = CifParser(os.getcwd() + os.sep + 'hexagonal.cif')
    def setUp(self):
        """do LiBH4 full cell"""

        self.cifParser = CifParser(os.getcwd() + os.sep + 'orthorhombic.cif')