@@ -918,6 +918,7 @@ def test_run_mpierr():
918
918
pyuvsim .run_uvdata_uvsim (UVData (), ['beamlist' ])
919
919
920
920
921
+ @pytest .mark .parallel (2 )
921
922
@pytest .mark .parametrize ("order" , [("bda" ,), ("baseline" , "time" ), ("ant2" , "time" )])
922
923
def test_ordering (uvdata_two_redundant_bls_triangle_sources , order ):
923
924
pytest .importorskip ('mpi4py' )
@@ -931,41 +932,62 @@ def test_ordering(uvdata_two_redundant_bls_triangle_sources, order):
931
932
beam_dict = beam_dict ,
932
933
catalog = sky_model ,
933
934
)
934
- assert out_uv .blt_order == order
935
- assert out_uv .blt_order == uvdata_linear .blt_order
935
+ rank = pyuvsim .mpi .get_rank ()
936
+ if rank == 0 :
937
+ print (rank , out_uv )
938
+ assert out_uv .blt_order == order
939
+ assert out_uv .blt_order == uvdata_linear .blt_order
936
940
937
- uvdata_linear .data_array = out_uv .data_array
941
+ uvdata_linear .data_array = out_uv .data_array
938
942
939
- uvdata_linear .reorder_blts (order = "time" , minor_order = "baseline" , conj_convention = "ant1<ant2" )
943
+ uvdata_linear .reorder_blts (
944
+ order = "time" , minor_order = "baseline" , conj_convention = "ant1<ant2"
945
+ )
940
946
941
- assert np .allclose (
942
- uvdata_linear .get_data ((0 , 1 )), uvdata_linear .get_data ((1 , 2 ))
943
- )
944
- assert not np .allclose (
945
- uvdata_linear .get_data ((0 , 1 )), uvdata_linear .get_data ((0 , 2 ))
946
- )
947
+ assert np .allclose (
948
+ uvdata_linear .get_data ((0 , 1 )), uvdata_linear .get_data ((1 , 2 ))
949
+ )
950
+ assert not np .allclose (
951
+ uvdata_linear .get_data ((0 , 1 )), uvdata_linear .get_data ((0 , 2 ))
952
+ )
947
953
948
954
955
+ @pytest .mark .parallel (2 )
949
956
@pytest .mark .parametrize ("order" , [("bda" ,), ("baseline" , "time" ), ("ant2" , "time" )])
950
957
def test_order_warning (uvdata_two_redundant_bls_triangle_sources , order ):
951
958
pytest .importorskip ('mpi4py' )
959
+ # need to get the mpi initialized
960
+ # now that simulations require at least 2 PUs
961
+ pyuvsim .mpi .start_mpi ()
962
+ rank = pyuvsim .mpi .get_rank ()
952
963
uvdata_linear , beam_list , beam_dict , sky_model = uvdata_two_redundant_bls_triangle_sources
953
964
954
965
uvdata_linear .reorder_blts (* order )
955
966
# delete the order like we forgot to set it
956
967
uvdata_linear .blt_order = None
957
- with uvtest .check_warnings (
958
- UserWarning , match = "The parameter `blt_order` could not be identified."
959
- ):
968
+ if rank == 0 :
969
+ with uvtest .check_warnings (
970
+ UserWarning , match = "The parameter `blt_order` could not be identified."
971
+ ):
972
+
973
+ out_uv = pyuvsim .uvsim .run_uvdata_uvsim (
974
+ input_uv = uvdata_linear .copy (),
975
+ beam_list = beam_list ,
976
+ beam_dict = beam_dict ,
977
+ catalog = sky_model ,
978
+ )
979
+
980
+ assert out_uv .blt_order == ("time" , "baseline" )
981
+ else :
960
982
out_uv = pyuvsim .uvsim .run_uvdata_uvsim (
961
983
input_uv = uvdata_linear .copy (),
962
984
beam_list = beam_list ,
963
985
beam_dict = beam_dict ,
964
986
catalog = sky_model ,
965
987
)
966
- assert out_uv .blt_order == ("time" , "baseline" )
967
988
968
989
990
+ @pytest .mark .parallel (2 )
969
991
def test_nblts_not_square (uvdata_two_redundant_bls_triangle_sources ):
970
992
pytest .importorskip ('mpi4py' )
971
993
uvdata_linear , beam_list , beam_dict , sky_model = uvdata_two_redundant_bls_triangle_sources
@@ -977,7 +999,7 @@ def test_nblts_not_square(uvdata_two_redundant_bls_triangle_sources):
977
999
indices = np .nonzero (
978
1000
uvdata_linear .baseline_array == uvdata_linear .antnums_to_baseline (0 , 2 )
979
1001
)[0 ]
980
- print ( uvdata_linear . antnums_to_baseline ( 0 , 2 ), indices )
1002
+
981
1003
# discard half of them
982
1004
indices = indices [::2 ]
983
1005
blt_inds = np .delete (np .arange (uvdata_linear .Nblts ), indices )
@@ -991,12 +1013,13 @@ def test_nblts_not_square(uvdata_two_redundant_bls_triangle_sources):
991
1013
beam_dict = beam_dict ,
992
1014
catalog = sky_model ,
993
1015
)
994
-
995
- assert np .allclose (
996
- out_uv .get_data ((0 , 1 )), out_uv .get_data ((1 , 2 ))
997
- )
998
- # make sure (0, 2) has fewer times
999
- assert out_uv .get_data ((0 , 2 )).shape == (out_uv .Ntimes // 2 , out_uv .Nfreqs , out_uv .Npols )
1016
+ rank = pyuvsim .mpi .get_rank ()
1017
+ if rank == 0 :
1018
+ assert np .allclose (
1019
+ out_uv .get_data ((0 , 1 )), out_uv .get_data ((1 , 2 ))
1020
+ )
1021
+ # make sure (0, 2) has fewer times
1022
+ assert out_uv .get_data ((0 , 2 )).shape == (out_uv .Ntimes // 2 , out_uv .Nfreqs , out_uv .Npols )
1000
1023
1001
1024
1002
1025
def test_tqdm_import_error ():
0 commit comments