Skip to content

Commit 922e523

Browse files
committed
stat_dev_1: update test_mean
1 parent 5a1adcb commit 922e523

File tree

1 file changed

+31
-44
lines changed

1 file changed

+31
-44
lines changed

src/tests/stat/test_mean.f90

Lines changed: 31 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -11,37 +11,37 @@ program test_mean
1111
real(dp), allocatable :: d3(:, :, :)
1212
real(dp), allocatable :: d4(:, :, :, :)
1313

14+
1415
!sp
15-
call loadtxt("array1.dat", s)
16+
call loadtxt("array3.dat", s)
1617

17-
call assert( mean(s) - 4.5_sp == 0.0_sp)
18-
call assert(sum( mean(s, dim = 1) - [4.0_sp, 5.0_sp] ) == 0.0_sp)
19-
call assert(sum( mean(s, dim = 2) - [1.5_sp, 3.5_sp, 5.5_sp, 7.5_sp] ) == 0.0_sp)
18+
call assert( mean(s) - sum(s)/real(size(s), sp) == 0.0_sp)
19+
call assert( sum( abs( mean(s,1) - sum(s,1)/real(size(s,1), sp) )) == 0.0_sp)
20+
call assert( sum( abs( mean(s,2) - sum(s,2)/real(size(s,2), sp) )) == 0.0_sp)
2021

21-
call assert( size(mean(s, dim = 1))- size(sum(s, dim = 1)) == 0)
22-
call assert( size(mean(s, dim = 2))- size(sum(s, dim = 2)) == 0)
2322

2423
!dp
25-
call loadtxt("array1.dat", d)
24+
call loadtxt("array3.dat", d)
25+
26+
call assert( mean(d) - sum(d)/real(size(d), dp) == 0.0_dp)
27+
call assert( sum( abs( mean(d,1) - sum(d,1)/real(size(d,1), dp) )) == 0.0_dp)
28+
call assert( sum( abs( mean(d,2) - sum(d,2)/real(size(d,2), dp) )) == 0.0_dp)
2629

27-
call assert(mean(d) - 4.5_dp == 0.0_dp)
28-
call assert(sum( mean(d, dim = 1) - [4.0_dp, 5.0_dp] ) == 0.0_dp)
29-
call assert(sum( mean(d, dim = 2) - [1.5_dp, 3.5_dp, 5.5_dp, 7.5_dp] ) == 0.0_dp)
3030

3131
!int32
32-
call loadtxt("array1.dat", s)
32+
call loadtxt("array3.dat", d)
3333

34-
call assert( mean(int(s, int32)) - 4.5_dp == 0.0_dp)
35-
call assert(sum( mean(int(s, int32), dim = 1) - [4.0_dp, 5.0_dp] ) == 0.0_dp)
36-
call assert(sum( mean(int(s, int32), dim = 2) - [1.5_dp, 3.5_dp, 5.5_dp, 7.5_dp] ) == 0.0_dp)
34+
call assert( mean(int(d, int32)) - sum(real(int(d, int32),dp))/real(size(d), dp) == 0.0_dp)
35+
call assert( sum(abs( mean(int(d, int32),1) - sum(real(int(d, int32),dp),1)/real(size(d,1), dp) )) == 0.0_dp)
36+
call assert( sum(abs( mean(int(d, int32),2) - sum(real(int(d, int32),dp),2)/real(size(d,2), dp) )) == 0.0_dp)
3737

38-
!int64
39-
call loadtxt("array1.dat", s)
4038

41-
call assert( mean(int(s, int64)) - 4.5_dp == 0.0_dp)
42-
call assert(sum( mean(int(s, int64), dim = 1) - [4.0_dp, 5.0_dp] ) == 0.0_dp)
43-
call assert(sum( mean(int(s, int64), dim = 2) - [1.5_dp, 3.5_dp, 5.5_dp, 7.5_dp] ) == 0.0_dp)
39+
!int64
40+
call loadtxt("array3.dat", d)
4441

