Skip to content

Commit 4182a99

Browse files
committed
TST: cover PDFStructure class
1 parent d4c012f commit 4182a99

1 file changed

Lines changed: 34 additions & 5 deletions

File tree

src/diffpy/pdfgui/tests/TestPDFStructure.py

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
from diffpy.pdfgui.control.controlerrors import ControlKeyError
1212
from diffpy.pdfgui.tests.testutils import datafile
1313

14+
# ----------------------------------------------------------------------------
1415

15-
##############################################################################
1616
class 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

96125
if __name__ == '__main__':
97126
unittest.main()

0 commit comments

Comments
 (0)