def test_ornamentation_rate_can_be_controlled(self): """ There should be way to control how frequently walls are ornamented """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0).thenReturn(100).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=50) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) candle_count = 0 for location, tile in get_tiles(self.level): if self.ornamentation in tile['\ufdd0:ornamentation']: candle_count = candle_count + 1 assert_that(candle_count, is_(equal_to(2)))
def test_ornamentation_rate_can_be_controlled(self): """ There should be way to control how frequently walls are ornamented """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0).thenReturn(100).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 50) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) candle_count = 0 for location, tile in get_tiles(self.level): if self.ornamentation in tile['\ufdd0:ornamentation']: candle_count = candle_count + 1 assert_that(candle_count, is_(equal_to(2)))
def test_only_northern_wall_is_decorated(self): """ Ornamentations should be placed only on northern walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) floor_tile(self.level, (2, 3), self.floor) floor_tile(self.level, (3, 3), self.floor) floor_tile(self.level, (4, 3), self.floor) wall_tile(self.level, (2, 4), self.wall) wall_tile(self.level, (3, 4), self.wall) wall_tile(self.level, (4, 4), self.wall) floor_tile(self.level, (2, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) assert_that(ornamentation(self.level, (2, 4)), is_(equal_to([])))
def test_walls_can_be_ornamented(self): """ Ornaments should be placed only on walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation])))
def test_only_northern_wall_is_decorated(self): """ Ornamentations should be placed only on northern walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) floor_tile(self.level, (2, 3), self.floor) floor_tile(self.level, (3, 3), self.floor) floor_tile(self.level, (4, 3), self.floor) wall_tile(self.level, (2, 4), self.wall) wall_tile(self.level, (3, 4), self.wall) wall_tile(self.level, (4, 4), self.wall) floor_tile(self.level, (2, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) assert_that(ornamentation(self.level, (2, 4)), is_(equal_to([])))
def test_walls_can_be_ornamented(self): """ Ornaments should be placed only on walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation])))
class TestDecoratingWallOrnaments(): """ Test that walls can be ornamented """ def __init__(self): """ Default constructor """ self.level = None self.config = None self.decorator = None self.empty_wall = None self.empty_floor = None self.wall = None self.floor = None self.ornament = None def setup(self): """ Setup test cases """ self.empty_wall = None self.empty_floor = None self.wall = 'wall' self.floor = 'floor' self.ornamentation = 'candles' self.level = (LevelBuilder().with_size((10, 10)).with_floor_tile( self.floor).with_wall_tile(self.empty_wall).build()) def test_walls_can_be_ornamented(self): """ Ornaments should be placed only on walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) def test_ornamentation_rate_can_be_controlled(self): """ There should be way to control how frequently walls are ornamented """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0).thenReturn(100).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=50) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) candle_count = 0 for location, tile in get_tiles(self.level): if self.ornamentation in tile['\ufdd0:ornamentation']: candle_count = candle_count + 1 assert_that(candle_count, is_(equal_to(2))) def test_only_northern_wall_is_decorated(self): """ Ornamentations should be placed only on northern walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) floor_tile(self.level, (2, 3), self.floor) floor_tile(self.level, (3, 3), self.floor) floor_tile(self.level, (4, 3), self.floor) wall_tile(self.level, (2, 4), self.wall) wall_tile(self.level, (3, 4), self.wall) wall_tile(self.level, (4, 4), self.wall) floor_tile(self.level, (2, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile=self.wall, ornamentation=[self.ornamentation], rng=rng, rate=100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) assert_that(ornamentation(self.level, (2, 4)), is_(equal_to([])))
class TestDecoratingWallOrnaments(): """ Test that walls can be ornamented """ def __init__(self): """ Default constructor """ self.level = None self.config = None self.decorator = None self.empty_wall = None self.empty_floor = None self.wall = None self.floor = None self.ornament = None def setup(self): """ Setup test cases """ self.empty_wall = None self.empty_floor = None self.wall = 'wall' self.floor = 'floor' self.ornamentation = 'candles' self.level = (LevelBuilder() .with_size((10, 10)) .with_floor_tile(self.floor) .with_wall_tile(self.empty_wall) .build()) def test_walls_can_be_ornamented(self): """ Ornaments should be placed only on walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) def test_ornamentation_rate_can_be_controlled(self): """ There should be way to control how frequently walls are ornamented """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) rng = mock() when(rng).randint(any(), any()).thenReturn(0).thenReturn(100).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 50) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) candle_count = 0 for location, tile in get_tiles(self.level): if self.ornamentation in tile['\ufdd0:ornamentation']: candle_count = candle_count + 1 assert_that(candle_count, is_(equal_to(2))) def test_only_northern_wall_is_decorated(self): """ Ornamentations should be placed only on northern walls """ wall_tile(self.level, (2, 2), self.wall) wall_tile(self.level, (3, 2), self.wall) wall_tile(self.level, (4, 2), self.wall) floor_tile(self.level, (2, 3), self.floor) floor_tile(self.level, (3, 3), self.floor) floor_tile(self.level, (4, 3), self.floor) wall_tile(self.level, (2, 4), self.wall) wall_tile(self.level, (3, 4), self.wall) wall_tile(self.level, (4, 4), self.wall) floor_tile(self.level, (2, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) floor_tile(self.level, (4, 5), self.empty_floor) rng = mock() when(rng).randint(any(), any()).thenReturn(0) when(rng).choice(any()).thenReturn(self.ornamentation) self.config = WallOrnamentDecoratorConfig( ['any level'], wall_tile = self.wall, ornamentation = [self.ornamentation], rng = rng, rate = 100) self.decorator = WallOrnamentDecorator(self.config) self.decorator.decorate_level(self.level) assert_that(ornamentation(self.level, (2, 2)), is_(equal_to([self.ornamentation]))) assert_that(ornamentation(self.level, (2, 4)), is_(equal_to([])))