@@ -947,6 +947,49 @@ def test_transparent_markers():
947
947
ax = fig .add_subplot (111 )
948
948
ax .plot (data , 'D' , mfc = 'none' , markersize = 100 )
949
949
950
+ @cleanup
951
+ def test_mollweide_forward_inverse_closure ():
952
+ # test that the round-trip Mollweide forward->inverse transformation is an
953
+ # approximate identity
954
+ fig = plt .figure ()
955
+ ax = fig .add_subplot (111 , projection = 'mollweide' )
956
+
957
+ # set up 1-degree grid in longitude, latitude
958
+ lon = np .linspace (- np .pi , np .pi , 360 )
959
+ lat = np .linspace (- np .pi / 2.0 , np .pi / 2.0 , 180 )
960
+ lon , lat = np .meshgrid (lon , lat )
961
+ ll = np .vstack ((lon .flatten (), lat .flatten ())).T
962
+
963
+ # perform forward transform
964
+ xy = ax .transProjection .transform (ll )
965
+
966
+ # perform inverse transform
967
+ ll2 = ax .transProjection .inverted ().transform (xy )
968
+
969
+ # compare
970
+ np .testing .assert_array_almost_equal (ll , ll2 , 3 )
971
+
972
+ @cleanup
973
+ def test_mollweide_inverse_forward_closure ():
974
+ # test that the round-trip Mollweide inverse->forward transformation is an
975
+ # approximate identity
976
+ fig = plt .figure ()
977
+ ax = fig .add_subplot (111 , projection = 'mollweide' )
978
+
979
+ # set up grid in x, y
980
+ x = np .linspace (0 , 1 , 500 )
981
+ x , y = np .meshgrid (x , x )
982
+ xy = np .vstack ((x .flatten (), y .flatten ())).T
983
+
984
+ # perform inverse transform
985
+ ll = ax .transProjection .inverted ().transform (xy )
986
+
987
+ # perform forward transform
988
+ xy2 = ax .transProjection .transform (ll )
989
+
990
+ # compare
991
+ np .testing .assert_array_almost_equal (xy , xy2 , 3 )
992
+
950
993
if __name__ == '__main__' :
951
994
import nose
952
995
nose .runmodule (argv = ['-s' ,'--with-doctest' ], exit = False )
0 commit comments