1+ # Tests for betydata datasets
2+
3+ context(" Dataset validation" )
4+
5+ test_that(" traitsview dataset loads correctly" , {
6+ data(" traitsview" , package = " betydata" )
7+
8+ expect_s3_class(traitsview , " data.frame" )
9+ expect_gt(nrow(traitsview ), 40000 )
10+ expect_equal(ncol(traitsview ), 36 )
11+ })
12+
13+ test_that(" traitsview has required columns" , {
14+ data(" traitsview" , package = " betydata" )
15+
16+ expected_cols <- c(
17+ " id" , " trait" , " mean" , " units" , " scientificname" ,
18+ " sitename" , " author" , " checked" , " access_level"
19+ )
20+ expect_true(all(expected_cols %in% names(traitsview )))
21+ })
22+
23+ test_that(" traitsview excludes checked = -1 per data policy" , {
24+ data(" traitsview" , package = " betydata" )
25+
26+ expect_false(any(traitsview $ checked == - 1 , na.rm = TRUE ))
27+ })
28+
29+ test_that(" traitsview contains only public data" , {
30+ data(" traitsview" , package = " betydata" )
31+
32+ expect_true(all(traitsview $ access_level > = 4 , na.rm = TRUE ))
33+ })
34+
35+ test_that(" traitsview coordinates are valid" , {
36+ data(" traitsview" , package = " betydata" )
37+
38+ valid_lat <- traitsview $ lat [! is.na(traitsview $ lat )]
39+ valid_lon <- traitsview $ lon [! is.na(traitsview $ lon )]
40+
41+ expect_true(all(valid_lat > = - 90 & valid_lat < = 90 ))
42+ expect_true(all(valid_lon > = - 180 & valid_lon < = 180 ))
43+ })
44+
45+ test_that(" species dataset loads correctly" , {
46+ data(" species" , package = " betydata" )
47+
48+ expect_s3_class(species , " data.frame" )
49+ expect_true(" id" %in% names(species ))
50+ expect_gt(nrow(species ), 0 )
51+ })
52+
53+ test_that(" variables dataset loads correctly" , {
54+ data(" variables" , package = " betydata" )
55+
56+ expect_s3_class(variables , " data.frame" )
57+ required_cols <- c(" id" , " name" , " units" )
58+ expect_true(all(required_cols %in% names(variables )))
59+ })
60+
61+ test_that(" pfts dataset loads correctly" , {
62+ data(" pfts" , package = " betydata" )
63+
64+ expect_s3_class(pfts , " data.frame" )
65+ expect_true(all(c(" id" , " name" ) %in% names(pfts )))
66+ })
0 commit comments