Ejemplo n.º 1
0
    def handle_gas(
        self, curr_gear: Gear, curr_rpm: EngineRPMS, pressure: GasPressure
    ) -> Gear:
        if pressure.is_kickdown():
            return curr_gear.previous()

        if curr_rpm.is_above(self._rpsm_range):
            return curr_gear.next()
        if curr_rpm.is_below(self._rpsm_range):
            return curr_gear.previous()
        return curr_gear
Ejemplo n.º 2
0
def test_strategy_sets_previous_gear_when_rpms_below_range(mode):
    strategy = DrivingModeStrategy.create(driving_mode=mode,
                                          aggressive_mode=AggressiveMode.Mode1)
    curr_gear = Gear(gear=2)

    gear_to_set = strategy.handle_gas(curr_gear=curr_gear,
                                      curr_rpm=EngineRPMS(value=200),
                                      pressure=GENTLE_PRESSURE)

    assert gear_to_set == curr_gear.previous()
Ejemplo n.º 3
0
def test_strategy_sets_previous_gear_on_kickdown_no_matter_what_are_current_rpms(
        mode, curr_rpms):
    strategy = DrivingModeStrategy.create(driving_mode=mode,
                                          aggressive_mode=AggressiveMode.Mode1)
    curr_gear = Gear(gear=2)

    gear_to_set = strategy.handle_gas(curr_gear=curr_gear,
                                      curr_rpm=EngineRPMS(value=curr_rpms),
                                      pressure=KICKDOWN)

    assert gear_to_set == curr_gear.previous()
Ejemplo n.º 4
0
def assert_gear_was_reduced_twice(gearbox, initial_gear: Gear):
    assert gearbox.current_gear == initial_gear.previous().previous()