Example #1
0
 def test_lookup_position(self):
     self.assertEqual(3, Cube((2, 2), np.zeros(4))._lookup_position((1, 1)))
     self.assertEqual(0, Cube((2, 3), np.zeros(6))._lookup_position((0, 0)))
     self.assertEqual(
         36,
         Cube((2, 4, 5), np.zeros(40))._lookup_position((1, 3, 1)))
     self.assertEqual(3,
                      Cube((2, 2), np.zeros(4))._lookup_position((-1, -1)))
Example #2
0
 def test_reduce_sum(self):
     flat_data = np.arange(4).astype('float')
     cube = Cube((2, 2), flat_data)
     cube0 = cube.reduce_sum((0, ), keepdims=True)
     cube1 = cube.reduce_sum((1, ), keepdims=True)
     cube01 = cube.reduce_sum((0, 1), keepdims=True)
     np.testing.assert_equal(np.array([2., 4., 2., 4.]), cube0.flat)
     np.testing.assert_equal(np.array([1., 1., 5., 5.]), cube1.flat)
     np.testing.assert_equal(np.array([6., 6., 6., 6.]), cube01.flat)
Example #3
0
 def setUp(self):
     a = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]
     self.measures = attribute_list(["amount", "discount"], Measure)
     self.details = attribute_list(["detail"], Attribute)
     self.dimensions = [create_dimension(desc) for desc in a]
     self.cube = Cube("contracts",
                      dimensions=self.dimensions,
                      measures=self.measures,
                      details=self.details)
Example #4
0
    def test_links(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 1)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)

        links = [{"name": "date"}, "product", "flag"]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 3)
        self.assertIsInstance(cube.dimension("flag"), Dimension)
Example #5
0
 def setUp(self):
     a = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]
     self.measures = attribute_list(["amount", "discount"], Measure)
     self.details = attribute_list(["detail"], Attribute)
     self.dimensions = [create_dimension(desc) for desc in a]
     self.cube = Cube("contracts",
                             dimensions=self.dimensions,
                             measures=self.measures,
                             details=self.details)
Example #6
0
    def test_links(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 1)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)

        links = [{"name": "date"}, "product", "flag"]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 3)
        self.assertIsInstance(cube.dimension("flag"), Dimension)
Example #7
0
 def test_shift(self):
     cube = Cube((2, 2), np.array([0, 1, 2, 3]))
     np.testing.assert_equal(
         np.array([[0., 0., 1., 0.], [0., 0., 0., 1.], [1., 0., 0., 0.],
                   [0., 1., 0., 0.]]), cube.shift((1, 0)))
Example #8
0
 def test_reverse_lookup(self):
     cube = Cube((2, 4, 5), np.zeros(40))
     for i in range(40):
         self.assertEqual(i, cube._lookup_position(cube._reverse_lookup(i)))
Example #9
0
 def test_validate_shape(self):
     self.assertTrue(Cube._validate_shape((2, 3, 4), np.zeros(24)))
     self.assertFalse(Cube._validate_shape((2, 3, 4), np.zeros(25)))
     self.assertFalse(Cube._validate_shape((2, 3, 4), np.zeros((24, 2))))
Example #10
0
    def test_link_hierarchies(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "nonadditive": None}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "hierarchies": ["ym"]}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 1)
        self.assertEqual(dim.hierarchy().name, "ym")
