1111from diffpy .pdfgui .control .controlerrors import ControlKeyError
1212from diffpy .pdfgui .tests .testutils import datafile
1313
14+ # ----------------------------------------------------------------------------
1415
15- ##############################################################################
1616class TestPDFStructure (unittest .TestCase ):
1717
1818
@@ -41,28 +41,51 @@ def test_read(self):
4141 stru .read , notastructurefile , format = 'pdffit' )
4242 return
4343
44- # def test_copy(self):
45- # """check PDFStructure.copy()
46- # """
47- # return
44+
45+ def test_copy (self ):
46+ """check PDFStructure.copy()
47+ """
48+ stru2 = self .stru .copy ()
49+ self .assertEqual ('noname' , stru2 .name )
50+ self .assertEqual (self .stru .pdffit , stru2 .pdffit )
51+ self .assertIsNot (self .stru .pdffit ['ncell' ], stru2 .pdffit ['ncell' ])
52+ return
4853
4954
5055 def test_setvar (self ):
5156 """check PDFStructure.setvar()
5257 """
5358 stru = self .stru
59+ stru .addNewAtom ('C' , [0 , 0 , 0 ], anisotropy = True )
60+ stru .setvar ('pscale' , 1.5 )
61+ self .assertEqual (1.5 , stru .pdffit ['scale' ])
5462 stru .setvar ('lat(1)' , 4 )
5563 stru .setvar ('lat(2)' , 5 )
5664 stru .setvar ('lat(3)' , 7 )
5765 self .assertEqual (4 , stru .lattice .a )
5866 self .assertEqual (5 , stru .lattice .b )
5967 self .assertEqual (7 , stru .lattice .c )
68+ stru .setvar ('lat(4)' , 91 )
69+ stru .setvar ('lat(5)' , 92 )
70+ stru .setvar ('lat(6)' , 93 )
71+ self .assertEqual (91 , stru .lattice .alpha )
72+ self .assertEqual (92 , stru .lattice .beta )
73+ self .assertEqual (93 , stru .lattice .gamma )
6074 stru .setvar ('spdiameter' , 17 )
6175 self .assertEqual (17 , stru .pdffit ['spdiameter' ])
6276 stru .setvar ('stepcut' , 19 )
6377 self .assertEqual (19 , stru .pdffit ['stepcut' ])
6478 self .assertRaises (ControlKeyError ,
6579 stru .setvar , 'sstepcut' , 6 )
80+ stru .setvar ('x(1)' , 0.1 )
81+ stru .setvar ('y(1)' , 0.2 )
82+ stru .setvar ('z(1)' , 0.3 )
83+ stru .setvar ('occ(1)' , 0.9 )
84+ stru .setvar ('u23(1)' , 0.004 )
85+ self .assertEqual ([0.1 , 0.2 , 0.3 ], stru [0 ].xyz .tolist ())
86+ self .assertEqual (0.9 , stru [0 ].occupancy )
87+ self .assertEqual (0.004 , stru [0 ].U [1 , 2 ])
88+ self .assertRaises (ControlKeyError , stru .setvar , 'invalid(1)' , 7 )
6689 return
6790
6891
@@ -79,6 +102,9 @@ def test_getvar(self):
79102 self .assertEqual (0.1 , stru .getvar ('x(1)' ))
80103 self .assertEqual (0.2 , stru .getvar ('y(1)' ))
81104 self .assertEqual (0.3 , stru .getvar ('z(1)' ))
105+ self .assertEqual (1.0 , stru .getvar ('occ(1)' ))
106+ # pscale
107+ self .assertEqual (1.0 , stru .getvar ('pscale' ))
82108 # spdiameter
83109 self .assertEqual (0.0 , stru .getvar ('spdiameter' ))
84110 stru .pdffit ['spdiameter' ] = 37.7
@@ -87,11 +113,14 @@ def test_getvar(self):
87113 self .assertEqual (0.0 , stru .getvar ('stepcut' ))
88114 stru .pdffit ['stepcut' ] = 17.7
89115 self .assertEqual (17.7 , stru .getvar ('stepcut' ))
116+ self .assertRaises (ControlKeyError , stru .getvar , 'invalid(1)' )
117+ self .assertRaises (ControlKeyError , stru .getvar , 'invalid' )
90118 return
91119
92120
93121# End of class TestPDFStructure
94122
123+ # ----------------------------------------------------------------------------
95124
96125if __name__ == '__main__' :
97126 unittest .main ()
0 commit comments