Skip to content

Commit af4eeb9

Browse files
committed
Add tests for prif_initial_team_index
1 parent a56a1cf commit af4eeb9

File tree

1 file changed

+112
-8
lines changed

1 file changed

+112
-8
lines changed

test/prif_image_index_test.F90

Lines changed: 112 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ module caf_image_index_test
66
prif_this_image_no_coarray, &
77
prif_form_team, prif_change_team, prif_end_team, &
88
prif_image_index_with_team, prif_image_index_with_team_number, &
9+
prif_initial_team_index, prif_initial_team_index_with_team, prif_initial_team_index_with_team_number, &
910
prif_this_image_with_coarray, prif_this_image_with_dim, &
1011
prif_lcobound_no_dim, prif_ucobound_no_dim, &
11-
prif_num_images_with_team
12+
prif_num_images_with_team, PRIF_INITIAL_TEAM
1213
use veggies, only: result_t, test_item_t, assert_equals, assert_that, describe, it, succeed
1314

1415
implicit none
@@ -19,7 +20,7 @@ function test_prif_image_index() result(tests)
1920
type(test_item_t) :: tests
2021

2122
tests = describe( &
22-
"prif_image_index", &
23+
"prif_image_index and prif_initial_team_index", &
2324
[ it("returns 1 for the simplest case", check_simple_case) &
2425
, it("returns 1 when given the lower bounds", check_lower_bounds) &
2526
, it("returns 0 with invalid subscripts", check_invalid_subscripts) &
@@ -36,13 +37,17 @@ function check_this_image_coarray(coarray_handle, corank, team) result(result_)
3637
type(result_t) :: result_
3738

3839
integer(c_int64_t) :: co, cosubscripts(corank), colbound(corank), coubound(corank)
39-
integer(c_int) :: i, me
40+
integer(c_int) :: i, me, me_initial
41+
type(prif_team_type) :: initial_team
42+
43+
call prif_get_team(PRIF_INITIAL_TEAM, team=initial_team)
4044

4145
result_ = succeed("")
4246

4347
call prif_lcobound_no_dim(coarray_handle, colbound)
4448
call prif_ucobound_no_dim(coarray_handle, coubound)
4549
call prif_this_image_no_coarray(team, me)
50+
call prif_this_image_no_coarray(initial_team, me_initial)
4651

4752
call prif_this_image_with_coarray(coarray_handle, team=team, cosubscripts=cosubscripts)
4853
do i=1,corank
@@ -60,6 +65,15 @@ function check_this_image_coarray(coarray_handle, corank, team) result(result_)
6065
call prif_image_index(coarray_handle, cosubscripts, i)
6166
end if
6267
result_ = result_ .and. assert_equals(i, me)
68+
69+
! and prif_initial_team_index
70+
if (present(team)) then
71+
call prif_initial_team_index_with_team(coarray_handle, cosubscripts, team, i)
72+
else
73+
call prif_initial_team_index(coarray_handle, cosubscripts, i)
74+
end if
75+
result_ = result_ .and. assert_equals(i, me_initial)
76+
6377
end function
6478

6579
function check_simple_case() result(result_)
@@ -80,6 +94,9 @@ function check_simple_case() result(result_)
8094
call prif_image_index(coarray_handle, [1_c_int64_t], image_index=answer)
8195
result_ = assert_equals(1_c_int, answer)
8296

97+
call prif_initial_team_index(coarray_handle, [1_c_int64_t], initial_team_index=answer)
98+
result_ = result_ .and. assert_equals(1_c_int, answer)
99+
83100
result_ = result_ .and. &
84101
check_this_image_coarray(coarray_handle, 1)
85102

@@ -104,6 +121,9 @@ function check_lower_bounds() result(result_)
104121
call prif_image_index(coarray_handle, [2_c_int64_t, 3_c_int64_t], image_index=answer)
105122
result_ = assert_equals(1_c_int, answer)
106123

124+
call prif_initial_team_index(coarray_handle, [2_c_int64_t, 3_c_int64_t], initial_team_index=answer)
125+
result_ = result_ .and. assert_equals(1_c_int, answer)
126+
107127
result_ = result_ .and. &
108128
check_this_image_coarray(coarray_handle, 2)
109129

@@ -139,7 +159,7 @@ function check_complicated_2d() result(result_)
139159

140160
type(prif_coarray_handle) :: coarray_handle
141161
type(c_ptr) :: allocated_memory
142-
integer(c_int) :: answer, ni
162+
integer(c_int) :: answer, ni, expected
143163
call prif_num_images(num_images=ni)
144164

145165
call prif_allocate_coarray( &
@@ -150,7 +170,13 @@ function check_complicated_2d() result(result_)
150170
coarray_handle = coarray_handle, &
151171
allocated_memory = allocated_memory)
152172
call prif_image_index(coarray_handle, [1_c_int64_t, 3_c_int64_t], image_index=answer)
153-
result_ = assert_equals(merge(3_c_int,0_c_int,ni >= 3), answer)
173+
expected = merge(3_c_int,0_c_int,ni >= 3)
174+
result_ = assert_equals(expected, answer)
175+
176+
if (expected > 0) then
177+
call prif_initial_team_index(coarray_handle, [1_c_int64_t, 3_c_int64_t], initial_team_index=answer)
178+
result_ = result_ .and. assert_equals(expected, answer)
179+
end if
154180

155181
result_ = result_ .and. &
156182
check_this_image_coarray(coarray_handle, 2)
@@ -163,7 +189,7 @@ function check_complicated_3d() result(result_)
163189

164190
type(prif_coarray_handle) :: coarray_handle
165191
type(c_ptr) :: allocated_memory
166-
integer(c_int) :: answer, ni
192+
integer(c_int) :: answer, ni, expected
167193
type(prif_team_type) :: initial_team
168194
call prif_get_team(team=initial_team)
169195
call prif_num_images_with_team(team=initial_team, num_images=ni)
@@ -178,7 +204,15 @@ function check_complicated_3d() result(result_)
178204
call prif_image_index_with_team(coarray_handle, &
179205
[2_c_int64_t, 1_c_int64_t, 1_c_int64_t], &
180206
team=initial_team, image_index=answer)
181-
result_ = assert_equals(merge(8_c_int,0_c_int,ni >= 8), answer)
207+
expected = merge(8_c_int,0_c_int,ni >= 8)
208+
result_ = assert_equals(expected, answer)
209+
210+
if (expected > 0) then
211+
call prif_initial_team_index_with_team(coarray_handle, &
212+
[2_c_int64_t, 1_c_int64_t, 1_c_int64_t], &
213+
team=initial_team, initial_team_index=answer)
214+
result_ = result_ .and. assert_equals(expected, answer)
215+
endif
182216

183217
result_ = result_ .and. &
184218
check_this_image_coarray(coarray_handle, 3)
@@ -209,12 +243,14 @@ function check_complicated_2d_team() result(result_)
209243
coarray_handle = coarray_handle, &
210244
allocated_memory = allocated_memory)
211245

212-
which_team = merge(1_c_int64_t, 2_c_int64_t, mod(me, 2) == 0)
246+
which_team = merge(2_c_int64_t, 1_c_int64_t, mod(me, 2) == 0)
213247
call prif_form_team(team_number = which_team, team = child_team)
214248
call prif_change_team(child_team)
215249

216250
call prif_num_images_with_team(team=child_team, num_images=cni)
217251

252+
! image_index lcobound
253+
218254
call prif_image_index_with_team(coarray_handle, &
219255
[0_c_int64_t, 2_c_int64_t], &
220256
team=initial_team, image_index=answer)
@@ -245,6 +281,40 @@ function check_complicated_2d_team() result(result_)
245281
result_ = result_ .and. &
246282
assert_equals(1_c_int, answer)
247283

284+
! initial_team_index lcobound
285+
286+
call prif_initial_team_index_with_team(coarray_handle, &
287+
[0_c_int64_t, 2_c_int64_t], &
288+
initial_team, answer)
289+
result_ = result_ .and. &
290+
assert_equals(1_c_int, answer)
291+
292+
call prif_initial_team_index_with_team_number(coarray_handle, &
293+
[0_c_int64_t, 2_c_int64_t], &
294+
-1_c_int64_t, answer)
295+
result_ = result_ .and. &
296+
assert_equals(1_c_int, answer)
297+
298+
call prif_initial_team_index_with_team(coarray_handle, &
299+
[0_c_int64_t, 2_c_int64_t], &
300+
child_team, answer)
301+
result_ = result_ .and. &
302+
assert_equals(merge(1_c_int,2_c_int,which_team==1), answer)
303+
304+
call prif_initial_team_index_with_team_number(coarray_handle, &
305+
[0_c_int64_t, 2_c_int64_t], &
306+
which_team, answer)
307+
result_ = result_ .and. &
308+
assert_equals(merge(1_c_int,2_c_int,which_team==1), answer)
309+
310+
call prif_initial_team_index(coarray_handle, &
311+
[0_c_int64_t, 2_c_int64_t], &
312+
answer)
313+
result_ = result_ .and. &
314+
assert_equals(merge(1_c_int,2_c_int,which_team==1), answer)
315+
316+
! image_index 3
317+
248318
call prif_image_index_with_team(coarray_handle, &
249319
[0_c_int64_t, 3_c_int64_t], &
250320
team=initial_team, image_index=answer)
@@ -275,6 +345,40 @@ function check_complicated_2d_team() result(result_)
275345
result_ = result_ .and. &
276346
assert_equals(merge(3_c_int,0_c_int,cni >= 3), answer)
277347

348+
! initial_team_index 3
349+
if (ni >= 3) then
350+
call prif_initial_team_index_with_team(coarray_handle, &
351+
[0_c_int64_t, 3_c_int64_t], &
352+
team=initial_team, initial_team_index=answer)
353+
result_ = result_ .and. &
354+
assert_equals(3_c_int, answer)
355+
356+
call prif_initial_team_index_with_team_number(coarray_handle, &
357+
[0_c_int64_t, 3_c_int64_t], &
358+
team_number=-1_c_int64_t, initial_team_index=answer)
359+
result_ = result_ .and. &
360+
assert_equals(3_c_int, answer)
361+
end if
362+
if (cni >= 3) then
363+
call prif_initial_team_index_with_team(coarray_handle, &
364+
[0_c_int64_t, 3_c_int64_t], &
365+
team=child_team, initial_team_index=answer)
366+
result_ = result_ .and. &
367+
assert_equals(merge(5_c_int,6_c_int,which_team==1), answer)
368+
369+
call prif_initial_team_index_with_team_number(coarray_handle, &
370+
[0_c_int64_t, 3_c_int64_t], &
371+
team_number=which_team, initial_team_index=answer)
372+
result_ = result_ .and. &
373+
assert_equals(merge(5_c_int,6_c_int,which_team==1), answer)
374+
375+
call prif_initial_team_index(coarray_handle, &
376+
[0_c_int64_t, 3_c_int64_t], &
377+
initial_team_index=answer)
378+
result_ = result_ .and. &
379+
assert_equals(merge(5_c_int,6_c_int,which_team==1), answer)
380+
end if
381+
278382
result_ = result_ .and. &
279383
check_this_image_coarray(coarray_handle, 2, initial_team)
280384
result_ = result_ .and. &

0 commit comments

Comments
 (0)