def test_elementPow_ignore_invalid(self): """ elementPow correctly detects and ignores invalid data""" for m in self.matrices: # Test square all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=list(n.keys()),ColOrder=list(n.keys()),\ Pad=False) dm['A']['A'] = 'p' dm.elementPow(2) self.assertEqual(dm.Power, 2.) self.assertEqual(dm['A']['A'], 'p') n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=list(n.keys()),ColOrder=list(n.keys()),\ Pad=False) dm['A']['A'] = None dm.elementPow(2) self.assertEqual(dm.Power, 2.) self.assertEqual(dm['A']['A'], None)
def test_elementPow_ignore_invalid(self): """ elementPow correctly detects and ignores invalid data""" for m in self.matrices: # Test square all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=n.keys(),ColOrder=n.keys(),\ Pad=False) dm['A']['A'] = 'p' dm.elementPow(2) self.assertEqual(dm.Power, 2.) self.assertEqual(dm['A']['A'],'p') n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=n.keys(),ColOrder=n.keys(),\ Pad=False) dm['A']['A'] = None dm.elementPow(2) self.assertEqual(dm.Power, 2.) self.assertEqual(dm['A']['A'],None)
def test_elementPow_valid(self): """ elementPow correctly scales all elements and updates self.Power""" for m in self.matrices: # Test square all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=list(n.keys()),ColOrder=list(n.keys()),\ Pad=False) dm.elementPow(2) self.assertEqual(dm.Power, 2) self.assertEqual(dm['A']['A'], m['A']['A']**2) self.assertEqual(dm['B']['A'], m['B']['A']**2) self.assertEqual(dm['B']['C'], m['B']['C']**2) # Test cube square root of all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=list(n.keys()),ColOrder=list(n.keys()),\ Pad=False) dm.elementPow(3) dm.elementPow(1. / 2.) self.assertEqual(dm.Power, 3. / 2.) self.assertEqual(dm['A']['A'], m['A']['A']**(3. / 2.)) self.assertEqual(dm['B']['A'], m['B']['A']**(3. / 2.)) self.assertEqual(dm['B']['C'], m['B']['C']**(3. / 2.))
def test_elementPow_valid(self): """ elementPow correctly scales all elements and updates self.Power""" for m in self.matrices: # Test square all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=n.keys(),ColOrder=n.keys(),\ Pad=False) dm.elementPow(2) self.assertEqual(dm.Power, 2) self.assertEqual(dm['A']['A'],m['A']['A']**2) self.assertEqual(dm['B']['A'],m['B']['A']**2) self.assertEqual(dm['B']['C'],m['B']['C']**2) # Test cube square root of all elements # explicit tests n = deepcopy(m) dm = DistanceMatrix(data=n, RowOrder=n.keys(),ColOrder=n.keys(),\ Pad=False) dm.elementPow(3) dm.elementPow(1./2.) self.assertEqual(dm.Power, 3./2.) self.assertEqual(dm['A']['A'],m['A']['A']**(3./2.)) self.assertEqual(dm['B']['A'],m['B']['A']**(3./2.)) self.assertEqual(dm['B']['C'],m['B']['C']**(3./2.))