forked from diffpy/diffpy.pdfgui
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_loadproject.py
117 lines (96 loc) · 3.98 KB
/
test_loadproject.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#!/usr/bin/env python
##############################################################################
#
# PDFgui by DANSE Diffraction group
# Simon J. L. Billinge
# (c) 2008 trustees of the Michigan State University.
# All rights reserved.
#
# File coded by: Pavol Juhas
#
# See AUTHORS.txt for a list of people who contributed.
# See LICENSE.txt for license information.
#
##############################################################################
"""Unit tests for tui.py
"""
import unittest
from diffpy.pdfgui.control.controlerrors import ControlFileError
from diffpy.pdfgui.tests.testutils import GUITestCase, datafile
from diffpy.pdfgui.tui import LoadProject
# ----------------------------------------------------------------------------
class TestLoadProject(GUITestCase):
prj_lcmo = None
prj_lcmo_full = None
prj_ni = None
def setUp(self):
# load project files once
if TestLoadProject.prj_lcmo is None:
TestLoadProject.prj_lcmo = LoadProject(datafile("lcmo.ddp"))
TestLoadProject.prj_lcmo_full = LoadProject(datafile("lcmo_full.ddp"))
TestLoadProject.prj_ni = LoadProject(datafile("ni.ddp"))
# assign them to this instance
self.prj_lcmo = TestLoadProject.prj_lcmo
self.prj_lcmo_full = TestLoadProject.prj_lcmo_full
self.prj_ni = TestLoadProject.prj_ni
return
def tearDown(self):
return
def test___init__(self):
"""check LoadProject.__init__()"""
self.assertEqual(1, len(self.prj_ni.getFits()))
self.assertRaises(ControlFileError, LoadProject, "does/not/exist.ddp")
return
def test_getFits(self):
"""check LoadProject.getFits()"""
lcmofits = self.prj_lcmo.getFits()
lcmofullfits = self.prj_lcmo_full.getFits()
self.assertEqual(1, len(lcmofits))
self.assertEqual("fit-d300", lcmofits[0].name)
self.assertEqual(10, len(lcmofullfits))
self.assertEqual("fit-d300", lcmofullfits[0].name)
self.assertEqual("fit-d980", lcmofullfits[-1].name)
return
def test_getDataSets(self):
"""check LoadProject.getDataSets()"""
lcmofullfits = self.prj_lcmo_full.getFits()
datasets = self.prj_lcmo_full.getDataSets()
self.assertEqual(10, len(datasets))
self.assertEqual("d550", datasets[1].name)
datasets5 = self.prj_lcmo_full.getDataSets(lcmofullfits[:5])
self.assertEqual(5, len(datasets5))
self.assertEqual("d720", datasets5[-1].name)
return
def test_getPhases(self):
"""check LoadProject.getPhases()"""
lcmofullfits = self.prj_lcmo_full.getFits()
phases = self.prj_lcmo_full.getPhases()
self.assertAlmostEqual(5.53884, phases[0].refined.lattice.a, 4)
self.assertAlmostEqual(5.54342, phases[1].refined.lattice.a, 4)
self.assertEqual(10, len(phases))
phases3 = self.prj_lcmo_full.getPhases(lcmofullfits[:3])
self.assertEqual(3, len(phases3))
return
def test_getTemperatures(self):
"""check LoadProject.getTemperatures()"""
temps = self.prj_lcmo_full.getTemperatures()
self.assertEqual(10, len(temps))
self.assertEqual(300, temps[0])
self.assertEqual(980, temps[-1])
datasets3 = self.prj_lcmo_full.getDataSets()[:3]
temps3 = self.prj_lcmo_full.getTemperatures(datasets3)
self.assertEqual(650, temps3[-1])
return
def test_getDopings(self):
"""check LoadProject.getDopings()"""
dopings = self.prj_lcmo_full.getDopings()
self.assertEqual(10 * [None], dopings)
datasets3 = self.prj_lcmo_full.getDataSets()[:3]
dopings3 = self.prj_lcmo_full.getDopings(datasets3)
self.assertEqual(3 * [None], dopings3)
return
# End of class TestLoadProject
# ----------------------------------------------------------------------------
if __name__ == "__main__":
unittest.main()
# End of file