def testCombineAverage(self): '''Average combine: combination of integer arrays.''' # Inputs input1 = numpy.array([[1, 2, 3, 4], [1, 2, 3, 4], [9, 2, 0, 4]]) input2 = numpy.array([[3, 2, 8, 4], [6, 2, 0, 4], [1, 3, 3, 4]]) input3 = numpy.array([[7, 2, 1, 4], [1, 2, 0, 4], [44, 2, 2, 0]]) inputs = [input1, input2, input3] # Results rres = numpy.array([[3.66666667, 2., 4., 4.0], [2.6666666666666665, 2., 1., 4.], [18., 2.33333333, 1.666666667, 2.66666667]]) rvar = 3 * numpy.array([[9.3333333333333339, 0., 13.0, 0.], [8.3333333333333339, 0., 3.00000000, 0.], [523.0, 0.33333333333333337, 2.333333333333333, 5.3333333333333339]]) / len(inputs) rnum = numpy.array([[3, 3, 3, 3], [3, 3, 3, 3], [3, 3, 3, 3]]) out = mean(inputs) # Checking for cal, precal in zip(out[0].flat, rres.flat): self.assertAlmostEqual(cal, precal) for cal, precal in zip(out[1].flat, rvar.flat): self.assertAlmostEqual(cal, precal) for cal, precal in zip(out[2].flat, rnum.flat): self.assertEqual(cal, precal)
def testCombineMaskAverage(self): '''Average combine: combination of integer arrays with masks.''' input1 = numpy.array([[1, 2, 3, 4], [1, 2, 3, 4], [9, 2, 0, 4]]) input2 = numpy.array([[3, 2, 8, 4], [6, 2, 0, 4], [1, 3, 3, 4]]) input3 = numpy.array([[7, 2, 1, 4], [1, 2, 0, 4], [44, 2, 2, 0]]) inputs = [input1, input2, input3] mask1 = numpy.array([[False, False, False, True], [False, True, False, False], [False, True, False, False]]) mask2 = numpy.array([[False, False, False, False], [False, True, False, False], [False, True, False, False]]) mask3 = numpy.array([[False, False, False, False], [False, True, False, False], [False, False, True, False]]) masks = [mask1, mask2, mask3] rres = numpy.array([[3.66666667, 2., 4., 4.], [2.6666666666666665, 0., 1., 4.], [18., 2., 1.5, 2.66666667]]) rvar = numpy.array([[3 * 3.11111111, 0., 3 * 4.33333333, 0.], [3 * 2.77777778, 0., 3 * 1., 0.], [3 * 174.33333333, 0., 2 * 2.25, 3 * 1.77777778] ]) rnum = numpy.array([[3, 3, 3, 2], [3, 0, 3, 3], [3, 1, 2, 3]]) out = mean(inputs, masks) for cal, precal in zip(out[0].flat, rres.flat): self.assertAlmostEqual(cal, precal) for cal, precal in zip(out[1].flat, rvar.flat): self.assertAlmostEqual(cal, precal) for cal, precal in zip(out[2].flat, rnum.flat): self.assertEqual(cal, precal)