Exemple #1
0
 def setUp(self):
     """ Initalize render pipeline test setup. """
     self.blank = blank.BlankTile()
     self.route = route.RouteTile32x32()
     self.weather_large = weather.WeatherTile64x32({})
     self.tiles = [self.route, self.weather_large]
     self.manager = tile_manager.TileManager(self.tiles, 32, 2)
Exemple #2
0
 def testToMatrixBlankTile(self):
     """ Ensure a blank tile renders properly. """
     tiles = []
     manager = tile_manager.TileManager(tiles, 32, 2)
     manager._RenderAddNewTiles()
     manager._RenderToMatrix()
     self.AssertSameImage(manager.matrix.offscreen_buffer,
                          'testdata/to_matrix_blank_tile.png')
Exemple #3
0
 def testFullLoop(self):
     weather_large = weather.WeatherTile64x32(
         {
             'id': 208,
             'main': 'other',
             'description': 'sunny and clear.',
             'icon': '01d',
             'temp': 72,
             'temp_min': 68,
             'temp_max': 78,
             'humidity': 23
         },
         scrolling=(0, -2))
     stops = [
         datetime.datetime(2017,
                           1,
                           1,
                           9,
                           0,
                           tzinfo=pytz.timezone('America/Los_Angeles')),
         datetime.datetime(2017,
                           10,
                           11,
                           10,
                           0,
                           tzinfo=pytz.timezone('America/Los_Angeles')),
         datetime.datetime(2017,
                           11,
                           11,
                           11,
                           0,
                           tzinfo=pytz.timezone('America/Los_Angeles')),
         datetime.datetime(2017,
                           12,
                           12,
                           12,
                           0,
                           tzinfo=pytz.timezone('America/Los_Angeles'))
     ]
     tile = route.RouteTile32x32(stops=stops)
     manager = tile_manager.TileManager([weather_large, tile], 32, 2)
     manager.Run()
Exemple #4
0
 def testToMatrixMultiLine(self):
     """ Ensure a multi line render works properly. """
     tiles = [
         self.route,
         weather.WeatherTile64x32({
             'id': 208,
             'main': 'sunny',
             'description': 'sunny and clear.',
             'icon': '01d',
             'temp': 72,
             'temp_min': 68,
             'temp_max': 78,
             'humidity': 23
         })
     ]
     manager = tile_manager.TileManager(tiles, 64, 4, tile_size=32)
     manager._RenderAddNewTiles()
     manager._RenderToMatrix()
     self.AssertSameImage(manager.matrix.offscreen_buffer,
                          'testdata/to_matrix_multiline.png')
Exemple #5
0
 def testGetNextTileLargeSkipped(self):
     """ Ensure a large tile is skipped properly. """
     tiles = [self.weather_large, self.blank]
     manager = tile_manager.TileManager(tiles, 32, 2)
     tile_index = manager._GetNextTile((32, 32))
     self.assertIsInstance(manager.tiles[tile_index], blank.BlankTile)
Exemple #6
0
 def testStaticTileFrameCount(self):
     """ Ensure a static tile has appropriate frame count set. """
     static_tile = route.RouteTile32x32(scrolling=(0, 0))
     manager = tile_manager.TileManager([static_tile], 32, 2)
     self.assertEqual(manager.tiles[0].GetMaxFrames(), 5)
Exemple #7
0
 def testTileLargerThanMatrix(self):
     """ Ensure a tile larger than the matrix screen fails. """
     with self.assertRaises(Exception):
         tile_manager.TileManager([self.blank], 8, 1)
Exemple #8
0
 def testAddNewTilesBlankTiles(self):
     """ Ensure an empty pipeline is filled. """
     tiles = []
     manager = tile_manager.TileManager(tiles, 32, 2)
     manager._RenderAddNewTiles()
     self.assertEqual(manager.render_pipeline, [[-1, -1]])
Exemple #9
0
 def testAddNewTilesMultiLine(self):
     """ Ensure tile placing works across multiple rows. """
     tiles = [weather.WeatherTile64x32({}), weather.WeatherTile64x32({})]
     manager = tile_manager.TileManager(tiles, 64, 4, tile_size=32)
     manager._RenderAddNewTiles()
     self.assertEqual(manager.render_pipeline, [[0, 0], [1, 1]])
Exemple #10
0
 def testAddNewTilesLargeNoRoom(self):
     """ Ensure a large tile is not place if there is no room. """
     tiles = [self.route, self.blank, self.weather_large]
     manager = tile_manager.TileManager(tiles, 32, 4)
     manager._RenderAddNewTiles()
     self.assertEqual(manager.render_pipeline, [[0, 1, 2, -1]])
Exemple #11
0
 def testAddNewTilesLargeSmallCombined(self):
     """ Ensure adding a large and a small tile on the same row is correct. """
     tiles = [self.weather_large, self.route]
     manager = tile_manager.TileManager(tiles, 32, 4)
     manager._RenderAddNewTiles()
     self.assertEqual(manager.render_pipeline, [[0, 0, 1, -1]])