Example #11
0
class CubeTestCase(unittest.TestCase):
    def setUp(self):
        a = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]
        self.measures = attribute_list(["amount", "discount"], Measure)
        self.details = attribute_list(["detail"], Attribute)
        self.dimensions = [create_dimension(desc) for desc in a]
        self.cube = Cube("contracts",
                         dimensions=self.dimensions,
                         measures=self.measures,
                         details=self.details)

    def test_create_cube(self):
        cube = {
            "name": "cube",
            "dimensions": ["date"],
            "aggregates": ["record_count"],
            "details": ["some_detail", "another_detail"]
        }
        cube = create_cube(cube)

        self.assertEqual(cube.name, "cube")
        self.assertEqual(len(cube.aggregates), 1)
        self.assertEqual(len(cube.details), 2)

    def test_get_dimension(self):
        self.assertListEqual(self.dimensions, self.cube.dimensions)

        self.assertEqual("date", self.cube.dimension("date").name)
        self.assertEqual("product", self.cube.dimension("product").name)
        self.assertEqual("flag", self.cube.dimension("flag").name)
        self.assertRaises(NoSuchDimensionError, self.cube.dimension, "xxx")

    def test_get_measure(self):
        self.assertListEqual(self.measures, self.cube.measures)

        self.assertEqual("amount", self.cube.measure("amount").name)
        self.assertEqual("discount", self.cube.measure("discount").name)
        self.assertRaises(NoSuchAttributeError, self.cube.measure, "xxx")

    def test_attributes(self):
        all_attributes = self.cube.all_attributes

        refs = [a.ref() for a in all_attributes]
        expected = [
            'date.year', 'date.month', 'date.month_name', 'date.day',
            'product.key', 'product.name', 'product.description', 'flag',
            'detail', 'amount', 'discount'
        ]
        self.assertSequenceEqual(expected, refs)

        attributes = self.cube.get_attributes(["date.year", "product.name"])
        refs = [a.ref() for a in attributes]
        expected = ['date.year', 'product.name']
        self.assertSequenceEqual(expected, refs)

        attributes = self.cube.get_attributes(["amount"])
        refs = [a.ref() for a in attributes]
        self.assertSequenceEqual(["amount"], refs)

        with self.assertRaises(NoSuchAttributeError):
            self.cube.get_attributes(["UNKNOWN"])

    @unittest.skip("deferred (needs workspace)")
    def test_to_dict(self):
        desc = self.cube.to_dict()
        dims = dict((dim.name, dim) for dim in self.dimensions)
        cube = create_cube(desc, dims)
        self.assertEqual(self.cube.dimensions, cube.dimensions)
        self.assertEqual(self.cube.measures, cube.measures)
        self.assertEqual(self.cube, cube)

    def test_links(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 1)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)

        links = [{"name": "date"}, "product", "flag"]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 3)
        self.assertIsInstance(cube.dimension("flag"), Dimension)

    def test_link_hierarchies(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "nonadditive": None}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "hierarchies": ["ym"]}]
        cube = Cube("contracts", dimension_links=links, measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 1)
        self.assertEqual(dim.hierarchy().name, "ym")

    def test_inherit_nonadditive(self):
        dims = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]

        cube = {
            "name": "contracts",
            "dimensions": ["date", "product"],
            "nonadditive": "time",
            "measures": ["amount", "discount"]
        }

        dims = [create_dimension(md) for md in dims]
        dims = dict((dim.name, dim) for dim in dims)

        cube = create_cube(cube)

        measures = cube.measures
        self.assertEqual(measures[0].nonadditive, "time")
Example #12
0
    def test_link_hierarchies(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "nonadditive":None}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "hierarchies": ["ym"]}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 1)
        self.assertEqual(dim.hierarchy().name, "ym")
