|
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