def test_forward(self): x = Forward() x << CrossProduct(int, str) self.assertEqual((1, "abc"), x(1, "abc").v) y = Forward() y << CrossProduct(Seq(int), str) y_c = y(Seq(int)([1, 2, 3]), "zzz") self.assertEqual((1, 2, 3), y_c.first.v) z = Forward() z << CrossProduct(Seq(z), Seq(z)) z_1 = z(Seq(z)([]), Seq(z)([])) z_2 = z(Seq(z)([z_1, z_1]), Seq(z)())
def test_cross_product(self): x = CrossProduct(int, str) x_1 = x(1, "abc") self.assertEqual(1, x_1.first) self.assertEqual("abc", x_1.second) y = CrossProduct()("143", Seq(int)(1, 2, 3)) self.assertEqual("143", y.first) self.assertEqual((1, 2, 3), y.second.v) z = CrossProduct(Seq(int), str) z_f = Seq(int)(1, 2, 3) z_v = z(z_f, "abc") self.assertEqual((1, 2, 3), z_v.first.v) self.assertEqual("abc", z_v.second)