def go_bristol(population, **kwargs): gen = MoveGenerator(to_ward="bristol") record = MoveRecord() go_ward(population=population, generator=gen, record=record, **kwargs) if population.day == 1: from array import array # this should have moved everyone to Bristol assert len(record) == 2 # move all 100 players from london to bristol assert array("i", (0, -1, 2, 2, 0, -1, 2, 1, 100)) in record # move all 100 players from oxford to bristol assert array("i", (0, -1, 2, 3, 0, -1, 2, 1, 100)) in record else: # no-one left to move assert len(record) == 0
def go_bristol(**kwargs): gen = MoveGenerator(from_ward=["bristol", "london"], to_ward="oxford") go_ward(generator=gen, record=record, **kwargs) # at least 2 moves - from Bristol and London assert len(record) >= 2 for m in record: (from_demo, from_stage, from_type, from_ward, to_demo, to_stage, to_type, to_ward, number) = m assert from_demo == 0 assert to_demo == 0 assert from_stage == to_stage assert from_type == to_type assert to_ward == 3 assert from_ward in [1, 2] assert number > 0 assert number <= 100
def go_cycle(population, **kwargs): generator = MoveGenerator(from_stage="R", to_stage="S") old_recovereds = population.recovereds record = MoveRecord() go_ward(population=population, generator=generator, record=record, **kwargs) for r in record: (from_dem, from_stage, from_typ, from_ward, to_dem, to_stage, to_typ, to_ward, number) = r assert from_dem == 0 assert to_dem == 0 assert from_stage == 2 assert to_stage == -1 assert PersonType.PLAYER == from_typ assert PersonType.PLAYER == to_typ assert from_ward == to_ward assert number == old_recovereds
def go_travel2(**kwargs): gen = MoveGenerator(from_ward=[WardID("bristol", all_commute=True), WardID("bristol")], from_stage="E", to_ward="oxford", to_stage="E", fraction=1.0) record = MoveRecord() go_ward(generator=gen, record=record, **kwargs) for r in record: (from_dem, from_stage, from_typ, from_ward, to_dem, to_stage, to_typ, to_ward, number) = r print(r) assert from_dem == 0 assert to_dem == 0 assert from_stage == 0 assert to_stage == 0 assert from_ward == 1 assert to_ward == 3 assert number < 100
def go_travel3(**kwargs): gen = MoveGenerator(from_ward=[WardID("bristol", all_commute=True), "bristol", WardID("london", all_commute=True), "london"], from_stage="R", to_ward="oxford", to_stage="R") record = MoveRecord() go_ward(generator=gen, record=record, **kwargs) for r in record: (from_dem, from_stage, from_typ, from_ward, to_dem, to_stage, to_typ, to_ward, number) = r print(r) assert from_dem == 0 assert to_dem == 0 assert from_stage == 2 assert to_stage == 2 assert from_ward in [1, 2] assert to_ward == 3