Skip to content

Commit ca5273b

Browse files
author
Leire Abarrategui Martinez
committed
math test ds.skewness
1 parent 795f16d commit ca5273b

3 files changed

Lines changed: 80 additions & 2 deletions

File tree

tests/testthat/definition_tests/def-ds.skewness.R

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
expect_equal(skewness.server.3, skewness.local.3, tolerance = ds.test_env$tolerance)
2929
}
3030

31-
.test.skewness.mean.median.mode.combined<-function(variable.name,method)
31+
.test.skewness.mean.median.mode<-function(variable.name,method)
3232
{
3333
#There are not DataSHIELD functions to calculate the median and mode.
3434
#We need danger function
@@ -40,7 +40,52 @@
4040
server.variable<-c(server.variable$study1,server.variable$study2,server.variable$study3)
4141

4242
server.mean<-ds.mean(x = variable.name, type = "combine")
43+
server.mean<-server.mean[[1]][1]
4344
server.median<-median(server.variable)
4445
server.mode<-DescTools::Mode(server.variable)
4546

47+
if(skewness.server[[1]][1]>0)
48+
{
49+
if(!is.na(server.mode[1]))
50+
{
51+
expect_true(server.mode[1]<server.median)
52+
53+
}
54+
expect_true(server.median<server.mean)
55+
56+
}else{
57+
if(!is.na(server.mode[1]))
58+
{
59+
expect_true(server.mode[1]>server.median)
60+
}
61+
expect_true(server.median>server.mean)
62+
}
63+
64+
}
65+
66+
.test.skewness.Q1.Q2.Q3<-function(variable.name,method)
67+
{
68+
#There are not DataSHIELD functions to calculate Q1,Q2 and Q3.
69+
#We need danger function
70+
library(dsDangerClient)
71+
72+
skewness.server <- ds.skewness(x = variable.name, method = method, type = "combine")
73+
74+
server.variable<-ds.DANGERprint(variable.name)
75+
server.variable<-c(server.variable$study1,server.variable$study2,server.variable$study3)
76+
77+
server.quantile<-quantile(server.variable)
78+
Q1<-server.quantile[2]
79+
Q2<-server.quantile[3]
80+
Q3<-server.quantile[4]
81+
82+
if(skewness.server[[1]][1]>0)
83+
{
84+
expect_true(Q3-Q2>Q2-Q1)
85+
86+
}else{
87+
expect_true(Q3-Q2<Q2-Q1)
88+
}
89+
4690
}
91+

tests/testthat/setup.R

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ context("setup")
1515

1616
library(lme4)
1717
library(e1071)
18+
library(DescTools)
1819

1920
library(DSOpal)
2021
library(DSLite)
Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,34 @@
11
source("connection_to_datasets/init_testing_datasets.R")
2-
source("definition_tests/def-ds.skewness.R")
2+
source("definition_tests/def-ds.skewness.R")
3+
4+
context("ds.skewness()::math::mean.median.mode::multiple")
5+
test_that("skewness >0 & mode<median<mean or skewness<0 & mean<median<mode",
6+
{
7+
connect.all.datasets()
8+
9+
.test.skewness.mean.median.mode('D$INTEGER', method = 1)
10+
.test.skewness.mean.median.mode('D$NON_NEGATIVE_INTEGER', method = 2)
11+
.test.skewness.mean.median.mode('D$POSITIVE_INTEGER', method = 3)
12+
#.test.skewness.mean.median.mode('D$NEGATIVE_INTEGER', method = 1)
13+
#.test.skewness.mean.median.mode('D$NUMERIC', method = 2)
14+
.test.skewness.mean.median.mode('D$NON_NEGATIVE_NUMERIC', method = 3)
15+
.test.skewness.mean.median.mode('D$POSITIVE_NUMERIC', method = 1)
16+
.test.skewness.mean.median.mode('D$NEGATIVE_NUMERIC', method = 2)
17+
18+
})
19+
20+
context("ds.skewness()::math::Q1.Q2.Q3::multiple")
21+
test_that("skewness >0 & Q3-Q2>Q2-Q1 or skewness<0 & Q3-Q2<Q2-Q1",
22+
{
23+
connect.all.datasets()
24+
25+
.test.skewness.Q1.Q2.Q3('D$INTEGER', method = 1)
26+
.test.skewness.Q1.Q2.Q3('D$NON_NEGATIVE_INTEGER', method = 2)
27+
.test.skewness.Q1.Q2.Q3('D$POSITIVE_INTEGER', method = 3)
28+
.test.skewness.Q1.Q2.Q3('D$NEGATIVE_INTEGER', method = 1)
29+
#.test.skewness.Q1.Q2.Q3('D$NUMERIC', method = 2)
30+
.test.skewness.Q1.Q2.Q3('D$NON_NEGATIVE_NUMERIC', method = 3)
31+
.test.skewness.Q1.Q2.Q3('D$POSITIVE_NUMERIC', method = 1)
32+
.test.skewness.Q1.Q2.Q3('D$NEGATIVE_NUMERIC', method = 2)
33+
34+
})

0 commit comments

Comments
 (0)