File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1616"""Tests for pdf package."""
1717
1818import unittest
19+ import pickle
1920import io
2021
2122import numpy
@@ -248,6 +249,32 @@ def test_savetxt(self):
248249 self .assertEqual (1001 , nlines )
249250 return
250251
252+
253+ def test_pickling (self ):
254+ "validate PDFContribution.residual() after pickling."
255+ from itertools import chain
256+ from diffpy .structure import loadStructure
257+ pc = self .pc
258+ pc .loadData (datafile ("ni-q27r100-neutron.gr" ))
259+ ni = loadStructure (datafile ("ni.cif" ))
260+ ni .Uisoequiv = 0.003
261+ pc .addStructure ('ni' , ni )
262+ pc .setCalculationRange (0 , 10 )
263+ pc2 = pickle .loads (pickle .dumps (pc ))
264+ res0 = pc .residual ()
265+ self .assertTrue (numpy .array_equal (res0 , pc2 .residual ()))
266+ for p in chain (pc .iterPars ('Uiso' ), pc2 .iterPars ('Uiso' )):
267+ p .value = 0.004
268+ res1 = pc .residual ()
269+ self .assertFalse (numpy .allclose (res0 , res1 ))
270+ self .assertTrue (numpy .array_equal (res1 , pc2 .residual ()))
271+ return
272+
273+ # TODO: remove after fixup release of diffpy.structure
274+ import sys
275+ if sys .version_info >= (3 , 7 ):
276+ test_pickling = unittest .expectedFailure (test_pickling )
277+
251278# End of class TestPDFContribution
252279
253280# ----------------------------------------------------------------------------
You can’t perform that action at this time.
0 commit comments