Example #1
0
    def test_new(self):
        av = 1
        bv = 1

        a = Payload(av)
        self.assertEqual(a.value, av)

        b = Payload(bv)
        self.assertEqual(b.value, bv)
Example #2
0
    def test_minus(self):
        av = 1
        bv = 1

        a = Payload(av)
        b = Payload(bv)

        a_sub_1 = a - 1
        self.assertEqual(a_sub_1.value, av - 1)

        a_sub_b = a - b
        self.assertEqual(a_sub_b.value, av - bv)
Example #3
0
    def test_union_2x_1d2d(self):
        """Test union 2-way for 1d/2d fibers"""

        ans = Fiber([0, 2, 4, 6],
                    [('AB', 1, Fiber([0, 2, 3], [2, 4, 5])),
                     ('AB', 3, Fiber([0, 1, 2], [3, 4, 6])),
                     ('AB', 5, Fiber([0, 1, 2, 3], [1, 2, 3, 4])),
                     ('A', 7, Fiber([], []))])

        a_m = self.input["a1_m"]
        b_m = self.input["b2_m"]

        z_m1 = a_m | b_m
        z_m2 = Fiber.union(a_m, b_m)

        for test, z_m in enumerate([z_m1, z_m2]):
            with self.subTest(test=test):
                # Check for right answer
                self.assertEqual(z_m, ans)

                # Check that payloads are of correct type
                self.assertIsInstance(z_m[0].payload.value[1], Payload)
                self.assertIsInstance(z_m[0].payload.value[2], Fiber)
                self.assertIsInstance(z_m[2].payload.value[1], Payload)
                self.assertIsInstance(z_m[3].payload.value[2], Fiber)

                # Check that default was set properly
                z_m_default = z_m.getDefault()
                self.assertEqual(z_m_default, Payload(('', 0, Fiber)))
                self.assertIsInstance(z_m_default, Payload)

                # Check final shape is correct (note it is 1-D)
                z_m_shape = z_m.getShape()
                self.assertEqual(z_m_shape, [7])
Example #4
0
    def test_plus(self):
        av = 1
        bv = 1

        a = Payload(av)
        b = Payload(bv)

        a_plus_1 = a + 1
        self.assertEqual(a_plus_1.value, av + 1)

        a_plus_b = a + b
        self.assertEqual(a_plus_b.value, av + bv)

        a += 1
        self.assertEqual(a.value, av + 1)

        a += b
        self.assertEqual(a.value, av + 1 + bv)
Example #5
0
    def test_multiply(self):
        av = 1
        bv = 2

        a = Payload(av)
        b = Payload(bv)

        a_mul_2 = a * 2
        self.assertEqual(a_mul_2.value, av * 2)

        two_mul_a = 2 * a
        self.assertEqual(two_mul_a.value, 2 * av)

        a_mul_b = a * b
        self.assertEqual(a_mul_b.value, av * bv)

        a *= 2
        self.assertEqual(a.value, av * 2)

        a *= b
        self.assertEqual(a.value, av * 2 * b)
Example #6
0
    def test_equality(self):
        cv = 8
        dv = 8
        ev = 1

        c = Payload(cv)
        d = Payload(dv)
        e = Payload(ev)

        self.assertTrue(c == d)
        self.assertFalse(c == e)

        self.assertFalse(c != d)
        self.assertTrue(c != e)

        self.assertTrue(c == 8)
        self.assertFalse(c == 1)
        self.assertFalse(c != 8)
        self.assertTrue(c != 1)

        self.assertTrue(8 == c)
        self.assertFalse(1 == c)
        self.assertFalse(8 != c)
        self.assertTrue(1 != c)
Example #7
0
    def test_multiply(self):

        cp1 = CoordPayload(5, 4)
        cp2 = CoordPayload(6, 5)

        payload_ref = Payload(20)

        self.assertEqual(cp1 * 5, payload_ref)
        self.assertEqual(cp1 * cp2, payload_ref)

        self.assertEqual(5 * cp1, payload_ref)

        cp1 *= cp2
        self.assertEqual(cp1, payload_ref)

        cp2 *= 4
        self.assertEqual(cp2, payload_ref)
