Nothing
library(niarules)
library(testthat)
# Set a tolerance level
tolerance <- 1e-8
# time series dataset
data <- read_dataset("datasets/ts2.csv", timestamp_col = "timestamp")
num_instances <- nrow(data)
expect_equal(num_instances, 100)
# get features
features <- extract_feature_info(data)
# basic tests for time series dataset
expect_equal(length(features), 5)
expect_equal(features[[1]]$type, "numerical")
expect_equal(features[[4]]$type, "numerical")
expect_equal(features[[5]]$type, "categorical")
expect_equal(features[[4]]$lower_bound, 0)
# dimension of the problem
dim <- problem_dimension(features, is_time_series = TRUE)
expect_equal(dim, 22)
solution <- c(
0.93186346, 0.62861471, 0.34720034, 0.51736529, 0.34957089, 0.06362278,
0.52224747, 0.31581756, 0.78154328, 0.60825901, 0.81263313, 0.4070408,
0.93014498, 0.46848055, 0.15840165, 0.14308865, 0.86379166, 0.46777855,
0.60746777, 0.13133695, 0.23055155, 0.60543971
)
expect_equal(length(solution), 22)
# obtain cut point value
cut_value <- abs(tail(solution, 1))
all.equal(cut_value, 0.60543971)
# calculate cut point value
cut <- cut_point(cut_value, length(features))
expect_equal(cut, 3)
solution <- head(solution, -1)
# test start and end interval
result <- map_to_ts(lower = 0.13133695, upper = 0.23055155, instances = data)
expect_equal(result$low, 14)
expect_equal(result$up, 23)
expect_equal(data$timestamp[result$low], "2024-09-08 20:16:21")
expect_equal(data$timestamp[result$up], "2024-09-08 20:17:51")
filtered_instances <- result$filtered_instances
### TEST METRICS ###
# SCENARIO 1
ant <- list()
ant <- add_attribute(ant, "weather", "categorical", 1, 1, "clouds")
con <- list()
con <- add_attribute(con, "temperature", "numerical", 28.5, 28.5, "A")
metrics <- supp_conf(ant, con, filtered_instances, features)
expect_equal(metrics$supp, 0.2)
expect_equal(metrics$conf, 0.2)
# SCENARIO 2
ant2 <- list()
ant2 <- add_attribute(ant2, "weather", "categorical", 1, 1, "clouds")
ant2 <- add_attribute(ant2, "humidity", "numerical", 60.23, 65.8921, "A")
con2 <- list()
con2 <- add_attribute(con2, "temperature", "numerical", 0, 100, "A")
metrics2 <- supp_conf(ant2, con, filtered_instances, features)
expect_equal(metrics2$supp, 0.0)
expect_equal(metrics2$conf, 0.0)
# SCENARIO 3
ant3 <- list()
ant3 <- add_attribute(ant3, "weather", "categorical", 1, 1, "clouds")
ant3 <- add_attribute(ant3, "humidity", "numerical", 60.23, 65.8921, "A")
ant3 <- add_attribute(ant3, "light", "numerical", 13.00, 20.8921, "A")
metrics3 <- supp_conf(ant3, con, filtered_instances, features)
expect_equal(metrics3$supp, 0.0)
expect_equal(metrics3$conf, 0.0)
# COMBINATIONS
metrics4 <- supp_conf(ant, con2, filtered_instances, features)
expect_equal(metrics4$supp, 1.0)
expect_equal(metrics4$conf, 1.0)
metrics5 <- supp_conf(ant2, con2, filtered_instances, features)
expect_equal(metrics5$supp, 0.3)
expect_equal(metrics5$conf, 1.0)
metrics6 <- supp_conf(ant3, con2, filtered_instances, features)
expect_equal(metrics6$supp, 0.1)
expect_equal(metrics6$conf, 1.0)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.