Пример #1
0
def test_twa_90_degrees_heel():
    r""" Boat at 90° heel."""
    with pytest.raises(ValueError):
        true_wind_angle(apparent_wind_speed=10.,
                        apparent_wind_angle=75.,
                        boatspeed=3.,
                        heel_angle=90.)
Пример #2
0
def test_twa_opposite_heel_angles():
    r"""Opposite heel angles should result in the same true wind angle"""
    twa_heeled_40_degrees = true_wind_angle(apparent_wind_speed=10.,
                                            apparent_wind_angle=120.,
                                            boatspeed=3.,
                                            heel_angle=40.)
    twa_counterheeled_40_degrees = true_wind_angle(apparent_wind_speed=10.,
                                                   apparent_wind_angle=120.,
                                                   boatspeed=3.,
                                                   heel_angle=-40.)
    assert twa_heeled_40_degrees == twa_counterheeled_40_degrees
Пример #3
0
def test_twa_known_values_going_backwards():
    r"""Known values going backwards."""
    twa_backwards_reaching_same_speed_as_tws = \
        true_wind_angle(apparent_wind_speed=10. * math.sqrt(2.),
                        apparent_wind_angle=135.,
                        boatspeed=-10.)
    expected_value, atol = 90., 1e-6
    assert expected_value - atol <= twa_backwards_reaching_same_speed_as_tws <= expected_value + atol

    # Head to wind, going backwards at the same speed as true_wind_speed
    twa_head_to_wind_no_true = true_wind_angle(apparent_wind_speed=0.,
                                               apparent_wind_angle=0.,
                                               boatspeed=-10.)
    expected_value, atol = 0., 1e-6
    assert expected_value - atol <= twa_head_to_wind_no_true <= expected_value + atol
Пример #4
0
def test_twa_known_values():
    r"""Known values."""
    twa_reaching_same_speed_as_tws = \
        true_wind_angle(apparent_wind_speed=10. * math.sqrt(2.),
                        apparent_wind_angle=45.,
                        boatspeed=10.)
    expected_value, atol = 90., 1e-6
    assert expected_value - atol <= twa_reaching_same_speed_as_tws <= expected_value + atol
Пример #5
0
def test_twa_zero_boatspeed_awa():
    r"""At zero speed, the true wind angle
    and the apparent wind angle should be equal"""
    twa_zero_boatspeed_1 = true_wind_angle(apparent_wind_speed=10.,
                                           apparent_wind_angle=45.,
                                           boatspeed=0.)
    assert twa_zero_boatspeed_1 == 45.

    twa_zero_boatspeed_2 = true_wind_angle(apparent_wind_speed=10.,
                                           apparent_wind_angle=-165.,
                                           boatspeed=0.)
    expected_value, atol = -165., 1e-6
    assert expected_value - atol <= twa_zero_boatspeed_2 <= expected_value + atol

    twa_zero_boatspeed_3 = true_wind_angle(apparent_wind_speed=10.,
                                           apparent_wind_angle=90.,
                                           boatspeed=0.)
    assert twa_zero_boatspeed_3 == 90.
Пример #6
0
def test_twa_awa_gt_180():
    r"""Apparent wind angle higher than 180, should raise a ValueError"""
    with pytest.raises(ValueError):
        true_wind_angle(apparent_wind_speed=1.,
                        apparent_wind_angle=181.,
                        boatspeed=0.)
Пример #7
0
def test_twa_awa_lt_minus180():
    r"""Apparent wind angle lower than -180, should raise a ValueError"""
    with pytest.raises(ValueError):
        true_wind_angle(apparent_wind_speed=1.,
                        apparent_wind_angle=-181.,
                        boatspeed=0.)
Пример #8
0
def test_twa_negative_aws():
    r"""Negative apparent wind speed, should raise a ValueError"""
    with pytest.raises(ValueError):
        true_wind_angle(apparent_wind_speed=-1.,
                        apparent_wind_angle=45.,
                        boatspeed=0.)