Пример #1
0
    def test_get_play_type_should_not_be_kickoff_at_time0_quarter3_if_already_kicked_off(self):
        # Arrange
        teama = FootballTeam("teama")
        teamb = FootballTeam("teamb")
        state = FootballSimulationGameState().team1(teama).team2(teamb).time(0)

        # Act & Assert
        self.assertNotEqual(
            KickOffPlay,
            ruleset.get_play_type(
                state.quarter(3).event(KickOffPlayOutcome(quarter=3, time=0, possession=teama, nonpossession=teamb))
            ),
        )
        self.assertNotEqual(
            KickOffPlay,
            ruleset.get_play_type(
                state.quarter(3).event(NormalPlayOutcome(quarter=3, time=0, possession=teama, nonpossession=teamb))
            ),
        )
        self.assertEqual(
            KickOffPlay,
            ruleset.get_play_type(
                state.quarter(3).event(NormalPlayOutcome(quarter=1, time=0, possession=teama, nonpossession=teamb))
            ),
        )
Пример #2
0
def sim(state):
    play_type = ruleset.get_play_type(state)

    #import pdb; pdb.set_trace()
    play1 = state.get_possession() \
                 .get_controller() \
                 .choose_play(play_type,
                              state.get_view_only_state(),
                              state.get_possession().get_playbook())

    play2 = state.get_nonpossession() \
                 .get_controller() \
                 .choose_play(play_type,
                              state.get_view_only_state(),
                              state.get_nonpossession().get_playbook())

    #if play1.get_play_type() == PlayType.Run:
    #    return 5
    #elif play
    #expected_gain1 = play1.get_expected_gain()
    #z = compare_plays(play1, play2)
    #quality1 = get_quality(state.get_possession())
    #quality2 = get_quality(state.get_nonpossession())
    #offensive_quality_points, t2 = compute_offensive_quality()
    #offensive_luck_points, t3 = compute_luck_points()

    #outcome = do_mix(state)
    #return state.event(outcome)
    from runrunlib import KickOffPlay, NormalPlay, KickOffPlayOutcome, NormalPlayOutcome
    if play_type == KickOffPlay:
        return state.event(KickOffPlayOutcome(state.get_quarter(),
                                              state.get_time(),
                                              state.get_possession(),
                                              state.get_nonpossession()))
    else:
        return state.event(NormalPlayOutcome(state.get_quarter(),
                                             state.get_time(),
                                             state.get_possession(),
                                             state.get_nonpossession()))
Пример #3
0
    def test_get_play_type_should_be_kickoff_at_time0_quarter1(self):
        # Arrange
        state = FootballSimulationGameState().quarter(1).time(0)

        # Act & Assert
        self.assertEqual(ruleset.get_play_type(state), KickOffPlay)
Пример #4
0
    def test_get_play_type_should_not_be_kickoff_if_time_is_not_zero(self):
        # Arrange
        state = FootballSimulationGameState().quarter(1).time(1)

        # Act & Assert
        self.assertNotEqual(ruleset.get_play_type(state), KickOffPlay)