示例#1
0
class TestProject(unittest.TestCase):
    def setUp(self):
        self.s = [("A", int), ("B", float), ("C", str)]
        self.t = Table(self.s)

        self.t.extend([[1, 1.1, "hello"], [2, 2.2, "yello"]])

    def test_simple_project(self):
        t = self.t.project(["A", "C"])
        self.assertEqual(t.schema, [("A", int), ("C", str)])
        self.assertEqual(t[0], (1, "hello"))

    def test_anti_project(self):
        t = self.t.anti_project(["B"])
        self.assertEqual(t.schema, [("A", int), ("C", str)])
        self.assertEqual(t[0], (1, "hello"))

    def test_anti_project_multiple_arguments(self):
        t = self.t.anti_project("A", "B")
        self.assertEqual(t.schema, [("C", str)])
        self.assertEqual(t[0], ("hello",))

    def test_expand_const_on_project(self):
        t0 = self.t.project(["C"])
        t1 = t0.expand_const("D", 0)
        self.assertEqual(list(t1.D), [0] * len(self.t))
示例#2
0
class TestProject(unittest.TestCase):
    def setUp(self):
        self.s = [
            ('A', int),
            ('B', float),
            ('C', str),
        ]
        self.t = Table(self.s)

        self.t.extend([
            [1, 1.1, 'hello'],
            [2, 2.2, 'yello'],
        ])

    def test_simple_project(self):
        t = self.t.project(['A', 'C'])
        self.assertEqual(t.schema, [('A', int), ('C', str)])
        self.assertEqual(t[0], (1, 'hello'))

    def test_anti_project(self):
        t = self.t.anti_project(['B'])
        self.assertEqual(t.schema, [('A', int), ('C', str)])
        self.assertEqual(t[0], (1, 'hello'))

    def test_anti_project_multiple_arguments(self):
        t = self.t.anti_project('A', 'B')
        self.assertEqual(t.schema, [('C', str)])
        self.assertEqual(t[0], ('hello', ))

    def test_expand_const_on_project(self):
        t0 = self.t.project(['C'])
        t1 = t0.expand_const('D', 0)
        self.assertEqual(list(t1.D), [0] * len(self.t))