def test_pickle_0(self): a = histogram(category(0, 1, 2), integer(0, 20, label='ia'), regular(20, 0.0, 20.0, uoflow=False), variable(0.0, 1.0, 2.0), circular(4, label='pa')) for i in range(len(a.axis(0))): a.fill(i, 0, 0, 0, 0) for j in range(len(a.axis(1))): a.fill(i, j, 0, 0, 0) for k in range(len(a.axis(2))): a.fill(i, j, k, 0, 0) for l in range(len(a.axis(3))): a.fill(i, j, k, l, 0) for m in range(len(a.axis(4))): a.fill(i, j, k, l, m * 0.5 * pi) io = BytesIO() pickle.dump(a, io) io.seek(0) b = pickle.load(io) self.assertNotEqual(id(a), id(b)) self.assertEqual(a.dim, b.dim) self.assertEqual(a.axis(0), b.axis(0)) self.assertEqual(a.axis(1), b.axis(1)) self.assertEqual(a.axis(2), b.axis(2)) self.assertEqual(a.axis(3), b.axis(3)) self.assertEqual(a.axis(4), b.axis(4)) self.assertEqual(a.sum, b.sum) self.assertEqual(a, b)
def test_pickle_1(self): a = histogram(category(0, 1, 2), integer(0, 3, label='ia'), regular(4, 0.0, 4.0, uoflow=False), variable(0.0, 1.0, 2.0)) for i in range(len(a.axis(0))): a.fill(i, 0, 0, 0, weight=3) for j in range(len(a.axis(1))): a.fill(i, j, 0, 0, weight=10) for k in range(len(a.axis(2))): a.fill(i, j, k, 0, weight=2) for l in range(len(a.axis(3))): a.fill(i, j, k, l, weight=5) io = BytesIO() pickle.dump(a, io) io.seek(0) b = pickle.load(io) self.assertNotEqual(id(a), id(b)) self.assertEqual(a.dim, b.dim) self.assertEqual(a.axis(0), b.axis(0)) self.assertEqual(a.axis(1), b.axis(1)) self.assertEqual(a.axis(2), b.axis(2)) self.assertEqual(a.axis(3), b.axis(3)) self.assertEqual(a.sum, b.sum) self.assertEqual(a, b)
def test_getitem(self): v = [-0.1, 0.2, 0.3] a = variable(*v) for i in range(2): self.assertEqual(a[i][0], v[i]) self.assertEqual(a[i][1], v[i+1]) self.assertEqual(a[-1][0], -float("infinity")) self.assertEqual(a[2][1], float("infinity"))
def test_index(self): a = variable(-0.1, 0.2, 0.3) self.assertEqual(a.index(-10.0), -1) self.assertEqual(a.index(-0.11), -1) self.assertEqual(a.index(-0.1), 0) self.assertEqual(a.index(0.0), 0) self.assertEqual(a.index(0.19), 0) self.assertEqual(a.index(0.2), 1) self.assertEqual(a.index(0.21), 1) self.assertEqual(a.index(0.29), 1) self.assertEqual(a.index(0.3), 2) self.assertEqual(a.index(0.31), 2) self.assertEqual(a.index(10), 2)
def test_numpy_conversion_6(self): a = integer(0, 2) b = regular(2, 0, 2) c = variable(0, 1, 2) ref = numpy.array((0., 1., 2.)) self.assertTrue(numpy.all(numpy.array(a) == ref)) self.assertTrue(numpy.all(numpy.array(b) == ref)) self.assertTrue(numpy.all(numpy.array(c) == ref)) d = circular(4) ref = numpy.array((0., 0.5*pi, pi, 1.5*pi, 2.0*pi)) self.assertTrue(numpy.all(numpy.array(d) == ref)) e = category(1, 2) ref = numpy.array((1, 2)) self.assertTrue(numpy.all(numpy.array(e) == ref))
def test_iter(self): v = [-0.1, 0.2, 0.3] a = variable(*v) self.assertEqual([x[0] for x in a], v[:-1]) self.assertEqual([x[1] for x in a], v[1:])
def test_len(self): self.assertEqual(len(variable(-0.1, 0.2, 0.3)), 2)
def test_init(self): variable(0, 1) variable(1, -1) variable(0, 1, 2, 3, 4) variable(0, 1, label="va") variable(0, 1, uoflow=True) variable(0, 1, label="va", uoflow=True) with self.assertRaises(TypeError): variable() with self.assertRaises(RuntimeError): variable(1.0) with self.assertRaises(TypeError): variable("1", 2) with self.assertRaises(KeyError): variable(0.0, 1.0, 2.0, bad_keyword="ra") a = variable(-0.1, 0.2, 0.3) self.assertEqual(a, variable(-0.1, 0.2, 0.3)) self.assertNotEqual(a, variable(0, 0.2, 0.3)) self.assertNotEqual(a, variable(-0.1, 0.1, 0.3)) self.assertNotEqual(a, variable(-0.1, 0.1))