コード例 #1
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_time_starting_time_2():
    starting_time = parser.parse("2017-02-13 23:56")

    clock = Clock(time_step=10, time_unit="m", starting_time=starting_time)
    clock.tick()

    assert clock.clock_time_to_time().hour == 0
    assert clock.clock_time_to_time().minute == 6
コード例 #2
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_time_hour_2():
    clock = Clock(time_step=2, time_unit="h")

    clock.tick()
    assert clock.clock_time_to_time().hour == 2
    assert clock.clock_time_to_time().minute == 0

    for i in range(24):
        clock.tick()

    assert clock.clock_time_to_time().hour == 2
    assert clock.clock_time_to_time().minute == 0
コード例 #3
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_datetime():
    starting_time = parser.parse("2016-03-21 08:03")

    clock = Clock(time_step=1, time_unit="h", starting_time=starting_time)
    clock.tick()

    assert isinstance(clock.to_datetime(), datetime.datetime)
    assert clock.to_datetime() == parser.parse("2016-03-21 09:03")

    for i in range(25):
        clock.tick()

    assert clock.to_datetime() == parser.parse("2016-03-22 10:03")
コード例 #4
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_time_starting_time():
    starting_time = parser.parse("2017-02-13 10:34")

    clock = Clock(time_step=10, time_unit="m", starting_time=starting_time)
    clock.tick()

    assert clock.clock_time_to_time().hour == 10
    assert clock.clock_time_to_time().minute == 44

    for i in range(3):
        clock.tick()

    assert clock.clock_time_to_time().hour == 11
    assert clock.clock_time_to_time().minute == 14
コード例 #5
0
def test_router2d():
    speed_kmph = 25
    nyc_pos = GeographicPosition(-73.935242, 40.730610)
    nyc_pos_shift = GeographicPosition(-73.935, 40.7306)

    # monutes
    clock = Clock(time_step=1, time_unit="m")
    router = LinearRouter(speed=speed_kmph, clock=clock)

    assert router.estimate_duration(nyc_pos, nyc_pos) == 0

    route = router.calculate_route(nyc_pos, nyc_pos)
    assert route.duration == 0
    assert route.distance == 0
    assert len(route.coordinates) == 1

    assert route.approximate_position(clock.clock_time) == nyc_pos
    assert route.approximate_position(clock.clock_time + 1) == nyc_pos

    assert router.estimate_duration(nyc_pos, nyc_pos_shift) == 1

    for i in range(10):
        clock.tick()

    assert router.estimate_duration(nyc_pos, nyc_pos) == 0

    # seconds
    clock = Clock(time_step=1, time_unit="s")
    router = LinearRouter(speed=speed_kmph, clock=clock)
    assert router.estimate_duration(nyc_pos, nyc_pos_shift) == 3

    route = router.calculate_route(nyc_pos, nyc_pos_shift)
    assert route.duration == 3
    assert pytest.approx(route.distance, 3) == 0.02
    assert len(route.coordinates) == 4

    assert route.approximate_position(clock.clock_time) == nyc_pos
    assert route.approximate_position(clock.clock_time + 1) != nyc_pos
    assert route.approximate_position(clock.clock_time +
                                      1) == route.coordinates[1]

    assert route.approximate_position(clock.clock_time + 3) == nyc_pos_shift
    assert route.approximate_position(clock.clock_time +
                                      3) == route.coordinates[-1]
コード例 #6
0
def test_end_to_end():

    init_pos = Position(13.3764, 52.5461)
    dest1 = Position(13.4014, 52.5478)
    dest2 = Position(13.3393, 52.5053)

    clock = Clock()
    # to start not from the beginning
    clock.tick()
    clock.tick()

    router = LinearRouter(clock)

    engine = VehicleEngine(init_pos, router, clock)
    engine.start_move(dest1)

    assert engine.eta == 8
    assert engine.current_position == init_pos

    clock.tick()
    clock.tick()

    assert engine.current_position != init_pos

    for _ in range(engine.eta - clock.clock_time):
        clock.tick()

    assert engine.current_position == dest1
    assert not engine.is_moving()
    assert engine.eta == clock.clock_time

    engine.end_move()
    assert not engine.is_moving()
    assert engine.eta == clock.clock_time
コード例 #7
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_time_hour():
    clock = Clock(time_unit="h")

    clock.tick()
    assert isinstance(clock.clock_time_to_time(), datetime.time)
    assert clock.clock_time_to_time().hour == 1
    assert clock.clock_time_to_time().minute == 0

    clock.tick()
    assert clock.clock_time_to_time().hour == 2
    assert clock.clock_time_to_time().minute == 0

    for i in range(24):
        clock.tick()

    assert clock.clock_time_to_time().hour == 2
    assert clock.clock_time_to_time().minute == 0

    for i in range(5):
        clock.tick()

    assert clock.clock_time_to_time().hour == 7
コード例 #8
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_to_time_minutes():
    clock = Clock(time_step=10, time_unit="m")
    clock.tick()

    assert clock.clock_time_to_time().hour == 0
    assert clock.clock_time_to_time().minute == 10

    clock.tick()
    assert clock.clock_time_to_time().hour == 0
    assert clock.clock_time_to_time().minute == 20

    for i in range(5):
        clock.tick()

    assert clock.clock_time_to_time().hour == 1
    assert clock.clock_time_to_time().minute == 10

    for i in range(24 * 60):
        clock.tick()

    assert clock.clock_time_to_time().hour == 1
    assert clock.clock_time_to_time().minute == 10
コード例 #9
0
ファイル: test_clock.py プロジェクト: LADDDUU/simobility
def test_tick():
    clock = Clock()

    for i in range(10):
        assert clock.clock_time == i
        clock.tick()