1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import unittest
18
19 from diffpy.pdffit2 import PdfFit
20 from diffpy.pdffit2 import pdffit2
21 from pdffit2testutils import datafile
22
23
25
28
31
33 """raise IOError when structure file does not exist"""
34 self.assertRaises(IOError, self.P.read_struct, "Nofile.stru")
35
37 """raise pdffit2.structureError when structure is malformed"""
38 self.assertRaises(pdffit2.structureError, self.P.read_struct,
39 datafile("badNi.stru"))
40
42 """raise pdffit2.structureError when unit cell volume is negative"""
43
44 self.assertRaises(pdffit2.structureError,
45 self.P.read_struct, datafile("badNiZeroVolume.stru"))
46
48
51
54
56 """raise IOError when data file does not exist"""
57 self.assertRaises(IOError, self.P.read_data, "Nofile.dat",
58 'X', 25.0, 0.5)
59
61 """raise pdffit2.dataError when data has improper spacing"""
62 self.assertRaises(pdffit2.dataError, self.P.read_data,
63 datafile("badNi.dat"), 'X', 25.0, 0.5)
64
66
68 self.P = PdfFit()
69 self.r_data = [0.1, 0.2]
70 self.Gr_data = [1, 2, 3]
71 self.qmax = 10
72 self.qdamp = 0.5
73
76
78 """raise ValueError when lists are of different length"""
79 self.assertRaises(ValueError, self.P.read_data_lists, 'X', self.qmax,
80 self.qdamp, self.r_data, self.Gr_data)
81
83 """raise ValueError when qmax < 0"""
84 self.assertRaises(ValueError, self.P.read_data_lists, 'X', -self.qmax,
85 self.qdamp, self.r_data, self.Gr_data)
86
88 """raise ValueError when qdamp < 0"""
89 self.assertRaises(ValueError, self.P.read_data_lists, 'X', self.qmax,
90 -self.qdamp, self.r_data, self.Gr_data)
91
93 """raise pdffit2.dataError when data has improper spacing"""
94 r_data = [0.1, 0.52, 0.2]
95 self.assertRaises(pdffit2.dataError, self.P.read_data_lists, 'X', self.qmax,
96 self.qdamp, r_data, self.Gr_data)
97
98
100
102 self.P = PdfFit()
103 self.iset = 1
104 self.rmin = 4.0
105 self.rmax = 10.0
106
109
111 """raise ValueError when iset does not exist"""
112 self.assertRaises(ValueError, self.P.pdfrange, self.iset, self.rmin,
113 self.rmax)
114
116 """raise ValueError when rmax < rmin"""
117 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.5)
118 self.assertRaises(ValueError, self.P.pdfrange, self.iset, self.rmax,
119 self.rmin)
120
122 """raise ValueError when range outside of data"""
123 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.5)
124 self.assertRaises(ValueError, self.P.pdfrange, self.iset, -self.rmin,
125 self.rmax)
126
127
129
131 self.P = PdfFit()
132 self.qmax = 25
133 self.qdamp = 0.5
134 self.rmin = 4.0
135 self.rmax = 10.0
136 self.bin = 100
137
140
142 """raise ValueError when qmax < 0"""
143 self.P.read_struct(datafile("Ni.stru"))
144 self.assertRaises(ValueError, self.P.alloc, 'X', -self.qmax, self.qdamp,
145 self.rmin, self.rmax, self.bin)
146
148 """raise ValueError when qdamp < 0"""
149 self.P.read_struct(datafile("Ni.stru"))
150 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, -self.qdamp,
151 self.rmin, self.rmax, self.bin)
152
154 """raise ValueError when rmin < 0"""
155 self.P.read_struct(datafile("Ni.stru"))
156 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, self.qdamp,
157 -self.rmin, self.rmax, self.bin)
158
160 """raise ValueError when rmax < 0"""
161 self.P.read_struct(datafile("Ni.stru"))
162 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, self.qdamp,
163 self.rmin, -self.rmax, self.bin)
164
166 """raise ValueError when bin < 0"""
167 self.P.read_struct(datafile("Ni.stru"))
168 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, self.qdamp,
169 self.rmin, self.rmax, -self.bin)
170
172 """raise ValueError when rmax < rmin"""
173 self.P.read_struct(datafile("Ni.stru"))
174 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, self.qdamp,
175 self.rmax, self.rmin, self.bin)
176
178 """raise ValueError when qdamp < 0"""
179 self.P.read_struct(datafile("Ni.stru"))
180 self.assertRaises(ValueError, self.P.alloc, 'X', self.qmax, self.qdamp,
181 self.rmin, self.rmax, -self.bin)
182
183
185
189
192
194 """raise pdffit2.unassignedError when no space has been allocated"""
195 self.assertRaises(pdffit2.unassignedError, self.P.calc)
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
241
243 self.P = PdfFit()
244 self.strufile = "temp.pdf"
245
248
250 """raise IOError when structure cannot be saved"""
251 self.P.read_struct(datafile("Ni.stru"))
252 self.P.alloc('X', 30.0, 0.05, 2, 10, 100)
253 self.P.calc()
254 self.assertRaises(IOError, self.P.save_pdf, 1,
255 "nodir183160/"+self.strufile)
256
258 """raise pdffit2.unassignedError when structure is undefined"""
259 self.assertRaises(pdffit2.unassignedError, self.P.save_pdf, 1,
260 self.strufile)
261
262
264
266 self.P = PdfFit()
267 self.strufile = "temp.dif"
268
271
273 """raise IOError when dif cannot be saved"""
274 self.P.read_struct(datafile("Ni.stru"))
275 self.P.alloc('X', 30.0, 0.05, 2, 10, 100)
276 self.P.calc()
277 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.5)
278 self.assertRaises(IOError, self.P.save_dif, 1,
279 "nodir183160/"+self.strufile)
280
282 """raise pdffit2.unassignedError when structure is undefined"""
283 self.assertRaises(pdffit2.unassignedError, self.P.save_dif, 1,
284 self.strufile)
285
286
288
290 self.P = PdfFit()
291 self.resfile = "temp.res"
292
295
306
308 """raise pdffit2.unassignedError when structure is undefined"""
309 self.assertRaises(pdffit2.unassignedError, self.P.save_res,
310 self.resfile)
311
312
314
315
317 self.P = PdfFit()
318 self.strufile = "temp.stru"
319
322
324 """raise IOError when structure cannot be saved"""
325 self.P.read_struct(datafile("Ni.stru"))
326 self.assertRaises(IOError, self.P.save_struct, 1,
327 "nodir183160/"+self.strufile)
328
330 """raise pdffit2.unassignedError when structure is undefined"""
331 self.assertRaises(pdffit2.unassignedError, self.P.save_struct, 1,
332 self.strufile)
333
334
336
338 self.P = PdfFit()
339 self.par = 1
340 return
341
343 self.P = None
344 return
345
355
357 """raise pdffit2.unassignedError when variable is undefined"""
358 self.assertRaises(pdffit2.unassignedError, self.P.constrain, self.P.x(1),
359 self.par)
360 return
361
363 """raise ValueError when a variable index does not exist"""
364 self.P.read_struct(datafile("Ni.stru"))
365 self.assertRaises(ValueError, self.P.constrain, self.P.x(6),
366 self.par)
367 return
368
370 "raise constraintError when attempting to constrain non-refinables"
371 self.P.read_struct(datafile("Ni.stru"))
372 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
373 self.assertRaises(pdffit2.constraintError,
374 self.P.constrain, 'rcut', '@7')
375 self.assertRaises(pdffit2.constraintError,
376 self.P.constrain, 'rcut', 13)
377 self.assertRaises(pdffit2.constraintError,
378 self.P.constrain, 'stepcut', '@17')
379 return
380
381
382
384
386 self.P = PdfFit()
387 self.val = 3.0
388
391
393 """raise pdffit2.unassignedError when variable is undefined"""
394 self.assertRaises(pdffit2.unassignedError, self.P.setvar, self.P.lat(1),
395 self.val)
396
398 """raise ValueError when a variable index does not exist"""
399 self.P.read_struct(datafile("Ni.stru"))
400 self.assertRaises(ValueError, self.P.setvar, self.P.lat(7),
401 self.val)
402
403
405
408
411
413 """raise pdffit2.unassignedError when variable is undefined"""
414 self.assertRaises(pdffit2.unassignedError, self.P.getvar,
415 self.P.pscale())
416
418 """raise ValueError when a variable index does not exist"""
419 self.P.read_struct(datafile("Ni.stru"))
420 self.assertRaises(ValueError, self.P.getvar, self.P.lat(7))
421
422
424
427
430
432 """raise pdffit2.unassignedError when data does not exist"""
433 self.assertRaises(pdffit2.unassignedError, self.P.getR)
434
435
437
440
443
445 """raise pdffit2.unassignedError when data does not exist"""
446 self.assertRaises(pdffit2.unassignedError, self.P.getpdf_fit)
447
448
450
453
456
458 """raise pdffit2.unassignedError when data does not exist"""
459 self.assertRaises(pdffit2.unassignedError, self.P.getpdf_obs)
460
461
463
466
469
471 """raise pdffit2.unassignedError when data does not exist"""
472 self.assertRaises(pdffit2.unassignedError, self.P.getpdf_diff)
473
474
476
479
482
484 """raise pdffit2.unassignedError when data does not exist"""
485 self.assertRaises(pdffit2.unassignedError, self.P.get_atoms)
486
487
489
492
495
497 """raise pdffit2.unassignedError when parameter does not exist"""
498 self.assertRaises(pdffit2.unassignedError, self.P.getpar, 1)
499
505
506
508
510 self.P = PdfFit()
511 self.ip = 1
512
515
517 """raise pdffit2.unassignedError when phase does not exist"""
518 self.assertRaises(pdffit2.unassignedError, self.P.pdesel, self.ip)
519
521 """raise pdffit2.unassignedError when phase does not exist"""
522 self.assertRaises(pdffit2.unassignedError, self.P.pdesel, self.ip)
523
524
526
528 self.P = PdfFit()
529 self.ip = 1
530
533
535 """raise pdffit2.unassignedError when phase does not exist"""
536 self.assertRaises(pdffit2.unassignedError, self.P.pdesel, self.ip)
537
539 """raise pdffit2.unassignedError when phase does not exist"""
540 self.P.read_struct(datafile("Ni.stru"))
541 self.assertRaises(pdffit2.unassignedError, self.P.pdesel, self.ip)
542
543
545
547 self.P = PdfFit()
548 self.iset = 1
549 self.i = 1
550
553
555 """raise pdffit2.unassignedError when set does not exist"""
556 self.assertRaises(pdffit2.unassignedError, self.P.selectAtomType,
557 self.iset, 'i', 'Ni', True)
558
560 """raise pdffit2.unassignedError when set does not exist"""
561 self.P.read_struct(datafile("Ni.stru"))
562
563 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
564 self.P.selectAtomType(self.iset, 'i', 'Ni', True)
565 self.P.selectAtomType(self.iset, 'j', 'Ni', False)
566
567 self.assertRaises(pdffit2.unassignedError, self.P.selectAtomType,
568 2, 'i', 'Ca', True)
569
571 """raise ValueError when ijchar is neither 'i' nor 'j'"""
572 self.P.read_struct(datafile("Ni.stru"))
573 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
574 self.P.selectAtomType(self.iset, 'i', 'Ni', True)
575 self.P.selectAtomType(self.iset, 'j', 'Ni', True)
576 self.assertRaises(ValueError, self.P.selectAtomType,
577 self.iset, 'k', 'Ni', True)
578
579
581
583 self.P = PdfFit()
584 self.iset = 1
585 self.i = 1
586
589
591 """raise pdffit2.unassignedError when set does not exist"""
592 self.assertRaises(pdffit2.unassignedError, self.P.selectAtomIndex,
593 self.iset, 'i', self.i, True)
594
596 """raise pdffit2.unassignedError when set does not exist"""
597 self.P.read_struct(datafile("Ni.stru"))
598
599 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
600 self.P.selectAtomIndex(self.iset, 'i', 1, True)
601 self.P.selectAtomIndex(self.iset, 'i', 2, False)
602
603 self.assertRaises(pdffit2.unassignedError, self.P.selectAtomIndex,
604 2, 'i', 1, True)
605
612
613
615
617 self.P = PdfFit()
618 self.iset = 1
619 self.i = 1
620
623
625 """raise pdffit2.unassignedError when set does not exist"""
626 self.assertRaises(pdffit2.unassignedError, self.P.selectAll,
627 self.iset, 'i')
628
630 """raise pdffit2.unassignedError when set does not exist"""
631 self.P.read_struct(datafile("Ni.stru"))
632
633 self.assertRaises(pdffit2.unassignedError, self.P.selectAll,
634 self.iset, 'i')
635
636 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
637 self.P.selectAll(self.iset, 'i')
638 self.P.selectAll(self.iset, 'j')
639
640 self.assertRaises(pdffit2.unassignedError, self.P.selectAll, 2, 'i')
641 self.assertRaises(pdffit2.unassignedError, self.P.selectAll, 2, 'j')
642
643
645
647 self.P = PdfFit()
648 self.iset = 1
649 self.i = 1
650
653
655 """raise pdffit2.unassignedError when set does not exist"""
656 self.assertRaises(pdffit2.unassignedError, self.P.selectNone,
657 self.iset, 'i')
658
660 """raise pdffit2.unassignedError when set does not exist"""
661 self.P.read_struct(datafile("Ni.stru"))
662
663 self.assertRaises(pdffit2.unassignedError, self.P.selectNone,
664 self.iset, 'i')
665
666 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
667 self.P.selectNone(self.iset, 'i')
668 self.P.selectNone(self.iset, 'j')
669
670 self.assertRaises(pdffit2.unassignedError, self.P.selectNone, 2, 'i')
671 self.assertRaises(pdffit2.unassignedError, self.P.selectNone, 2, 'j')
672
673
675
677 self.P = PdfFit()
678 self.a1 = 1
679 self.a2 = 2
680 self.a3 = 3
681
684
686 """raise pdffit2.unassignedError when phase does not exist"""
687 self.assertRaises(pdffit2.unassignedError, self.P.bang, self.a1,
688 self.a2, self.a3)
689
691 """raise ValueError when selected atom(s) does not exist"""
692 self.P.read_struct(datafile('Ni.stru'))
693 self.P.read_data(datafile("Ni.dat"), 'X', 25.0, 0.0)
694 self.assertRaises(ValueError, self.P.bang, 0,
695 self.a2, self.a3)
696
698 """raise ValueError when selected atom(s) does not exist"""
699 self.P.read_struct(datafile('Ni.stru'))
700 self.assertRaises(ValueError, self.P.bang, self.a1,
701 -1, self.a3)
702
704 """raise ValueError when selected atom(s) does not exist"""
705 self.P.read_struct(datafile('Ni.stru'))
706 self.assertRaises(ValueError, self.P.bang, self.a1,
707 self.a2, 6)
708
709
711
713 self.P = PdfFit()
714 self.a1 = 1
715 self.a2 = 2
716
719
721 """raise pdffit2.unassignedError when no data exists"""
722 self.assertRaises(pdffit2.unassignedError, self.P.blen, self.a1,
723 self.a2)
724
726 """raise ValueError when selected atom(s) does not exist"""
727 self.P.read_struct(datafile('Ni.stru'))
728 self.assertRaises(ValueError, self.P.blen, 0, self.a2)
729
731 """raise ValueError when selected atom(s) does not exist"""
732 self.P.read_struct(datafile('Ni.stru'))
733 self.assertRaises(ValueError, self.P.blen, self.a1, 6)
734
736 """raise ValueError when selected atom(s) does not exist"""
737 self.P.read_struct(datafile('Ni.stru'))
738 self.assertRaises(ValueError, self.P.blen, 0, 6)
739
740
742
745
748
750 """raise pdffit2.unassignedError when phase does not exist"""
751 self.assertRaises(pdffit2.unassignedError, self.P.show_scat, 'X')
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
774
777
780
782 """raise pdffit2.unassignedError when no atoms exist"""
783 self.assertRaises(pdffit2.unassignedError, self.P.num_atoms)
784
798
799
813
814
828
829
843
845
848
851
853 """raise pdffit2.unassignedError when data does not exist"""
854 self.assertRaises(pdffit2.unassignedError, self.P.getcrw)
855
856
857
858
859 if __name__ == '__main__':
860
861
862
863
864 unittest.main()
865
866
867