library(GGIR)
context("fragmentation")
test_that("fragmentation calculates the expected fragmentation metric values", {
skip_on_cran()
Lnames = c("spt_sleep", "spt_wake_IN", "spt_wake_LIG", "spt_wake_MOD", "spt_wake_VIG",
"day_IN_unbt", "day_LIG_unbt", "day_MOD_unbt", "day_VIG_unbt",
"day_MVPA_bts_10", "day_IN_bts_30",
"day_IN_bts_10_30", "day_LIG_bts_10")
# Fragmentation of daytime behaviour
x = c(6, 5, 6, 7, 6, 6, 7, 6, 6, 5, 6, 6, 6, 5, 7, 6, 6, 5, 5, 5, 6, 7, 6,
6, 6, 6, 7, 6, 5, 5, 5, 5, 5, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6,
7, 7, 6, 5, 6, 5, 6, 5, rep(12, 11), 5, 6, 6, 6, 5, 6, rep(9, 14), 6,
5, 7, 7, 6, 7, 7, 7, 6, 6, 6, 5, 6, 5, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5,
5, 6, 7, 7, 7, 6, 7, 7, 6, 5, 5, 5, 6, 6, 5, 5, 5, 6, 7, 7, 7, 7, 7,
6, 7, 6, 6, 6, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6,
5, 5, 5, 5, 5, 5, 6, 6, 6, 6, rep(11, 11), 7, 6, 7, 6, 6, 7, 6, 5, 5,
6, rep(11, 12), 6, rep(11, 11), 6, 6, 7, 6, 6, 6, 6, rep(11, 12), 6,
5, 5, 5, 5, 5, 6, 5, 6, 6, 6, 5, 5, 6, 6, 7, 6, 6, 6, 5, 5, 6, 5, 5, 6,
6, rep(10, 98), 6, 6, 5, 5, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5, 6, rep(11, 15),
6, rep(11, 21), 6, 6, 6, 6, 6, 6, 5, 6, 5, 6, 5, 12, 12, 12, 12, 12, 12,
12, 12, 12, 12, 12, 12, 7, rep(10, 55), 6, 6, 6, 6, 6, 5, 5, 5, 5, 5, 5,
6, 6, 6, rep(11, 22), 6, 6, rep(10, 100), 6, rep(11, 23), 6, 5, 5, 5, 5,
5, 7, rep(10, 133), 6, rep(10, 119), 6, 6, 5, 6, 6, 6, 6, 6, 7, 7, 7, 6,
5, 6, 6, 6, 5, 5, 5)
out = g.fragmentation(frag.metrics = "all",
LEVELS = x,
Lnames = Lnames, mode = "day")
expect_equal(out$mean_dur_PA, 4.020408, tolerance = 0.0001)
expect_equal(out$mean_dur_IN, 15.10417, tolerance = 0.0001)
expect_equal(out$Gini_dur_PA, 0.506352, tolerance = 0.0001)
expect_equal(out$Gini_dur_IN, 0.768544, tolerance = 0.0001)
expect_equal(out$alpha_dur_PA, 2.055102, tolerance = 0.0001)
expect_equal(out$x0.5_dur_PA, 1.928897, tolerance = 0.0001)
expect_equal(out$W0.5_dur_IN, 0.9629121, tolerance = 0.0001)
expect_equal(out$CoV_dur_IN, 1.035708, tolerance = 0.0001)
expect_equal(out$CoV_dur_PA, 0.9859804, tolerance = 0.0001)
expect_equal(out$TP_IN2MVPA, 0.005502, tolerance = 0.0001)
expect_equal(out$TP_IN2LIPA, 0.060523, tolerance = 0.0001)
expect_equal(out$TP_IN2PA, 0.066025, tolerance = 0.0001)
expect_equal(out$Nfrag_PA, 49)
expect_equal(out$Nfrag_IN2LIPA, 44)
expect_equal(out$Nfrag_IN2MVPA, 4)
expect_equal(out$Nfrag_IN, 48)
# Fragmentation of nighttime (SPT) behaviour
# classes: wake 1, sleep 0
x = c(rep(1, 15), rep(0, 10), rep(1, 30),
rep(0, 15), rep(1, 20), rep(0, 25), rep(1, 10))
out = g.fragmentation(frag.metrics = "all",
LEVELS = x,
Lnames = Lnames, mode = "spt")
expect_equal(out$Nfrag_wake, 3)
expect_equal(out$Nfrag_sleep, 3)
expect_equal(out$TP_wake2sleep, 0.040541, tolerance = 0.0001) # 3+epsilon / 65+epsilon
expect_equal(out$TP_sleep2wake, 0.06, tolerance = 0.0001) # 3+epsilon / 50+epsilon
# SPT: Test ability to handle NA blocks as needed for g.part6
# classes: wake 1, sleep 0
x = c(rep(1, 5), rep(0, 5), rep(1, 5), rep(0, 5), rep(NA, 15),
rep(0, 5), rep(1, 5), rep(0, 5), rep(1, 5), rep(NA, 15),
rep(1, 5), rep(0, 5), rep(1, 5), rep(0, 5))
out = g.fragmentation(frag.metrics = "all",
LEVELS = x,
Lnames = Lnames, mode = "spt")
expect_equal(out$Nfrag_sleep, 4)
expect_equal(out$Nfrag_wake, 5)
expect_equal(out$TP_sleep2wake, 0.142857, tolerance = 0.0001)
expect_equal(out$TP_wake2sleep, 0.172414, tolerance = 0.0001)
# day: Test ability to handle NA blocks as needed for g.part6
# 9 is MVPA, 10 is IN
x = c(rep(10, 5), rep(9, 5), rep(10, 5), rep(9, 5), rep(NA, 15),
rep(9, 5), rep(10, 5), rep(9, 5), rep(10, 5), rep(NA, 15),
rep(10, 5), rep(9, 5), rep(10, 5), rep(9, 5))
out = g.fragmentation(frag.metrics = "all",
LEVELS = x,
Lnames = Lnames, mode = "day")
expect_equal(out$Nfrag_PA2IN, 4) # 4+epsilon/20+epsilon
expect_equal(out$Nfrag_IN2PA, 5) # 5+epsilon/25+epsilon
expect_equal(out$TP_PA2IN, 0.142857, tolerance = 0.0001)
expect_equal(out$TP_IN2PA, 0.172414, tolerance = 0.0001)
# same but now with more variation in segment length
x = c(rep(10, 4), rep(9, 6), rep(10, 9), rep(9, 2), rep(NA, 12),
rep(9, 8), rep(10, 5), rep(9, 3), rep(10, 20), rep(NA, 19),
rep(10, 3), rep(9, 2), rep(10, 7), rep(9, 7))
out = g.fragmentation(frag.metrics = "all",
LEVELS = x,
Lnames = Lnames, mode = "day")
expect_equal(out$Nfrag_PA2IN, 4) # 4+epsilon/20+epsilon
expect_equal(out$Nfrag_IN2PA, 5) # 5+epsilon/25+epsilon
expect_equal(out$TP_PA2IN, 0.153846, tolerance = 0.0001)
expect_equal(out$TP_IN2PA, 0.106383, tolerance = 0.0001)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.