@@ -18,7 +18,7 @@ subroutine test_int()
18
18
use , intrinsic :: ISO_C_BINDING
19
19
use flc_set, only : Set = > SetInt
20
20
implicit none
21
- type (Set) :: s
21
+ type (Set) :: s, other, op_result
22
22
integer :: num_erased
23
23
24
24
s = Set()
@@ -39,10 +39,28 @@ subroutine test_int()
39
39
call s% erase(4 )
40
40
41
41
! Insert an array of data
42
- call s% insert([1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 ])
43
- ASSERT(s% size () == 7 )
42
+ call s% insert([1 , 1 , 2 , 3 , 5 , 8 , 13 ])
43
+ ASSERT(s% size () == 6 )
44
+
45
+ other = Set([6 , 1 , 3 , 4 , 7 ]) ! input can be out of order
46
+
47
+ op_result = s% difference(other)
48
+ ASSERT(op_result% size () == 4 ) ! 2, 5, 7, 13,
49
+ op_result = s% intersection(other)
50
+ ASSERT(op_result% size () == 2 ) ! 1, 3
51
+ op_result = s% symmetric_difference(other)
52
+ ASSERT(op_result% size () == 7 ) ! 2, 4, 5, 6, 7, 8, 13
53
+ op_result = s% union(other)
54
+ ASSERT(op_result% size () == 9 )
55
+
56
+ ASSERT(.not. s% includes(other))
57
+ call other% clear()
58
+ call other% insert([1 , 2 , 3 ])
59
+ ASSERT(s% includes(other))
44
60
45
61
call s% release()
62
+ call other% release()
63
+ call op_result% release()
46
64
end subroutine
47
65
48
66
!- ----------------------------------------------------------------------------!
0 commit comments