Skip to content

Commit c7d6c1d

Browse files
committed
covariance: addition of tests
1 parent 9cd7e63 commit c7d6c1d

File tree

1 file changed

+81
-0
lines changed

1 file changed

+81
-0
lines changed

src/tests/stats/test_cov.f90

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,22 @@ subroutine test_sp(x, x2)
110110
) < sptol)&
111111
, 'sp check 14')
112112

113+
call check( all( abs( cov(x2, 1, mask = x2 < 11, corrected = .false.) -&
114+
reshape([&
115+
5._sp, 5._sp, 0.5_sp, 5._sp, 5._sp, 0.5_sp, 0.5_sp,&
116+
0.5_sp, 0.25_sp]&
117+
,[ size(x2, 2), size(x2, 2)])&
118+
) < sptol)&
119+
, 'sp check 15')
120+
call check( all( abs( cov(x2, 2, mask = x2 < 11, corrected = .false.) -&
121+
reshape([&
122+
114._sp/9, 11._sp, 0.25_sp, 0.25_sp, 11._sp, 86._sp/9,&
123+
0.25_sp, 0.25_sp, 0.25_sp, 0.25_sp, 0.25_sp, 0.25_sp,&
124+
0.25_sp, 0.25_sp, 0.25_sp, 0.25_sp]&
125+
,[ size(x2, 1), size(x2, 1)])&
126+
) < sptol)&
127+
, 'sp check 16')
128+
113129
end subroutine test_sp
114130

115131
subroutine test_dp(x, x2)
@@ -181,6 +197,23 @@ subroutine test_dp(x, x2)
181197
) < dptol)&
182198
, 'dp check 14')
183199

200+
call check( all( abs( cov(x2, 1, mask = x2 < 11, corrected = .false.) -&
201+
reshape([&
202+
5._dp, 5._dp, 0.5_dp, 5._dp, 5._dp, 0.5_dp, 0.5_dp,&
203+
0.5_dp, 0.25_dp]&
204+
,[ size(x2, 2), size(x2, 2)])&
205+
) < dptol)&
206+
, 'dp check 15')
207+
call check( all( abs( cov(x2, 2, mask = x2 < 11, corrected = .false.) -&
208+
reshape([&
209+
114._dp/9, 11._dp, 0.25_dp, 0.25_dp, 11._dp, 86._dp/9,&
210+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp,&
211+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp]&
212+
,[ size(x2, 1), size(x2, 1)])&
213+
) < dptol)&
214+
, 'dp check 16')
215+
216+
184217
end subroutine test_dp
185218

186219
subroutine test_int32(x, x2)
@@ -252,6 +285,22 @@ subroutine test_int32(x, x2)
252285
) < dptol)&
253286
, 'int32 check 14')
254287

288+
call check( all( abs( cov(x2, 1, mask = x2 < 11, corrected = .false.) -&
289+
reshape([&
290+
5._dp, 5._dp, 0.5_dp, 5._dp, 5._dp, 0.5_dp, 0.5_dp,&
291+
0.5_dp, 0.25_dp]&
292+
,[ size(x2, 2), size(x2, 2)])&
293+
) < dptol)&
294+
, 'int32 check 15')
295+
call check( all( abs( cov(x2, 2, mask = x2 < 11, corrected = .false.) -&
296+
reshape([&
297+
114._dp/9, 11._dp, 0.25_dp, 0.25_dp, 11._dp, 86._dp/9,&
298+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp,&
299+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp]&
300+
,[ size(x2, 1), size(x2, 1)])&
301+
) < dptol)&
302+
, 'int32 check 16')
303+
255304
end subroutine test_int32
256305

257306
subroutine test_int64(x, x2)
@@ -323,6 +372,22 @@ subroutine test_int64(x, x2)
323372
) < dptol)&
324373
, 'int64 check 14')
325374

375+
call check( all( abs( cov(x2, 1, mask = x2 < 11, corrected = .false.) -&
376+
reshape([&
377+
5._dp, 5._dp, 0.5_dp, 5._dp, 5._dp, 0.5_dp, 0.5_dp,&
378+
0.5_dp, 0.25_dp]&
379+
,[ size(x2, 2), size(x2, 2)])&
380+
) < dptol)&
381+
, 'int64 check 15')
382+
call check( all( abs( cov(x2, 2, mask = x2 < 11, corrected = .false.) -&
383+
reshape([&
384+
114._dp/9, 11._dp, 0.25_dp, 0.25_dp, 11._dp, 86._dp/9,&
385+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp,&
386+
0.25_dp, 0.25_dp, 0.25_dp, 0.25_dp]&
387+
,[ size(x2, 1), size(x2, 1)])&
388+
) < dptol)&
389+
, 'int64 check 16')
390+
326391
end subroutine test_int64
327392

328393
subroutine test_csp(x, x2)
@@ -401,6 +466,14 @@ subroutine test_csp(x, x2)
401466
) < sptol)&
402467
, 'csp check 11')
403468

469+
call check( all( abs( cov(x2, 2, mask = aimag(x2) < 6, corrected = .false.) -&
470+
reshape([&
471+
(2.6666666666666666_sp,0._sp), (0._sp,1._sp)&
472+
,(0._sp,-1._sp), (1._sp,0._sp)]&
473+
,[ size(x2, 1), size(x2, 1)])&
474+
) < sp)&
475+
, 'csp check 12')
476+
404477
end subroutine test_csp
405478

406479
subroutine test_cdp(x, x2)
@@ -480,6 +553,14 @@ subroutine test_cdp(x, x2)
480553
) < dptol)&
481554
, 'cdp check 11')
482555

556+
call check( all( abs( cov(x2, 2, mask = aimag(x2) < 6, corrected = .false.) -&
557+
reshape([&
558+
(2.6666666666666666_dp,0._dp), (0._dp,1._dp)&
559+
,(0._dp,-1._dp), (1._dp,0._dp)]&
560+
,[ size(x2, 1), size(x2, 1)])&
561+
) < dptol)&
562+
, 'cdp check 12')
563+
483564
end subroutine test_cdp
484565

485566
end program test_cov

0 commit comments

Comments
 (0)