示例#1
0
def test_unit_vector():
    """Check if the magnitude of unit vector along
    the NumberLine is equal to its unit_size."""
    axis1 = NumberLine(unit_size=0.4)
    axis2 = NumberLine(x_range=[-2, 5], length=12)
    for axis in (axis1, axis2):
        assert np.linalg.norm(axis.get_unit_vector()) == axis.unit_size
示例#2
0
def test_unit_vector():
    """Check if the magnitude of unit vector along
    the NumberLine is equal to its unit_size."""
    axis1 = NumberLine(unit_size=0.4)
    axis2 = NumberLine(width=12, x_min=-2, x_max=5)
    for axis in (axis1, axis2):
        assert np.linalg.norm(axis.get_unit_vector()) == axis.unit_size
示例#3
0
def test_number_to_point():
    line = NumberLine()
    numbers = [1, 2, 3, 4, 5]
    numbers_np = np.array(numbers)
    expected = np.array(
        [
            [1.0, 0.0, 0.0],
            [2.0, 0.0, 0.0],
            [3.0, 0.0, 0.0],
            [4.0, 0.0, 0.0],
            [5.0, 0.0, 0.0],
        ]
    )
    vec_1 = np.array([line.number_to_point(x) for x in numbers])
    vec_2 = line.number_to_point(numbers)
    vec_3 = line.number_to_point(numbers_np)

    np.testing.assert_equal(
        np.round(vec_1, 4),
        np.round(expected, 4),
        f"Expected {expected} but got {vec_1} with input as scalar",
    )
    np.testing.assert_equal(
        np.round(vec_2, 4),
        np.round(expected, 4),
        f"Expected {expected} but got {vec_2} with input as params",
    )
    np.testing.assert_equal(
        np.round(vec_2, 4),
        np.round(expected, 4),
        f"Expected {expected} but got {vec_3} with input as ndarray",
    )
示例#4
0
def test_add_labels():
    expected_label_length = 6
    num_line = NumberLine(x_range=[-4, 4])
    num_line.add_labels(
        dict(zip(list(range(-3, 3)), [Integer(m) for m in range(-1, 5)])), )
    actual_label_length = len(num_line.labels)
    assert (
        actual_label_length == expected_label_length
    ), f"Expected a VGroup with {expected_label_length} integers but got {actual_label_length}."
示例#5
0
def test_decimal_determined_by_step():
    """Checks that step size is considered when determining the number of decimal
    places."""
    axis = NumberLine(x_range=[-2, 2, 0.5])
    expected_decimal_places = 1
    actual_decimal_places = axis.decimal_number_config["num_decimal_places"]
    assert actual_decimal_places == expected_decimal_places, (
        "Expected 1 decimal place but got " + actual_decimal_places)

    axis2 = NumberLine(x_range=[-1, 1, 0.25])
    expected_decimal_places = 2
    actual_decimal_places = axis2.decimal_number_config["num_decimal_places"]
    assert actual_decimal_places == expected_decimal_places, (
        "Expected 1 decimal place but got " + actual_decimal_places)
示例#6
0
def test_whole_numbers_step_size_default_to_0_decimal_places():
    """Checks that ``num_decimal_places`` defaults to 0 when a whole number step size is passed."""
    axis = NumberLine(x_range=[-2, 2, 1])
    expected_decimal_places = 0
    actual_decimal_places = axis.decimal_number_config["num_decimal_places"]
    assert actual_decimal_places == expected_decimal_places, (
        "Expected 1 decimal place but got " + actual_decimal_places)
示例#7
0
def test_decimal_config_overrides_defaults():
    """Checks that ``num_decimal_places`` is determined by step size and gets overridden by ``decimal_number_config``."""
    axis = NumberLine(x_range=[-2, 2, 0.5],
                      decimal_number_config={"num_decimal_places": 0})
    expected_decimal_places = 0
    actual_decimal_places = axis.decimal_number_config["num_decimal_places"]
    assert actual_decimal_places == expected_decimal_places, (
        "Expected 1 decimal place but got " + actual_decimal_places)
示例#8
0
def test_point_to_number():
    line = NumberLine()
    points = [
        [1.0, 0.0, 0.0],
        [2.0, 0.0, 0.0],
        [3.0, 0.0, 0.0],
        [4.0, 0.0, 0.0],
        [5.0, 0.0, 0.0],
    ]
    points_np = np.array(points)
    expected = [1, 2, 3, 4, 5]

    num_1 = [line.point_to_number(point) for point in points]
    num_2 = line.point_to_number(points)
    num_3 = line.point_to_number(points_np)

    np.testing.assert_array_equal(np.round(num_1, 4), np.round(expected, 4))
    np.testing.assert_array_equal(np.round(num_2, 4), np.round(expected, 4))
    np.testing.assert_array_equal(np.round(num_3, 4), np.round(expected, 4))
示例#9
0
def test_duplicate_ticks_removed_for_axes():
    axis = NumberLine(
        x_range=[-10, 10],
    )
    ticks = axis.get_tick_range()
    assert np.unique(ticks).size == ticks.size