library(restatapi)
library(tinytest)
api_version="new"
source="local"
load_cfg(api_version,source)
if (parallel::detectCores()<=2){
options(restatapi_cores=1)
}else{
options(restatapi_cores=2)
}
if (Sys.info()[['sysname']]=='Windows'){
options(restatapi_cores=1)
}
if (capabilities("libcurl")){
options(restatapi_dmethod="libcurl")
}
# options(restatapi_verbose=TRUE)
options(restatapi_log=FALSE)
get("rav",envir=restatapi::.restatapi_env)
clean_restatapi_cache()
not_checked<-NULL
testid1<-"NAMA_10_GDP"
testid2<-"htec_cis3"
testid3<-NULL #an id from the TOC
testid4<-"agr_r_milkpr" #teszt_id1
testid5<-"irt_h_eurcoe_d"
testid6<-"avia_par_me" #teszt_id2
testid7<-"tus_00age"
testid8<-"avia_par_ee"
testid9<-"avia_par_is"
testid10<-"bop_its6_det"
testid11<-"nrg_pc_206_h"
testid12<-"ei_bsfs_q"
testid13<-"avia_par_mk"
#### CRAN tests
#### test of the get_eurostat_toc function
t1<-system.time({xml_toc<-get_eurostat_toc(verbose=FALSE)})[3]
txt_toc<-get_eurostat_toc(mode="txt")
t2<-system.time({get_eurostat_toc()})[3]
expect_warning(get_eurostat_toc(mode="text")) # 1
if (!is.null(xml_toc)){
expect_equal(ncol(xml_toc),14) # 2
expect_true(exists("toc.xml.en",envir=restatapi::.restatapi_env)) # 3
if (!is.null(txt_toc)){
expect_equal(ncol(txt_toc),8) # 4
expect_equal(nrow(xml_toc),nrow(txt_toc)) # 5
expect_true(exists("toc.txt.en",envir=restatapi::.restatapi_env)) # 6
expect_true(t2<t1) # 7
} else {not_checked<-paste(not_checked,"4-7",sep=",")}
} else {not_checked<-paste(not_checked,"2-7",sep=",")}
#### test of the search_eurostat_toc function
r1<-search_eurostat_toc("energy")
r2<-search_eurostat_toc("energy",ignore.case=TRUE)
r3<-search_eurostat_toc("energie",lang="de",ignore.case=TRUE)
if (!is.null(r1) & !is.null(r2)){
expect_true(nrow(r1)<nrow(r2)) # 8
} else {not_checked<-paste(not_checked,8,sep=",")}
if (!is.null(r3)){
expect_true(nrow(r3)/100>0.95) # 9
} else {not_checked<-paste(not_checked,9,sep=",")}
#### test of the get_eurostat_dsd function
expect_equal(suppressMessages(get_eurostat_dsd("text")),NULL) # 10
dsd<-get_eurostat_dsd(testid1)
if (!is.null(dsd)){
expect_true(data.table::is.data.table(dsd)) # 11
expect_equal(ncol(dsd),3) # 12
expect_true(exists(paste0(testid1,".en.dsd"),envir=restatapi::.restatapi_env)) # 13
} else {not_checked<-paste(not_checked,"11-13",sep=",")}
#### test of the search_eurostat_dsd function
eu<-get("cc",envir=restatapi::.restatapi_env)
pattern<-"EU"
if (!is.null(xml_toc)){
if (!is.null(dsd)){
expect_message(search_eurostat_dsd(dsd,pattern)) # 14
expect_equal(search_eurostat_dsd("blabla",dsd),NULL) # 15
expect_equal(ncol(search_eurostat_dsd(pattern,dsd)),4) # 16
expect_message(search_eurostat_dsd(eu$NMS2,dsd)) # 17
} else {not_checked<-paste(not_checked,"14-17",sep=",")}
} else {not_checked<-paste(not_checked,"14-17",sep=",")}
#### test of the get_eurostat_raw/bulk/data functions
t1<-system.time({dt1<-get_eurostat_data(testid2,keep_flags=FALSE,cflags=TRUE,verbose=FALSE)})[3]
nc1<-ncol(dt1)
t2<-system.time({dt2<-get_eurostat_data(testid2,stringsAsFactors=FALSE)})[3]
nc2<-ncol(dt2)
if (!is.null(dt1)&is.data.frame(dt1)&!is.null(dt2)&is.data.frame(dt2)){
if (!is.null(xml_toc)){
if (testid2 %in% xml_toc$code){
if (!is.na(as.numeric(xml_toc$values[xml_toc$code==testid2]))){
expect_equal(nrow(dt1),as.numeric(xml_toc$values[xml_toc$code==testid2])) # 18
} else {not_checked<-paste(not_checked,"18",sep=",")}
} else {not_checked<-paste(not_checked,"18",sep=",")}
} else {not_checked<-paste(not_checked,"18",sep=",")}
expect_equal(nc2+1,nc1) # 19
expect_true(all(is.numeric(dt1$values))) # 20
expect_true(all(is.numeric(dt2$values))) # 21
} else {not_checked<-paste(not_checked,"18-21",sep=",")}
if (!is.null(xml_toc)){
testid3<-xml_toc$code[xml_toc$values==min(xml_toc$values[xml_toc$values>10])][1]
if (!is.na(testid3)){
expect_equal(nrow(get_eurostat_raw(testid3,verbose=FALSE)),min(xml_toc$values[xml_toc$values>10])) # 22
expect_equal(nrow(get_eurostat_raw(testid3,check_toc=TRUE,verbose=FALSE)),min(xml_toc$values[xml_toc$values>10])) # 23
expect_message(bt1<-get_eurostat_bulk("blabla",check_toc=TRUE,verbose=FALSE)) # 24
expect_equal(bt1,NULL) # 25
expect_equal(nrow(get_eurostat_data(testid3,verbose=FALSE)),min(xml_toc$values[xml_toc$values>10])) # 26
} else {not_checked<-paste(not_checked,"22-26",sep=",")}
testid3<-xml_toc$code[is.na(xml_toc$values)&is.na(xml_toc$lastUpdate)&is.na(xml_toc$downloadLink.tsv)][1]
# testid3<-xml_toc$code[(xml_toc$shortDescription=="")&is.na(xml_toc$metadata.html)&is.na(xml_toc$metadata.sdmx)][1]
if (!is.na(testid3)){
expect_message(rt1<-get_eurostat_raw(testid3,verbose=FALSE)) # 27
expect_message(rt2<-get_eurostat_raw(testid3,check_toc=TRUE,verbose=FALSE)) # 28
expect_message(dt3<-get_eurostat_data(testid3,verbose=FALSE)) # 29
} else {not_checked<-paste(not_checked,"27-29",sep=",")}
} else {not_checked<-paste(not_checked,"22-29",sep=",")}
rt3<-get_eurostat_raw(testid4,mode="xml",stringsAsFactors=TRUE,keep_flags=TRUE)
bt2<-get_eurostat_data(testid4,keep_flags=TRUE,stringsAsFactors=FALSE)
dt4<-get_eurostat_data(testid4,date_filter=2008,keep_flags=TRUE,stringsAsFactors=FALSE)
if (!is.null(bt2)&!is.null(dt4)){
expect_true(all.equal(bt2[time==2008,],dt4,check.attributes=FALSE,ignore.row.order=TRUE,ignore.col.order=TRUE)) # 30
} else {not_checked<-paste(not_checked,"30",sep=",")}
if (!is.null(bt2)&!is.null(rt3)){
expect_true(nrow(rt3)>nrow(bt2)) # 31
} else {not_checked<-paste(not_checked,"31",sep=",")}
rt4<-get_eurostat_raw(testid5,update_cache=TRUE)
bt3<-get_eurostat_bulk(testid5,keep_flags=TRUE)
rt5<-get_eurostat_raw(testid5,mode="xml",stringsAsFactors=TRUE,check_toc=TRUE,keep_flags=TRUE,update_cache=TRUE,verbose=FALSE)
bt4<-get_eurostat_bulk(testid5,keep_flags=TRUE)
if (!is.null(bt3)&!is.null(bt4)){
kc<-colnames(bt3)[1:(ncol(bt3)-1)]
data.table::setorderv(bt3,kc)
data.table::setorderv(bt4,kc)
expect_true(identical(bt3,bt4)) # 32
} else {not_checked<-paste(not_checked,"32",sep=",")}
if (!is.null(rt4)&!is.null(rt5)){
expect_true(nrow(rt4)==nrow(rt5)) # 33
expect_true(ncol(rt4)+1==ncol(rt5)) # 34
} else {not_checked<-paste(not_checked,"33-34",sep=",")}
#### test of filtering in the get_eurostat_data function
expect_message(dt5<-get_eurostat_data(testid4,filters="2018",stringsAsFactors=FALSE)) # 35
expect_message(dt6<-get_eurostat_data(testid4,date_filter=22020)) # 36 - date_filter value used for filters incorrectly => whole dataset downloaded
expect_message(dt7<-get_eurostat_data(testid4,date_filter="<2006<",cache_dir=tempdir(),verbose=FALSE)) # 37
if (!is.null(dt5)){
expect_false(any(sapply(dt5,is.factor))) # 38
} else {not_checked<-paste(not_checked,"38",sep=",")}
if (!is.null(dt6)){
expect_true(any(sapply(dt6,is.factor))) # 39
if (!is.null(dt7)){
expect_true(identical(dt6,dt7)) # 40
expect_true(any(sapply(dt7,is.factor))) # 41
} else {not_checked<-paste(not_checked,"40-41",sep=",")}
} else {not_checked<-paste(not_checked,"39-41",sep=",")}
expect_message(dt8<-get_eurostat_data(testid6,filters="HU",date_filter="2017-03",select_freq="Q",label=TRUE)) # 42
expect_true(is.null(dt8)) # 43
suppressMessages(dt9<-get_eurostat_data(testid4,filters="2018",cflags=TRUE))
if (!is.null(dt9)&is.data.frame(dt9)&!is.null(xml_toc)){
if (testid4 %in% xml_toc$code) {
if (!is.na(as.numeric(xml_toc$values[xml_toc$code==testid4]))){
expect_equal(nrow(dt9[!is.na(values)]),as.numeric(xml_toc$values[xml_toc$code==testid4])) # 44
} else {not_checked<-paste(not_checked,"44",sep=",")}
} else {not_checked<-paste(not_checked,"44",sep=",")}
} else {not_checked<-paste(not_checked,"44",sep=",")}
dsd1<-get_eurostat_dsd(testid4)
if (!is.null(dsd1)&is.data.frame(dsd1)){
dt10<-get_eurostat_data(testid4,filters="AT",verbose=FALSE)
dt11<-get_eurostat_data(testid4,filters="AT",exact_match=FALSE,keep_flags=TRUE)
if (!is.null(dt10)&!is.null(dt11)&is.data.frame(dt10)&is.data.frame(dt11)){
expect_equal(ncol(dt10)+1,ncol(dt11)) # 45
expect_true(nrow(dt10)<nrow(dt11)) # 46
} else {not_checked<-paste(not_checked,"45-46",sep=",")}
nr1<-nrow(get_eurostat_data(testid4,date_filter=2016,mode="xml"))
nr2<-nrow(get_eurostat_data(testid4,date_filter="2016",keep_flags=TRUE))
if (!is.null(nr1)&!is.null(nr2)){
expect_equal(nr1,nr2) # 47
} else {not_checked<-paste(not_checked,"47",sep=",")}
nr3<-nrow(get_eurostat_data(testid4,filters="AT",exact_match=FALSE,keep_flags=TRUE,ignore.case=TRUE))
if (!is.null(nr3)&!is.null(dt10)){
expect_true(nr3>nrow(dt10)) # 48
} else {not_checked<-paste(not_checked,"48",sep=",")}
} else {not_checked<-paste(not_checked,"45-48",sep=",")}
#### test of the get/put_eurostat_cache function
dsd2<-get_eurostat_dsd(testid6,lang="de")
udate<-format(Sys.Date(),"%Y.%m.%d")
if (!is.null(xml_toc)) {udate2<-xml_toc$lastUpdate[xml_toc$code==testid5]} else {udate2<-NULL}
if (!is.null(rt5)&is.data.frame(rt5)){
if (!is.null(udate2)){
expect_true(exists(paste0("r_",testid5,"-",udate2,"-1"),envir=restatapi::.restatapi_env)) # 49
} else {not_checked<-paste(not_checked,"49",sep=",")}
expect_true(any(sapply(rt5,is.factor))) # 50
} else {not_checked<-paste(not_checked,"49-50",sep=",")}
if (!is.null(rt4)&is.data.frame(rt4)){
expect_true(exists(paste0("r_",testid5,"-",udate,"-0"),envir=restatapi::.restatapi_env)) # 51
expect_false(any(sapply(rt4,is.factor))) # 52
} else {not_checked<-paste(not_checked,"51-52",sep=",")}
if (!is.null(dsd1)){
expect_true(exists(paste0(testid4,".en.dsd"),envir=restatapi::.restatapi_env)) # 53
} else {not_checked<-paste(not_checked,"53",sep=",")}
if (!is.null(dsd2)){
expect_true(exists(paste0(testid6,".de.dsd"),envir=restatapi::.restatapi_env)) # 54
} else {not_checked<-paste(not_checked,"54",sep=",")}
expect_false(exists(paste0("b_",testid6,"-",udate,"-0-0-Q"),envir=restatapi::.restatapi_env)) # 55
if (!is.null(rt3)&is.data.frame(rt3)){
expect_true(exists(paste0("r_",testid4,"-",udate,"-1"),envir=restatapi::.restatapi_env)) # 56
expect_true(any(sapply(rt3,is.factor))) # 57
} else {not_checked<-paste(not_checked,"56-57",sep=",")}
expect_false(exists(paste0("r_",testid4,"-",udate,"-0"),envir=restatapi::.restatapi_env)) # 58
if (!is.null(bt2)&is.data.frame(bt2)){
expect_true(exists(paste0("b_",testid4,"-",udate,"-0-0"),envir=restatapi::.restatapi_env)) # 59
expect_true(exists(paste0("b_",testid4,"-",udate,"-1-0"),envir=restatapi::.restatapi_env)) # 60
expect_true(exists(paste0("b_",testid4,"-",udate,"-1-1"),envir=restatapi::.restatapi_env)) # 61
expect_false(any(sapply(bt2,is.factor))) # 62
} else {not_checked<-paste(not_checked,"59-62",sep=",")}
if (!is.null(dt2)&is.data.frame(dt2)){
expect_true(exists(paste0("b_",testid2,"-",udate,"-0-0"),envir=restatapi::.restatapi_env)) # 63
expect_false(any(sapply(dt2,is.factor))) # 64
} else {not_checked<-paste(not_checked,"63-64",sep=",")}
if (!is.null(dt1)&is.data.frame(dt1)){
expect_true(exists(paste0("b_",testid2,"-",udate,"-1-1"),envir=.restatapi_env)) # 65
expect_true(any(sapply(dt1,is.factor))) # 66
} else {not_checked<-paste(not_checked,"65-66",sep=",")}
expect_false(exists(paste0("b_",testid2,"-",udate,"-1-0"),envir=restatapi::.restatapi_env)) # 67
if (!is.null(bt3)&is.data.frame(bt3)){
expect_true(any(sapply(bt3,is.factor))) # 68
} else {not_checked<-paste(not_checked,"68",sep=",")}
if (!is.null(dt7)&is.data.frame(dt7)){
expect_true(file.exists(file.path(sub("[\\/]$","",tempdir(),perl=TRUE),paste0("b_",testid4,"-",udate,"-0-0.rds")))) # 69
} else {not_checked<-paste(not_checked,"69",sep=",")}
expect_false(file.exists(file.path(sub("[\\/]$","",tempdir(),perl=TRUE),paste0("b_",testid4,"-",udate,"-1-0.rds")))) # 70
if (!is.null(dt1)&is.data.frame(dt1)){
expect_false(any(sapply(dt4,is.factor))) # 71
} else {not_checked<-paste(not_checked,"71",sep=",")}
if (!is.null(dt1)&is.data.frame(dt1)){
expect_true(any(sapply(bt4,is.factor))) # 72
} else {not_checked<-paste(not_checked,"72",sep=",")}
#### test of the create_filter_table function
expect_message(dft2<-create_filter_table(c("2017-03","2001-03:2005","<2017-07-01",2012:2014,"2018<",20912,"<3452<",":2018-04>","2<034v","2008:2013","2019-04-32","2019-02-31"),TRUE,verbose=FALSE)) # 73
expect_message(dft3<-create_filter_table(c("2017-03","2001-03:2005","<2017-07-01",2012:2014,"2016<",20912,"<3452<",":2018-04>","2<034v","2008:2013","2019-04-32","2019-02-31"),TRUE,verbose=FALSE)) # 74
expect_message(dft1<-create_filter_table(c("2017-03","2001-03:2005","<2000-07-01",2012:2014,"2018<",20912,"<3452<",":2018-04>","2<034v","2008:2013"),TRUE,verbose=FALSE)) # 75
expect_equal(ncol(dft1),ncol(dft2)) # 76
expect_equal(ncol(dft1),2) # 77
expect_equal(nrow(dft1),5) # 78
expect_equal(nrow(dft2),2) # 79
expect_true(is.null(dft3)) # 80
#### test of the filter_raw_data function
rd<-get_eurostat_raw(testid7)
dsd3<-get_eurostat_dsd(testid7)
if (!is.null(dsd3)&!is.null(rd)){
ft<-create_filter_table(c("TIME_SP","Hungary",'T'),FALSE,dsd3)
frd<-filter_raw_data(rd,ft)
expect_equal(ncol(frd),8) # 81
} else {not_checked<-paste(not_checked,"81",sep=",")}
rd<-get_eurostat_raw(testid6)
if (!is.null(rd)){
ft<-create_filter_table("2017:2018",TRUE)
frd<-filter_raw_data(rd,ft,TRUE)
expect_equal(ncol(frd),6) # 82
} else {not_checked<-paste(not_checked,"82",sep=",")}
#### test of the get_eurostat_codelist function
cl<-get_eurostat_codelist("sex",lang="de",cache=FALSE,verbose=FALSE)
if (!is.null(cl)){
expect_equal(ncol(cl),2) # 83
expect_true(nrow(cl)>0) # 84
} else {not_checked<-paste(not_checked,"83-84",sep=",")}
message("\n",Sys.info()['release'])
message("\n","Are we at home:",at_home())
##################################
# additional test not on CRAN #
##################################
if (grepl("\\.amzn|-aws|5.4.109+|-azure ",Sys.info()['release'])) {
#### additional test of the get_eurostat_dsd function
expect_true(system.time({get_eurostat_dsd(testid1)})[3]<system.time({get_eurostat_dsd(testid1,update_cache=TRUE,parallel=FALSE,api_version=api_version)})[3]) # a0
#### additional test of the search_eurostat_dsd function
expect_equal(nrow(search_eurostat_dsd(pattern,dsd,ignore.case=TRUE)),19) # a1
expect_equal(nrow(search_eurostat_dsd(pattern,dsd)),15) # a2
expect_equal(nrow(do.call(rbind,lapply(c(eu$EU15,eu$EA19),search_eurostat_dsd,dsd=dsd,name=FALSE,exact_match=TRUE))),34) # a3
expect_equal(nrow(do.call(rbind,lapply(eu$NMS2,search_eurostat_dsd,dsd=dsd,exact_match=TRUE,ignore.case=TRUE))),2) # a4
#### additional test of filtering in the get_eurostat_data function
nr4<-nrow(get_eurostat_data(testid4,filters="BE$",date_filter="2006-02:2008-06-05",label=TRUE))
if (!is.null(nr4)){
expect_equal(nr4,1) # a5
} else {not_checked<-paste(not_checked,"a5",sep=",")}
nr5<-nrow(get_eurostat_data(testid4,filters="BE",date_filter="<2008",cflags=TRUE))
if (!is.null(nr5)){
expect_equal(nr5,11) # a6
} else {not_checked<-paste(not_checked,"a6",sep=",")}
nr6<-nrow(get_eurostat_data(testid6,filters="Q...ME_LYPG_HU_LHBP+ME_LYTV_UA_UKKK",date_filter=c("2017-07-01:2017-09-30"),select_freq="M",cflags=TRUE))
if (!is.null(nr6)){
expect_equal(nr6,96) # a7
} else {not_checked<-paste(not_checked,"a7",sep=",")}
dsd1<-get_eurostat_dsd(testid4)
if (!is.null(dsd1)&is.data.frame(dsd1)){
nr7<-nrow(get_eurostat_data(testid4,filters="^BE$",date_filter=c(2002,"2008",2015:2017)))
if (!is.null(nr7)){
expect_true(nr7<=5) # a8
nr8<-nrow(get_eurostat_data(testid4,filters="BE",date_filter=c(2008,"2002",2015:2017)))
if (!is.null(nr8)){
expect_equal(nr7,nr8) # a9
} else {not_checked<-paste(not_checked,"a9",sep=",")}
} else {not_checked<-paste(not_checked,"a8-a9",sep=",")}
} else {not_checked<-paste(not_checked,"a8-a9",sep=",")}
dsd2<-get_eurostat_dsd(testid6)
if (!is.null(dsd2)){
nr9<-nrow(get_eurostat_data(testid6,filters="BE$",exact_match=FALSE,date_filter=c(2016,"2017-03","2017-05"),select_freq="A",label=TRUE,cflags=TRUE,verbose=FALSE))
if (!is.null(nr9)){
expect_equal(nr9,24) # a10
} else {not_checked<-paste(not_checked,"a10",sep=",")}
nr10<-nrow(get_eurostat_data(testid6,date_filter=c(2016,"2017-03","2017-05","2017-07-01:2017-09-30"),select_freq="Q",cflags=TRUE))
if (!is.null(nr10)){
expect_equal(nr10,1232) # a11
} else {not_checked<-paste(not_checked,"a11",sep=",")}
dt5<-get_eurostat_data(testid6,filters="Q...ME_LYPG_HU_LHBP+ME_LYTV_UA_UKKK",date_filter=c("2016-08","2017-07-01"),select_freq="M")
dt6<-get_eurostat_data(testid6,filters=c("HU","Quarterly","Monthly"),date_filter=c("2016-08","2017-07-01"),stringsAsFactors=FALSE,label=TRUE)
dt7<-get_eurostat_data(testid6,filters=c("ZHULIANY","BUDAPEST","Quarterly","Monthly"),exact_match=FALSE,date_filter=c("2016-08","2017-07-01"),name=TRUE)
if (!is.null(dt5)){
expect_true(any(sapply(dt5,is.factor))) # a12
if (!is.null(dt7)){
expect_equal(dt5,dt7) # a13
expect_true(any(sapply(dt7,is.factor))) # a14
} else {not_checked<-paste(not_checked,"a13-a14",sep=",")}
} else {not_checked<-paste(not_checked,"a12-a14",sep=",")}
if (!is.null(dt6)){
expect_false(any(sapply(dt6,is.factor))) # a15
} else {not_checked<-paste(not_checked,"a15",sep=",")}
expect_message(dt8<-get_eurostat_data(testid6,filters="BE$",date_filter=c("2017-03",2016,"2017-07-01:2017-09-30",2012:2014),select_freq="Q",label=TRUE,verbose=FALSE,name=FALSE)) # a16 faultcode 150
if (!is.null(dt8)){
expect_true(nrow(dt8)<=1232) # a17
expect_true(ncol(dt8)<=5) # a18
} else {not_checked<-paste(not_checked,"a17-a18",sep=",")}
dt9<-get_eurostat_data(testid6,filters="Q...ME_LYPG_HU_LHBP+ME_LYTV_UA_UKKK",date_filter=2017,select_freq="M",cflags=TRUE)
dt10<-get_eurostat_data(testid6,filters=list(freq="Q",airp_pr=c("ME_LYPG_HU_LHBP","ME_LYTV_UA_UKKK")),date_filter=c("2017"),select_freq="M",cflags=TRUE)
if (!is.null(dt9)&!is.null(dt10)){
expect_true(identical(dt9,dt10)) # a19
} else {not_checked<-paste(not_checked,"a19",sep=",")}
} else {not_checked<-paste(not_checked,"a10-a19",sep=",")}
dt11<-get_eurostat_data(testid8,select_freq="Q")
dt12<-get_eurostat_data(testid8,select_freq="Q")
if (!is.null(dt11)&!is.null(dt12)){
expect_true(identical(dt11,dt12)) # a20
} else {not_checked<-paste(not_checked,"a20",sep=",")}
dsd3<-get_eurostat_dsd(testid9)
if (!is.null(dsd3)&is.data.frame(dsd3)){
nr11<-nrow(get_eurostat_data(testid9,filters="Monthly",exact_match=FALSE,date_filter=c("<2018-07-01"),select_freq="A",label=TRUE,name=FALSE))
if (!is.null(nr11)){
expect_equal(nr11,4857) # a21
} else {not_checked<-paste(not_checked,"a21",sep=",")}
} else {not_checked<-paste(not_checked,"a21",sep=",")}
dsd4<-get_eurostat_dsd(testid10)
if (!is.null(dsd4)&is.data.frame(dsd4)){
nr12<-nrow(get_eurostat_data(testid10,filters=list(bop_item="SC",currency="MIO_EUR",partner="EXT_EU28",geo=c("EU28","HU"),time="2015:2017",stk_flow="BAL"),date_filter="2010:2012",select_freq="A",label=TRUE,name=FALSE))
if (!is.null(nr12)){
expect_equal(nr12,6) # a22
} else {not_checked<-paste(not_checked,"a22",sep=",")}
} else {not_checked<-paste(not_checked,"a22",sep=",")}
yr<-"<2016"
nr13<-nrow(get_eurostat_data(testid6,date_filter=yr,select_freq="A",verbose=FALSE))
if (!is.null(nr13)){
expect_equal(nr13,252) # a23
} else {not_checked<-paste(not_checked,"a23",sep=",")}
#### additional test of the create_filter_table function
dsd<-get_eurostat_dsd(testid6)
if (!is.null(dsd)){
ft1<-create_filter_table(c("KYIV","DE","Quarterly"),dsd=dsd,exact_match=FALSE,name=FALSE)
ft2<-create_filter_table(c("flight","Monthly"),dsd=dsd,exact_match=TRUE,name=TRUE,ignore.case=TRUE)
expect_equal(ncol(ft1),ncol(ft2)) # a24
expect_equal(nrow(ft1),11) # a25
expect_equal(nrow(ft2),2) # a26
expect_equal(ncol(ft1),4) # a27
} else {not_checked<-paste(not_checked,"a24-a27",sep=",")}
#### additional test of the filter_raw_data function
rd<-get_eurostat_raw(testid7)
dsd<-get_eurostat_dsd(testid7)
if (!is.null(dsd)&!is.null(rd)){
ft<-create_filter_table(c("TIME_SP","Hungary",'T'),FALSE,dsd)
frd<-filter_raw_data(rd,ft)
expect_equal(nrow(ft),3) # a28
expect_equal(nrow(frd),392) # a29
} else {not_checked<-paste(not_checked,"a28-a29",sep=",")}
rd<-get_eurostat_raw(testid6)
if (!is.null(rd)){
ft<-create_filter_table("2017:2018",TRUE)
frd<-filter_raw_data(rd,ft,TRUE)
expect_equal(nrow(ft),1) # a30
expect_equal(nrow(frd),9316) # a31
} else {not_checked<-paste(not_checked,"a30-a31",sep=",")}
#### additional test of the get_eurostat_codelist function
if (!is.null(cl)){
expect_equal(nrow(cl),7) # a32
} else {not_checked<-paste(not_checked,"a32",sep=",")}
#### additional test of the get_eurostat_raw/bulk function
clean_restatapi_cache(tempdir(),verbose=FALSE)
rt1<-system.time(raw_txt<-get_eurostat_raw(testid6,"txt"))[3]
raw_xml<-get_eurostat_raw(testid6,"xml")
raw_unmelted<-get_eurostat_raw(testid6,melt=FALSE)
rt2<-system.time(raw_txt_check<-get_eurostat_raw(testid6,"txt",check_toc=TRUE))
expect_message(bulk<-get_eurostat_bulk(testid6)) # a33
expect_message(raw<-get_eurostat_raw(testid6,mode="text")) # a34
if (!is.null(raw_txt)&!is.null(raw_xml)&!is.null(raw_unmelted)&!is.null(bulk)){
if (!is.null(xml_toc)){
if (!is.na(as.numeric(xml_toc$values[xml_toc$code==testid6]))){
expect_equal(nrow(raw_txt),as.numeric(xml_toc$values[xml_toc$code==testid6])) # a35
} else {not_checked<-paste(not_checked,"a35",sep=",")}
} else {not_checked<-paste(not_checked,"a35",sep=",")}
expect_true(ncol(raw_xml)>ncol(bulk)) # a36
expect_true(ncol(raw_unmelted)>ncol(raw_xml)) # a37
expect_false(nrow(raw_unmelted)>nrow(raw_txt)) # a38
expect_true(ncol(raw_unmelted)==length(unique(raw_txt$time))+1) # a39
expect_true(ncol(raw_unmelted)>length(unique(bulk$time))) # a40
expect_true(nrow(raw_txt)>nrow(bulk)) # a41
expect_equal(nrow(raw_xml),nrow(raw_txt)) # a42
} else {not_checked<-paste(not_checked,"a35-a42",sep=",")}
clean_restatapi_cache()
raw1<-get_eurostat_raw(testid4,keep_flags=TRUE,update_cache=TRUE,verbose=FALSE)
bulk1<-get_eurostat_bulk(testid4,keep_flags=TRUE,verbose=FALSE)
raw2<-get_eurostat_raw(testid4,mode="xml",keep_flags=TRUE,stringsAsFactors=FALSE,update_cache=TRUE)
bulk2<-get_eurostat_bulk(testid4,keep_flags=TRUE)
if (!is.null(bulk1)&!is.null(bulk2)){
kc<-colnames(bulk1)
bulk1<-bulk1[,..kc]
bulk1<-bulk2[,..kc]
data.table::setorder(bulk1)
data.table::setorder(bulk2)
expect_true(identical(bulk1,bulk2)) # a43
} else {not_checked<-paste(not_checked,"a43",sep=",")}
# clean_restatapi_cache()
# raw1<-get_eurostat_raw(testid4,keep_flags=TRUE,update_cache=TRUE)
# bulk1<-get_eurostat_bulk(testid4,check_toc=TRUE)
# raw2<-get_eurostat_raw(testid4,mode="xml",keep_flags=TRUE,stringsAsFactors=FALSE,update_cache=TRUE)
# bulk2<-get_eurostat_bulk(testid4)
# if (!is.null(bulk1)&!is.null(bulk2)){
# kc<-colnames(bulk1)
# bulk1<-bulk1[,..kc]
# bulk1<-bulk2[,..kc]
# data.table::setorder(bulk1)
# data.table::setorder(bulk2)
# message("\n ########--------- 120 additional tests for the get_eurostat_raw/bulk function")
# expect_true(identical(bulk1,bulk2))
# } else {not_checked<-paste(not_checked,"120",sep=",")}
clean_restatapi_cache()
raw1<-get_eurostat_raw(testid4,keep_flags=TRUE,update_cache=TRUE)
bulk1<-get_eurostat_bulk(testid4,check_toc=TRUE,stringsAsFactors=FALSE)
raw2<-get_eurostat_raw(testid4,mode="xml",stringsAsFactors=FALSE,update_cache=TRUE)
bulk2<-get_eurostat_bulk(testid4,stringsAsFactors=FALSE)
if (!is.null(bulk1)&!is.null(bulk2)){
kc<-colnames(bulk1)
bulk1<-bulk1[,..kc]
bulk2<-bulk2[,..kc]
data.table::setorder(bulk1)
data.table::setorder(bulk2)
expect_true(identical(bulk1,bulk2)) # a44
} else {not_checked<-paste(not_checked,"a44",sep=",")}
clean_restatapi_cache()
raw1<-get_eurostat_raw(testid4,check_toc=TRUE,stringsAsFactors=FALSE,update_cache=TRUE)
bulk1<-get_eurostat_bulk(testid4,keep_flags=TRUE)
raw2<-get_eurostat_raw(testid4,mode="xml",check_toc=TRUE,update_cache=TRUE)
bulk2<-get_eurostat_bulk(testid4,check_toc=TRUE,keep_flags=TRUE)
if (!is.null(bulk1)&!is.null(bulk2)){
kc<-colnames(bulk1)
bulk1<-bulk1[,..kc]
bulk1<-bulk2[,..kc]
data.table::setorder(bulk1)
data.table::setorder(bulk2)
expect_true(identical(bulk1,bulk2)) # a45
} else {not_checked<-paste(not_checked,"a45",sep=",")}
clean_restatapi_cache()
raw1<-get_eurostat_raw(testid11,check_toc=TRUE,keep_flags=TRUE,stringsAsFactors=FALSE,update_cache=TRUE)
bulk1<-get_eurostat_bulk(testid11,check_toc=TRUE)
raw2<-get_eurostat_raw(testid11,mode="xml",check_toc=TRUE,keep_flags=TRUE,update_cache=TRUE)
bulk2<-get_eurostat_bulk(testid11)
if (!is.null(bulk1)&!is.null(bulk2)){
kc<-colnames(bulk1)
bulk1<-bulk1[,..kc]
bulk1<-bulk2[,..kc]
data.table::setorder(bulk1)
data.table::setorder(bulk2)
expect_true(identical(bulk1,bulk2)) # a46
} else {not_checked<-paste(not_checked,"a46",sep=",")}
clean_restatapi_cache()
raw1<-get_eurostat_raw(testid11,check_toc=TRUE,update_cache=TRUE)
bulk1<-get_eurostat_bulk(testid11,keep_flags=TRUE,check_toc=TRUE,stringsAsFactors=FALSE)
raw2<-get_eurostat_raw(testid11,mode="xml",keep_flags=TRUE,stringsAsFactors=FALSE,check_toc=TRUE,update_cache=TRUE)
bulk2<-get_eurostat_bulk(testid11,keep_flags=TRUE,stringsAsFactors=FALSE)
if (!is.null(bulk1)&!is.null(bulk2)){
kc<-colnames(bulk1)
bulk1<-bulk1[,..kc]
bulk1<-bulk2[,..kc]
data.table::setorder(bulk1)
data.table::setorder(bulk2)
expect_true(identical(bulk1,bulk2)) # a47
} else {not_checked<-paste(not_checked,"a47",sep=",")}
bulk3<-get_eurostat_bulk(testid7,keep_flags=TRUE,stringsAsFactors=TRUE)
bulk4<-get_eurostat_bulk(testid7,stringsAsFactors=FALSE,update_cache=TRUE)
if (!is.null(bulk3)&!is.null(bulk4)){
expect_true(all(is.character(bulk3$values))) # a48
expect_true(all(is.character(bulk4$values))) # a49
} else {not_checked<-paste(not_checked,"a48-a49",sep=",")}
#### additional test of the get/put_eurostat_cache function
clean_restatapi_cache()
xml_toc<-get_eurostat_toc(verbose=FALSE)
# if (!is.null(xml_toc)) {udate2<-xml_toc$lastUpdate[xml_toc$code==testid12]} else {udate2<-NULL}
udate<-format(Sys.Date(),"%Y.%m.%d")
nm<-paste0("r_", testid12,"-",udate)
rt1<-system.time(raw1<-get_eurostat_raw(testid12,"xml",keep_flags=TRUE,stringsAsFactors=TRUE,verbose=FALSE))[3]
rt2<-system.time(raw2<-get_eurostat_raw(testid12,"xml",cache_dir=tempdir(),verbose=FALSE))[3]
bt1<-system.time(bulk1<-get_eurostat_bulk(testid12,stringsAsFactors=FALSE,verbose=FALSE))[3]
nrb1<-nrow(bulk1)
ncb1<-ncol(bulk1)
cnb1<-colnames(bulk1)
rt3<-system.time(raw3<-get_eurostat_raw(testid12,"xml",verbose=FALSE))[3]
dt1<-system.time(estat_data1<-get_eurostat_data(testid12,keep_flags=TRUE,verbose=FALSE))[3]
dt2<-system.time(estat_data2<-get_eurostat_data(testid12,stringsAsFactors=FALSE,verbose=FALSE))[3]
dt3<-system.time(estat_data3<-get_eurostat_data(testid12,keep_flags=TRUE,verbose=FALSE))[3]
dt4<-system.time(suppressMessages(estat_data4<-get_eurostat_data(testid13,stringsAsFactors=FALSE)))[3]
rt4<-system.time(raw4<-get_eurostat_raw(testid13,"xml",keep_flags=TRUE))[3]
bt2<-system.time(suppressMessages(bulk2<-get_eurostat_bulk(testid13,keep_flags=TRUE,verbose=FALSE)))[3]
if (!is.null(raw1)&is.data.frame(raw1)&!is.null(raw2)&is.data.frame(raw2)&!is.null(raw3)&is.data.frame(raw3)&!is.null(raw4)&is.data.frame(raw4)&!is.null(bulk1)&is.data.frame(bulk1)&!is.null(bulk2)&is.data.frame(bulk2)&!is.null(estat_data1)&is.data.frame(estat_data1)&!is.null(estat_data2)&is.data.frame(estat_data2)&!is.null(estat_data3)&is.data.frame(estat_data3)&!is.null(estat_data4)&is.data.frame(estat_data4)){
kc<-colnames(bulk1)[1:(ncol(bulk1)-1)]
data.table::setorderv(bulk1,kc)
data.table::setorderv(estat_data2,kc)
nrd2<-nrow(estat_data2)
ncd2<-ncol(estat_data2)
cnd2<-colnames(estat_data2)
expect_true(exists(paste0(nm,"-1"),envir=restatapi::.restatapi_env)) # a50
expect_true(exists(paste0(nm,"-0"),envir=restatapi::.restatapi_env)) # a51
expect_true(file.exists(file.path(sub("[\\/]$","",tempdir(),perl=TRUE),paste0(nm,"-0.rds")))) # a52
expect_false(file.exists(file.path(sub("[\\/]$","",tempdir(),perl=TRUE),paste0(nm,"-1.rds")))) # a53
expect_false(identical(raw1,raw2)) # a54
expect_true(identical(raw2,raw3)) # a55
expect_true(all.equal(bulk1,estat_data2,check.attributes=FALSE)) # a56
expect_equal(nrb1,nrd2) # a57
expect_equal(ncb1,ncd2) # a58
expect_equal(cnb1,cnd2) # a59
expect_true(rt1>bt1) # a60
expect_true(rt2<rt1) # a61
expect_true(rt3<rt1) # a62
expect_true(dt3<rt1) # a63
expect_true(any(sapply(raw1,is.factor))) # a64
expect_false(any(sapply(raw2,is.factor))) # a65
expect_false(any(sapply(raw3,is.factor))) # a66
expect_false(any(sapply(raw4,is.factor))) # a67
expect_false(any(sapply(bulk1,is.factor))) # a68
expect_true(any(sapply(bulk2,is.factor))) # a69
expect_true(any(sapply(estat_data1,is.factor))) # a70
expect_false(any(sapply(estat_data2,is.factor))) # a71
expect_true(any(sapply(estat_data3,is.factor))) # a72
expect_false(any(sapply(estat_data4,is.factor))) # a73
expect_true(ncol(raw1)>ncol(bulk1)) # a74
expect_equal(ncol(bulk1)+1,ncol(estat_data3)) # a75
expect_equal(nrow(raw1),nrow(bulk1)) # a76
expect_true(bt2<dt4) # a77
expect_true(bt2<rt4) # a78
expect_equal(nrow(estat_data4),nrow(bulk2)) # a79
expect_true(nrow(raw4)>nrow(estat_data4)) # a80
} else {not_checked<-paste(not_checked,"a50-a80",sep=",")}
if (tolower(testid1) %in% xml_toc$code) expect_true(!is.null(get_eurostat_data(testid1,update_cache=TRUE,check_toc=TRUE))) #a81
}
fr_txt_toc<-get_eurostat_toc(mode="txt",lang="fr")
de_txt_toc<-get_eurostat_toc(mode="txt",lang="de")
if (!is.null(fr_txt_toc)&!is.null(de_txt_toc)){
expect_true(nrow(fr_txt_toc)==nrow(de_txt_toc)) #a82
}
dt1<-get_eurostat_data("agr_r_milkpr",filters=c("BE$","Ungarn"),lang="de",date_filter="2007-06<", keep_flags=TRUE)
dt2<-get_eurostat_data("agr_r_milkpr",filters=c("BE$","Hungary"),date_filter="2007-06<", keep_flags=TRUE)
if (!is.null(dt1)&!is.null(dt2)){
expect_true(nrow(dt1)==nrow(dt2)) #a83
}
##################################
# clean up #
##################################
clean_restatapi_cache(tempdir(),verbose=FALSE)
# cat(not_checked)
# print(not_checked)
if (!is.null(not_checked)) {message("\n\n\n\n\nThere are skipped tests:",gsub("^,","",not_checked))}
cat("\n\nSkipped tests:",gsub("^,","",not_checked),"\nconfig version:",get("rav",envir=restatapi::.restatapi_env),"\n")
warnings()
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.