Пример #1
0
    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
Пример #2
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
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
    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