Skip to content

Commit 64ad418

Browse files
author
Damian Rouson
committed
test(co_sum): unit tests with/without result_image
1 parent f853c4c commit 64ad418

File tree

3 files changed

+65
-34
lines changed

3 files changed

+65
-34
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
module collective_subroutines_test
2+
use Vegetables, only: Result_t, Test_Item_t, describe, it, succeed, assert_equals
3+
4+
implicit none
5+
private
6+
7+
public :: test_collective_subroutines
8+
contains
9+
function test_collective_subroutines() result(tests)
10+
type(Test_Item_t) :: tests
11+
12+
tests = describe(&
13+
"co_sum", &
14+
[it( &
15+
"gives the correct answer with result_image present", &
16+
check_co_sum_with_result_image), &
17+
it( &
18+
"gives the correct answer without result_image present", &
19+
check_co_sum_without_result_image)])
20+
end function
21+
22+
function check_co_sum_with_result_image() result(result_)
23+
use emulated_intrinsics_interface, only : co_sum
24+
type(Result_t) :: result_
25+
26+
integer i, j
27+
integer, parameter :: result_image=2
28+
29+
associate(me => this_image())
30+
i = me
31+
call co_sum(i, result_image)
32+
if (me==result_image) then
33+
result_ = assert_equals(sum([(j, j=1, num_images())]), i, "collective sum on result_image")
34+
else
35+
result_ = assert_equals(me, i, "co_sum argument unchanged on non-result_image")
36+
end if
37+
end associate
38+
end function
39+
40+
function check_co_sum_without_result_image() result(result_)
41+
use emulated_intrinsics_interface, only : co_sum
42+
type(Result_t) :: result_
43+
44+
integer i, j
45+
integer, parameter :: result_image=2
46+
47+
associate(me => this_image())
48+
i = me
49+
call co_sum(i)
50+
result_ = assert_equals(sum([(j, j=1, num_images())]), i, "co_sum without result_image present")
51+
end associate
52+
end function
53+
54+
end module

tests/example_test.f90

Lines changed: 0 additions & 24 deletions
This file was deleted.

tests/main.f90

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
1+
! Generated by make_vegetable_driver. DO NOT EDIT
12
program main
2-
use example_test, only: &
3-
example_example => test_example
4-
use Vegetables_m, only: TestItem_t, testThat, runTests
5-
63
implicit none
74

85
call run()
96
contains
107
subroutine run()
11-
type(TestItem_t) :: tests
12-
type(TestItem_t) :: individual_tests(1)
8+
use collective_subroutines_test, only: &
9+
collective_subroutines_collective_subroutines => test_collective_subroutines
10+
use vegetables, only: test_item_t, test_that, run_tests
11+
12+
type(test_item_t) :: tests
13+
type(test_item_t) :: individual_tests(1)
1314

14-
individual_tests(1) = example_example()
15-
tests = testThat(individual_tests)
15+
individual_tests(1) = collective_subroutines_collective_subroutines()
16+
tests = test_that(individual_tests)
1617

17-
call runTests(tests)
18-
end subroutine run
18+
call run_tests(tests)
19+
end subroutine
1920
end program

0 commit comments

Comments
 (0)