def test_node_id_in_direction_of_max():
    values = np.array([
        -1,
        1,
        3,
        6,
        10,
        0,
        1,
        3,
        6,
        10,
        0,
        1,
        3,
        5,
        10,
        0,
        1,
        -3,
        6,
        10,
    ],
                      dtype=float)
    (_, node_ids) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values, (0, 4), return_node=True)
    assert_array_equal(node_ids, [5, 17])

    (grads, node_ids) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values, (0, 4), method='d8', return_node=True)
    assert_array_equal(node_ids, [0, 17])
def test_node_in_direction_of_max_with_ties():
    values = np.zeros(9)
    (_, node) = calculate_steepest_descent_across_adjacent_cells(
        rmg_3x3, values, 0, return_node=True, method='d8')
    assert_array_equal(node, 5)

    for (node_id, expected) in zip([5, 7, 3, 1, 8, 6, 0],
                                   [7, 3, 1, 8, 6, 0, 2]):
        values[node_id] = 1
        (_, node) = calculate_steepest_descent_across_adjacent_cells(
            rmg_3x3, values, 0, return_node=True, method='d8')
        assert_array_equal(node, expected)
def test_node_id_in_direction_of_max():
    values = np.array([-1, 1,  3, 6, 10,
                       0, 1,  3, 6, 10,
                       0, 1,  3, 5, 10,
                       0, 1, -3, 6, 10, ], dtype=float)
    (_, node_ids) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values, (0, 4), return_node=True)
    assert_array_equal(node_ids, [5, 17])

    (grads,
     node_ids) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values, (0, 4), method='d8', return_node=True)
    assert_array_equal(node_ids, [0, 17])
def test_scalar_arg():
    """Test scalar arg for nodes."""
    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg_3x3, values_at_nodes, 0)
    assert_equal(grad, -3.)

    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg_3x3, values_at_nodes, 0, method='d8')
    assert_equal(grad, -3.)

    values_at_nodes[2] = -10
    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg_3x3, values_at_nodes, 0, method='d8')
    assert_equal(grad, - (4 + 10) / np.sqrt(2.))
def test_scalar_arg_with_links():
    values = np.array([0, 1,  3, 6, 10,
                       0, 1,  3, 6, 10,
                       0, 1,  3, 5, 10,
                       0, 1, -3, 6, 10, ], dtype=float)
    (grad, node) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values, (0, 4), return_node=True)
    assert_array_equal(grad, [-1, -6])
    assert_array_equal(node, [5, 17])

    values_at_nodes[2] = -10
    (grad, node) = calculate_steepest_descent_across_adjacent_cells(
        rmg, values_at_nodes, 0, method='d8', return_node=True)
    assert_equal(grad, - (6 + 10) / np.sqrt(2.))
    assert_equal(node, 2)
def test_node_in_direction_of_max_with_ties():
    values = np.zeros(9)
    (_,
     node) = calculate_steepest_descent_across_adjacent_cells(rmg_3x3,
                                                              values,
                                                              0,
                                                              return_node=True,
                                                              method='d8')
    assert_array_equal(node, 5)

    for (node_id, expected) in zip([5, 7, 3, 1, 8, 6, 0],
                                   [7, 3, 1, 8, 6, 0, 2]):
        values[node_id] = 1
        (_, node) = calculate_steepest_descent_across_adjacent_cells(
            rmg_3x3, values, 0, return_node=True, method='d8')
        assert_array_equal(node, expected)
def test_node_in_direction_of_max():
    for node_id in [0, 1, 2, 3, 5, 6, 7, 8]:
        values = np.zeros(9)
        values[node_id] = -1
        (_, node) = calculate_steepest_descent_across_adjacent_cells(
            rmg_3x3, values, 0, return_node=True, method='d8')
        assert_array_equal(node, node_id)
def test_node_in_direction_of_max():
    for node_id in [0, 1, 2, 3, 5, 6, 7, 8]:
        values = np.zeros(9)
        values[node_id] = -1
        (_, node) = calculate_steepest_descent_across_adjacent_cells(
            rmg_3x3, values, 0, return_node=True, method='d8')
        assert_array_equal(node, node_id)
def test_scalar_arg():
    """Test scalar arg for nodes."""
    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg_3x3, values_at_nodes, 0)
    assert_equal(grad, -3.)

    grad = calculate_steepest_descent_across_adjacent_cells(rmg_3x3,
                                                            values_at_nodes,
                                                            0,
                                                            method='d8')
    assert_equal(grad, -3.)

    values_at_nodes[2] = -10
    grad = calculate_steepest_descent_across_adjacent_cells(rmg_3x3,
                                                            values_at_nodes,
                                                            0,
                                                            method='d8')
    assert_equal(grad, -(4 + 10) / np.sqrt(2.))
def test_scalar_arg_with_links():
    values = np.array([
        0,
        1,
        3,
        6,
        10,
        0,
        1,
        3,
        6,
        10,
        0,
        1,
        3,
        5,
        10,
        0,
        1,
        -3,
        6,
        10,
    ],
                      dtype=float)
    (grad,
     node) = calculate_steepest_descent_across_adjacent_cells(rmg,
                                                              values, (0, 4),
                                                              return_node=True)
    assert_array_equal(grad, [-1, -6])
    assert_array_equal(node, [5, 17])

    values_at_nodes[2] = -10
    (grad,
     node) = calculate_steepest_descent_across_adjacent_cells(rmg,
                                                              values_at_nodes,
                                                              0,
                                                              method='d8',
                                                              return_node=True)
    assert_equal(grad, -(6 + 10) / np.sqrt(2.))
    assert_equal(node, 2)
def test_iterable():
    """Test iterable arg for nodes."""
    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg, values_at_nodes, [0, 4])
    assert_array_equal(grad, [-5., -5.])
def test_iterable():
    """Test iterable arg for nodes."""
    grad = calculate_steepest_descent_across_adjacent_cells(
        rmg, values_at_nodes, [0, 4])
    assert_array_equal(grad, [-5., -5.])