def test_parallel_bonds(self): """check parallel BondCalculator """ from diffpy.srreal.bondcalculator import BondCalculator nickel = self.nickel bc = BondCalculator() d0 = bc(nickel) pbc1 = createParallelCalculator(BondCalculator(), 3, map) d1 = pbc1(nickel) self.failUnless(numpy.array_equal(d0, d1)) pbc2 = createParallelCalculator(BondCalculator(), self.ncpu, self.pool.imap_unordered) d2 = pbc2(nickel) self.failUnless(numpy.array_equal(d0, d2)) bc.rmax = pbc1.rmax = pbc2.rmax = 2.5 for bci in (bc, pbc1, pbc2): bci.maskAllPairs(False) bci.setPairMask(0, 'all', True) bci.filterCone([1, 0, 0], 48) d0a = bc(nickel) self.assertEqual(8, len(d0a)) d1a = pbc1(nickel) self.failUnless(numpy.array_equal(d0a, d1a)) d2a = pbc2(nickel) self.failUnless(numpy.array_equal(d0a, d2a)) return
def setUp(self): self.bdc = BondCalculator() if not hasattr(self, 'rutile'): type(self).rutile = loadObjCrystCrystal('rutile.cif') if not hasattr(self, 'nickel'): type(self).nickel = loadObjCrystCrystal('Ni.cif') return
def setUp(self): self.bdc = BondCalculator() if not hasattr(self, 'rutile'): type(self).rutile = loadDiffPyStructure('rutile.cif') if not hasattr(self, 'nickel'): type(self).nickel = loadDiffPyStructure('Ni.stru') if not hasattr(self, 'niprim'): type(self).niprim = loadDiffPyStructure('Ni_primitive.stru') return
def test___init__(self): """check BondCalculator.__init__() """ self.assertEqual(0, self.bdc.rmin) self.assertEqual(5, self.bdc.rmax) self.assertEqual(0, len(self.bdc.distances)) bdc1 = BondCalculator(rmin=2, rmax=7) self.assertEqual(2, bdc1.rmin) self.assertEqual(7, bdc1.rmax) self.assertRaises(TypeError, BondCalculator, invalid=55) return
def test_distances(self): """check BondCalculator.distances """ self.bdc.eval(self.nickel) dst = self.bdc.distances self.assertTrue(numpy.array_equal(dst, BondCalculator()(self.nickel))) self.assertTrue(numpy.array_equal(dst, numpy.sort(dst))) self.bdc.maskAllPairs(False) for i in range(4): self.bdc.setPairMask(0, i, True) dst0a = self.bdc(self.nickel) idx0a = (self.bdc.sites0 == 0) self.bdc.maskAllPairs(False) for i in range(4): self.bdc.setPairMask(3, i, True) dst3a = self.bdc(self.nickel) self.bdc.maskAllPairs(True) dstp = self.bdc(self.niprim) self.assertTrue(numpy.allclose(dst0a, dst3a)) self.assertTrue(numpy.allclose(dst0a[idx0a], dstp)) return