| 
6 | 6 | import numpy as np  | 
7 | 7 | import matplotlib.pyplot as plt  | 
8 | 8 | import matplotlib.tri as mtri  | 
9 |  | -from nose.tools import assert_equal, assert_raises  | 
 | 9 | +from nose.tools import assert_equal, assert_raises, assert_true, assert_false  | 
10 | 10 | from numpy.testing import assert_array_equal, assert_array_almost_equal,\  | 
11 | 11 |     assert_array_less  | 
12 | 12 | import numpy.ma.testutils as matest  | 
@@ -962,6 +962,29 @@ def test_triplot_return():  | 
962 | 962 |         raise AssertionError("triplot should return the artist it adds")  | 
963 | 963 | 
 
  | 
964 | 964 | 
 
  | 
 | 965 | +def test_trirefiner_fortran_contiguous_triangles():  | 
 | 966 | +    # github issue 4180.  Test requires two arrays of triangles that are  | 
 | 967 | +    # identical except that one is C-contiguous and one is fortran-contiguous.  | 
 | 968 | +    triangles1 = np.array([[2, 0, 3], [2, 1, 0]])  | 
 | 969 | +    assert_false(np.isfortran(triangles1))  | 
 | 970 | + | 
 | 971 | +    triangles2 = np.copy(triangles1, order='F')  | 
 | 972 | +    assert_true(np.isfortran(triangles2))  | 
 | 973 | + | 
 | 974 | +    x = np.array([0.39, 0.59, 0.43, 0.32])  | 
 | 975 | +    y = np.array([33.99, 34.01, 34.19, 34.18])  | 
 | 976 | +    triang1 = mtri.Triangulation(x, y, triangles1)  | 
 | 977 | +    triang2 = mtri.Triangulation(x, y, triangles2)  | 
 | 978 | + | 
 | 979 | +    refiner1 = mtri.UniformTriRefiner(triang1)  | 
 | 980 | +    refiner2 = mtri.UniformTriRefiner(triang2)  | 
 | 981 | + | 
 | 982 | +    fine_triang1 = refiner1.refine_triangulation(subdiv=1)  | 
 | 983 | +    fine_triang2 = refiner2.refine_triangulation(subdiv=1)  | 
 | 984 | + | 
 | 985 | +    assert_array_equal(fine_triang1.triangles, fine_triang2.triangles)  | 
 | 986 | + | 
 | 987 | + | 
965 | 988 | if __name__ == '__main__':  | 
966 | 989 |     import nose  | 
967 | 990 |     nose.runmodule(argv=['-s', '--with-doctest'], exit=False)  | 
0 commit comments