def test_reduce_nodes_stay_the_same(): nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0], spacing=1.0) assert nodes == [0, 1, 2, 3, 4] nodes = _reduce_nodes([0.0, 2.0, 4.0, 6.0, 8.0], spacing=2.0) assert nodes == [0, 1, 2, 3, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0], spacing=0.5) assert nodes == [0, 1, 2, 3, 4] nodes = _reduce_nodes([0.0, 1.0, 3.0, 6.0, 10.0], spacing=[1, 2, 3, 4, 5]) assert nodes == [0, 1, 2, 3, 4]
def test_reduce_nodes_min_max_spacing(spacing): distance_along_segment = np.cumsum(spacing) if np.any(np.diff(distance_along_segment) <= 0): raise ValueError(f"array not sorted ({distance_along_segment})") nodes = _reduce_nodes(distance_along_segment, spacing=spacing.min()) assert np.all(nodes == np.arange(len(spacing))) nodes = _reduce_nodes( distance_along_segment, spacing=distance_along_segment[-1] - distance_along_segment[0], ) assert nodes == [0, len(spacing) - 1]
def test_reduce_nodes(): nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 3.5], spacing=1.0) assert nodes == [0, 1, 2, 3, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 3.5], spacing=0.5) assert nodes == [0, 1, 2, 3, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0], spacing=1.75) assert nodes == [0, 2, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0], spacing=[1.0, 1.0, 2.0, 2.0, 2.0]) assert nodes == [0, 1, 2, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0], spacing=1000.0) assert nodes == [0, 4] nodes = _reduce_nodes([0.0, 1.0, 2.0, 3.0, 4.0, 5.0], spacing=2.0) assert nodes == [0, 2, 4, 5]