Example #13
0
class CubeTestCase(unittest.TestCase):
    def setUp(self):
        a = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]
        self.measures = attribute_list(["amount", "discount"], Measure)
        self.details = attribute_list(["detail"], Attribute)
        self.dimensions = [create_dimension(desc) for desc in a]
        self.cube = Cube("contracts",
                                dimensions=self.dimensions,
                                measures=self.measures,
                                details=self.details)

    def test_create_cube(self):
        cube = {
                "name": "cube",
                "dimensions": ["date"],
                "aggregates": ["record_count"],
                "details": ["some_detail", "another_detail"]
        }
        cube = create_cube(cube)

        self.assertEqual(cube.name, "cube")
        self.assertEqual(len(cube.aggregates), 1)
        self.assertEqual(len(cube.details), 2)

    def test_get_dimension(self):
        self.assertListEqual(self.dimensions, self.cube.dimensions)

        self.assertEqual("date", self.cube.dimension("date").name)
        self.assertEqual("product", self.cube.dimension("product").name)
        self.assertEqual("flag", self.cube.dimension("flag").name)
        self.assertRaises(NoSuchDimensionError, self.cube.dimension, "xxx")

    def test_get_measure(self):
        self.assertListEqual(self.measures, self.cube.measures)

        self.assertEqual("amount", self.cube.measure("amount").name)
        self.assertEqual("discount", self.cube.measure("discount").name)
        self.assertRaises(NoSuchAttributeError, self.cube.measure, "xxx")

    def test_attributes(self):
        all_attributes = self.cube.all_attributes

        refs = [a.ref() for a in all_attributes]
        expected = [
            'date.year',
            'date.month',
            'date.month_name',
            'date.day',
            'product.key',
            'product.name',
            'product.description',
            'flag',
            'detail',
            'amount',
            'discount']
        self.assertSequenceEqual(expected, refs)

        attributes = self.cube.get_attributes(["date.year", "product.name"])
        refs = [a.ref() for a in attributes]
        expected = ['date.year', 'product.name']
        self.assertSequenceEqual(expected, refs)

        attributes = self.cube.get_attributes(["amount"])
        refs = [a.ref() for a in attributes]
        self.assertSequenceEqual(["amount"], refs)

        with self.assertRaises(NoSuchAttributeError):
            self.cube.get_attributes(["UNKNOWN"])

    @unittest.skip("deferred (needs workspace)")
    def test_to_dict(self):
        desc = self.cube.to_dict()
        dims = dict((dim.name, dim) for dim in self.dimensions)
        cube = create_cube(desc, dims)
        self.assertEqual(self.cube.dimensions, cube.dimensions)
        self.assertEqual(self.cube.measures, cube.measures)
        self.assertEqual(self.cube, cube)

    def test_links(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 1)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)

        links = [{"name": "date"}, "product", "flag"]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        self.assertEqual(len(cube.dimensions), 3)
        self.assertIsInstance(cube.dimension("flag"), Dimension)

    def test_link_hierarchies(self):
        dims = dict((d.name, d) for d in self.dimensions)

        links = [{"name": "date"}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "nonadditive":None}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 2)
        self.assertEqual(dim.hierarchy().name, "ymd")

        links = [{"name": "date", "hierarchies": ["ym"]}]
        cube = Cube("contracts",
                          dimension_links=links,
                          measures=self.measures)
        cube.link_dimensions(dims)
        dim = cube.dimension("date")
        self.assertEqual(len(dim.hierarchies), 1)
        self.assertEqual(dim.hierarchy().name, "ym")

    def test_inherit_nonadditive(self):
        dims = [DIM_DATE_DESC, DIM_PRODUCT_DESC, DIM_FLAG_DESC]

        cube = {
            "name": "contracts",
            "dimensions": ["date", "product"],
            "nonadditive": "time",
            "measures": ["amount", "discount"]
        }

        dims = [create_dimension(md) for md in dims]
        dims = dict((dim.name, dim) for dim in dims)

        cube = create_cube(cube)

        measures = cube.measures
        self.assertEqual(measures[0].nonadditive, "time")
Example #14
0
    '-      -       -',
    '-              -',
    '----------------',
]

sprite_group = pygame.sprite.Group()
sprite_group.add(hero)

boxes = []

x = 0
y = 0
for row in level:
    for col in row:
        if col == '-':
            bx = Cube(x, y)
            sprite_group.add(bx)
            boxes.append(bx)
        x = x + 40
    y = y + 40
    x = 0

#bx = pygame.Surface((40, 40))
#bx = pygame.image.load('box.png')

wheel = True
clock = pygame.time.Clock()

while wheel:
    clock.tick(25)
    for e in pygame.event.get():