42+
call assert( mean(int(d, int64)) - sum(real(int(d, int64),dp))/real(size(d), dp) == 0.0_dp)
43+
call assert( sum(abs( mean(int(d, int64),1) - sum(real(int(d, int64),dp),1)/real(size(d,1), dp) )) == 0.0_dp)
44+
call assert( sum(abs( mean(int(d, int64),2) - sum(real(int(d, int64),dp),2)/real(size(d,2), dp) )) == 0.0_dp)
4545

4646

4747
!dp rank 3
@@ -50,38 +50,25 @@ program test_mean
5050
d3(:,:,2)=d*1.5_dp;
5151
d3(:,:,3)=d*4._dp;
5252

53-
call assert( sum( shape(mean(d3,1))-shape(sum(d3,1)) ) == 0)
54-
call assert( sum( shape(mean(d3,2))-shape(sum(d3,2)) ) == 0)
55-
call assert( sum( shape(mean(d3,3))-shape(sum(d3,3)) ) == 0)
56-
57-
call assert( mean(d3) - sum(d3)/size(d3) == 0.0_dp)
58-
call assert( sum(abs( mean(d3,1) - &
59-
reshape([4.0_dp, 5.0_dp, 6.0_dp, 7.5_dp, 16.0_dp, 20.0_dp], shape(sum(d3,1))) ) ) &
60-
== 0.0_dp)
61-
call assert( sum(abs( mean(d3,2) - &
62-
reshape([ 1.5_dp, 3.5_dp, 5.5_dp, 7.5_dp, &
63-
2.25_dp, 5.25_dp, 8.25_dp, 11.25_dp, &
64-
6._dp, 14._dp, 22._dp, 30._dp &
65-
], shape(sum(d3,2))) ) ) &
66-
== 0.0_dp)
67-
call assert( sum(abs( mean(d3,3) - &
68-
reshape([2.1666666666666665_dp, 6.5_dp, 10.833333333333334_dp,&
69-
15.166666666666666_dp, 4.333333333333333_dp, &
70-
8.6666666666666661_dp, 13.0_dp, 17.333333333333332_dp &
71-
], shape(sum(d3,3))) ) ) &
72-
== 0.0_dp)
53+
call assert( mean(d3) - sum(d3)/real(size(d3), dp) == 0.0_dp)
54+
call assert( sum( abs( mean(d3,1) - sum(d3,1)/real(size(d3,1), dp) )) == 0.0_dp)
55+
call assert( sum( abs( mean(d3,2) - sum(d3,2)/real(size(d3,2), dp) )) == 0.0_dp)
56+
call assert( sum( abs( mean(d3,3) - sum(d3,3)/real(size(d3,3), dp) )) == 0.0_dp)
57+
58+
7359
!dp rank 4
7460
allocate(d4(size(d,1),size(d,2),3,9))
7561
d4 = 1.
7662
d4(:,:,1,1)=d;
7763
d4(:,:,2,1)=d*1.5_dp;
7864
d4(:,:,3,1)=d*4._dp;
65+
d4(:,:,3,9)=d*4._dp;
7966

80-
call assert( sum( shape(mean(d4,1))-shape(sum(d4,1)) ) == 0)
81-
call assert( sum( shape(mean(d4,2))-shape(sum(d4,2)) ) == 0)
82-
call assert( sum( shape(mean(d4,3))-shape(sum(d4,3)) ) == 0)
83-
call assert( sum( shape(mean(d4,4))-shape(sum(d4,4)) ) == 0)
84-
67+
call assert( mean(d4) - sum(d4)/real(size(d4), dp) == 0.0_dp)
68+
call assert( sum( abs( mean(d4,1) - sum(d4,1)/real(size(d4,1), dp) )) == 0.0_dp)
69+
call assert( sum( abs( mean(d4,2) - sum(d4,2)/real(size(d4,2), dp) )) == 0.0_dp)
70+
call assert( sum( abs( mean(d4,3) - sum(d4,3)/real(size(d4,3), dp) )) == 0.0_dp)
71+
call assert( sum( abs( mean(d4,4) - sum(d4,4)/real(size(d4,4), dp) )) == 0.0_dp)
8572

8673
contains
8774

0 commit comments

Comments
 (0)