Example #8
0
    def test_sub(self):

        cp1 = CoordPayload(5, 12)
        cp2 = CoordPayload(6, 10)

        payload_ref = Payload(2)

        self.assertEqual(cp1 - 10, payload_ref)
        self.assertEqual(cp1 - cp2, payload_ref)

        self.assertEqual(14 - cp1, payload_ref)

        cp1 -= cp2
        self.assertEqual(cp1, payload_ref)

        cp2 -= 8
        self.assertEqual(cp2, payload_ref)
Example #9
0
    def test_add(self):

        cp1 = CoordPayload(5, 11)
        cp2 = CoordPayload(6, 12)

        payload_ref = Payload(23)

        self.assertEqual(cp1 + 12, payload_ref)
        self.assertEqual(cp1 + cp2, payload_ref)

        self.assertEqual(12 + cp1, payload_ref)

        cp1 += cp2
        self.assertEqual(cp1, payload_ref)

        cp2 += 11
        self.assertEqual(cp2, payload_ref)
    def test_mul_payload(self):
        """Test __mul__ payload"""

        f_in = Fiber.fromUncompressed([1, 2, 3, 0, 0, 6])
        f_ref = Fiber([0, 1, 2, 5], [2, 4, 6, 12])
        two = Payload(2)

        with self.subTest("f_in * 2"):
            f_out = f_in * two
            self.assertEqual(f_ref, f_out)

        with self.subTest("2*f_in"):
            f_out = two * f_in
            self.assertEqual(f_ref, f_out)

        with self.subTest("f_in *=2"):
            # f_in gets clobbered!
            f_in *= two
            self.assertEqual(f_ref, f_in)
    def test_add_payload(self):
        """Test __add__ payload"""

        f_in = Fiber.fromUncompressed([1, 2, 3, 0, 0, 6])
        f_ref = Fiber.fromUncompressed([3, 4, 5, 2, 2, 8])
        two = Payload(2)

        with self.subTest("f_in + 2"):
            f_out = f_in + two
            self.assertEqual(f_ref, f_out)

        with self.subTest("2 + f_in"):
            f_out = two + f_in
            self.assertEqual(f_ref, f_out)

        with self.subTest("f_in += 2"):
            # f_in gets clobbered!
            f_in += two
            self.assertEqual(f_ref, f_in)
Example #12
0
    def test_union_2x_1d(self):
        """Test union 2-way for 1d fibers"""

        ans = Fiber([0, 2, 3, 4, 6], [('AB', Payload(1), Payload(2)),
                                      ('AB', Payload(3), Payload(4)),
                                      ('B', Payload(0), Payload(5)),
                                      ('A', Payload(5), Payload(0)),
                                      ('A', Payload(7), Payload(0))])

        a_m = self.input["a1_m"]
        b_m = self.input["b1_m"]

        z_m1 = a_m | b_m
        z_m2 = Fiber.union(a_m, b_m)

        for test, z_m in enumerate([z_m1, z_m2]):
            with self.subTest(test=test):
                # Check for right answer
                self.assertEqual(z_m, ans)

                # Check that payloads are of correct type
                self.assertIsInstance(z_m[0].payload.value[1], Payload)
                self.assertIsInstance(z_m[2].payload.value[1], Payload)
                self.assertIsInstance(z_m[3].payload.value[2], Payload)

                # Check that default was set properly
                z_m_default = z_m.getDefault()
                self.assertEqual(z_m_default, Payload(('', 0, 0)))
                self.assertIsInstance(z_m_default, Payload)

                # Check final shape is correct
                z_m_shape = z_m.getShape()
                self.assertEqual(z_m_shape, [7])
    print(f"b = CoordPayload(6, 2) -> {b}")

    print("")

    z = a + b
    print(f"a+b -> {z}")

    z = a + 1
    print(f"a+1 -> {z}")

    z = 1 + a
    print(f"1+a -> {z}")

    print("")

    p = Payload(4)
    print(f"p = Payload(4) -> {p}")

    z = a + p
    print(f"a+p -> {z}")

    z = p + a
    print(f"p+a -> {z}")

    print("")

    a += b
    print(f"a+=b -> {a}")
    a = CoordPayload(5, 4)

    a += 2