From 1c8e8c1e6209affd28a76fa0f6a95a9a5d6bcef9 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Mon, 10 Mar 2025 16:36:27 +0530 Subject: [PATCH 01/13] replaced pylr occurences with data.table --- tests/testthat/helper-plot-data.r | 11 +++++++---- tests/testthat/test-compiler-animation.R | 12 ++++++++---- tests/testthat/test-compiler-fortify.r | 5 +++-- .../test-compiler-save-separate-chunks.R | 16 ++++++++-------- .../testthat/test-renderer1-hjust-text-anchor.R | 11 ++++++++--- tests/testthat/test-renderer1-interactivity.R | 9 ++++++--- 6 files changed, 40 insertions(+), 24 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 69e8717cc..1bf25a5c2 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -1,13 +1,16 @@ +library(data.table) # Transform the data as the coordinate system does cdata <- function(plot) { pieces <- ggplot_build(plot) lapply(pieces$data, function(d) { - plyr::ddply(d, "PANEL", function(panel_data) { - scales <- panel_scales(pieces$panel, panel_data$PANEL[1]) + d <- as.data.table(d) + d[, { + scales <- panel_scales(pieces$panel, .SD$PANEL[1]) details <- plot$coordinates$train(scales) - plot$coordinates$transform(panel_data, details) - }) + transformed_data <- plot$coordinates$transform(.SD, details) + transformed_data + }, by = .(PANEL)] }) } diff --git a/tests/testthat/test-compiler-animation.R b/tests/testthat/test-compiler-animation.R index 032d7fe06..203e7b9af 100644 --- a/tests/testthat/test-compiler-animation.R +++ b/tests/testthat/test-compiler-animation.R @@ -1,15 +1,19 @@ +library(data.table) acontext("animation") -if(require(maps) && require(plyr)){ +if(require(maps)){ data(UStornadoes, package = "animint2") stateOrder <- data.frame(state = unique(UStornadoes$state)[order(unique(UStornadoes$TornadoesSqMile), decreasing=T)], rank = 1:49) # order states by tornadoes per square mile UStornadoes$state <- factor(UStornadoes$state, levels=stateOrder$state, ordered=TRUE) UStornadoes$weight <- 1/UStornadoes$LandArea # useful for stat_bin, etc. USpolygons <- map_data("state") - USpolygons$state = state.abb[match(USpolygons$region, tolower(state.name))] - UStornadoCounts <- - ddply(UStornadoes, .(state, year), summarize, count=length(state)) + USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] + + # Convert to data.table + setDT(UStornadoes) + UStornadoCounts <- UStornadoes[, .(count = .N), by = .(state, year)] + tornado.anim <- list( map=ggplot()+ geom_polygon(aes( diff --git a/tests/testthat/test-compiler-fortify.r b/tests/testthat/test-compiler-fortify.r index 5265fa482..701b1357d 100644 --- a/tests/testthat/test-compiler-fortify.r +++ b/tests/testthat/test-compiler-fortify.r @@ -1,5 +1,7 @@ context("Fortify") library(sp) +library(ggplot2) +library(dplyr) test_that("Spatial polygons have correct ordering", { make_square <- function(x = 0, y = 0, height = 1, width = 1){ @@ -32,6 +34,5 @@ test_that("Spatial polygons have correct ordering", { polys2_sp <- SpatialPolygons(polys2) fake_sp2 <- SpatialPolygonsDataFrame(polys2_sp, fake_data) - expect_equivalent(fortify(fake_sp), plyr::arrange(fortify(fake_sp2), id, order)) - + expect_equivalent(fortify(fake_sp), arrange(fortify(fake_sp2), id, order)) }) diff --git a/tests/testthat/test-compiler-save-separate-chunks.R b/tests/testthat/test-compiler-save-separate-chunks.R index 6cc02d37c..a94305a00 100644 --- a/tests/testthat/test-compiler-save-separate-chunks.R +++ b/tests/testthat/test-compiler-save-separate-chunks.R @@ -1,5 +1,5 @@ acontext("save separate chunks") -library(plyr) +library(data.table) data(FluView, package = "animint2") # use one season to test @@ -85,15 +85,15 @@ test_that("save separate chunks for geom_polygon", { }) ### test case 2 -USdots <- - ddply(FluView$USpolygons, .(region), summarise, - mean.lat = mean(lat), - mean.long = mean(long)) -# add state flu to points. -flu.points <- ldply(unique(state_flu$WEEKEND), function(we) { +# Convert plyr::ddply to data.table +USpolygons_dt <- as.data.table(FluView$USpolygons) +USdots <- USpolygons_dt[, .(mean.lat = mean(lat), mean.long = mean(long)), by = region] + +# Convert plyr::ldply to data.table +flu.points <- rbindlist(lapply(unique(state_flu$WEEKEND), function(we) { df <- subset(state_flu, WEEKEND == we) merge(USdots, df, by.x = "region", by.y = "state") -}) +})) test_that("save separate chunks for geom_point without specifying group", { # the compiler will not break a geom into chunks if any of the resulting diff --git a/tests/testthat/test-renderer1-hjust-text-anchor.R b/tests/testthat/test-renderer1-hjust-text-anchor.R index fcecb6403..5281e9eef 100644 --- a/tests/testthat/test-renderer1-hjust-text-anchor.R +++ b/tests/testthat/test-renderer1-hjust-text-anchor.R @@ -40,10 +40,15 @@ grad.desc <- function( dat <- grad.desc() contour <- dat$contour objective <- dat$objective -objective <- plyr::ldply(objective$iteration, function(i) { - df <- subset(objective, iteration <= i) + +# Replaced plyr::ldply with data.table +library(data.table) +objective_dt <- as.data.table(objective) +objective <- objective_dt[, { + df <- .SD[iteration <= i] cbind(df, iteration2 = i) -}) +}, by = .(iteration)] + objective2 <- subset(objective, iteration == iteration2) grad.desc.viz <- function(hjust) { diff --git a/tests/testthat/test-renderer1-interactivity.R b/tests/testthat/test-renderer1-interactivity.R index d8805c08f..62cb21645 100644 --- a/tests/testthat/test-renderer1-interactivity.R +++ b/tests/testthat/test-renderer1-interactivity.R @@ -178,9 +178,12 @@ UStornadoes$state <- factor(UStornadoes$state, levels=stateOrder$state, ordered= UStornadoes$weight <- 1/UStornadoes$LandArea USpolygons <- map_data("state") USpolygons$state = state.abb[match(USpolygons$region, tolower(state.name))] -library(plyr) -UStornadoCounts <- - ddply(UStornadoes, .(state, year), summarize, count=length(state)) + +# Replaced plyr::ddply with data.table +library(data.table) +UStornadoes_dt <- as.data.table(UStornadoes) +UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] + seg.color <- "#55B1F7" tornado.lines <- list( map=ggplot()+ From bfea5dc2a35211c9b0c3a3ffb9465b81ed831354 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Mon, 10 Mar 2025 23:57:22 +0530 Subject: [PATCH 02/13] removed dplyr from test-compiler-fortify.r --- tests/testthat/test-compiler-fortify.r | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/testthat/test-compiler-fortify.r b/tests/testthat/test-compiler-fortify.r index 701b1357d..b9656f009 100644 --- a/tests/testthat/test-compiler-fortify.r +++ b/tests/testthat/test-compiler-fortify.r @@ -1,14 +1,13 @@ context("Fortify") library(sp) library(ggplot2) -library(dplyr) test_that("Spatial polygons have correct ordering", { make_square <- function(x = 0, y = 0, height = 1, width = 1){ delx <- width/2 dely <- height/2 Polygon(matrix(c(x + delx, x - delx,x - delx,x + delx,x + delx , - y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) + y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) } make_hole <- function(x = 0, y = 0, height = .5, width = .5){ @@ -34,5 +33,10 @@ test_that("Spatial polygons have correct ordering", { polys2_sp <- SpatialPolygons(polys2) fake_sp2 <- SpatialPolygonsDataFrame(polys2_sp, fake_data) - expect_equivalent(fortify(fake_sp), arrange(fortify(fake_sp2), id, order)) -}) + # arranged with data.table::setorder + fortified_sp2 <- fortify(fake_sp2) + fortified_sp2 <- as.data.table(fortified_sp2) + setorder(fortified_sp2, id, order) + + expect_equivalent(fortify(fake_sp), fortified_sp2) +}) \ No newline at end of file From 485e1f31dc7e2aafd736d7d3340db783de808db2 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Tue, 11 Mar 2025 18:38:45 +0530 Subject: [PATCH 03/13] added requested changes --- tests/testthat/test-compiler-animation.R | 7 +++---- tests/testthat/test-compiler-fortify.r | 4 ++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/testthat/test-compiler-animation.R b/tests/testthat/test-compiler-animation.R index 203e7b9af..876f92dcc 100644 --- a/tests/testthat/test-compiler-animation.R +++ b/tests/testthat/test-compiler-animation.R @@ -10,9 +10,8 @@ if(require(maps)){ USpolygons <- map_data("state") USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] - # Convert to data.table - setDT(UStornadoes) - UStornadoCounts <- UStornadoes[, .(count = .N), by = .(state, year)] + UStornadoes_dt <- as.data.table(copy(UStornadoes)) + UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] tornado.anim <- list( map=ggplot()+ @@ -24,7 +23,7 @@ if(require(maps)){ geom_segment(aes( x=startLong, y=startLat, xend=endLong, yend=endLat), showSelected="year", - colour="#55B1F7", data=UStornadoes), + colour="#55B1F7", data=UStornadoes_dt), ts=ggplot()+ make_tallrect(UStornadoCounts, "year")+ geom_line(aes( diff --git a/tests/testthat/test-compiler-fortify.r b/tests/testthat/test-compiler-fortify.r index b9656f009..3f0b2f560 100644 --- a/tests/testthat/test-compiler-fortify.r +++ b/tests/testthat/test-compiler-fortify.r @@ -1,13 +1,13 @@ context("Fortify") library(sp) -library(ggplot2) +library(animint2) test_that("Spatial polygons have correct ordering", { make_square <- function(x = 0, y = 0, height = 1, width = 1){ delx <- width/2 dely <- height/2 Polygon(matrix(c(x + delx, x - delx,x - delx,x + delx,x + delx , - y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) + y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) } make_hole <- function(x = 0, y = 0, height = .5, width = .5){ From 3e102a3167cb61f682b2fd9ebd980b8820f23249 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Fri, 14 Mar 2025 08:17:53 +0530 Subject: [PATCH 04/13] requested changes --- tests/testthat/helper-plot-data.r | 20 +++++++++++--------- tests/testthat/test-compiler-animation.R | 8 +++++--- tests/testthat/test-compiler-fortify.r | 6 +++--- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 1bf25a5c2..fbc5d332f 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -3,15 +3,17 @@ library(data.table) cdata <- function(plot) { pieces <- ggplot_build(plot) - lapply(pieces$data, function(d) { - d <- as.data.table(d) - d[, { - scales <- panel_scales(pieces$panel, .SD$PANEL[1]) - details <- plot$coordinates$train(scales) - transformed_data <- plot$coordinates$transform(.SD, details) - transformed_data - }, by = .(PANEL)] - }) + dt <- rbindlist(pieces$data, idcol = "data_id") + + result <- dt[, { + scales <- panel_scales(pieces$panel, PANEL[1]) + details <- plot$coordinates$train(scales) + transformed_data <- plot$coordinates$transform(.SD, details) + transformed_data + }, by = .(data_id, PANEL)] + + # Split the result back into a list of data.tables + split(result, by = "data_id", keep.by = FALSE) } pranges <- function(plot) { diff --git a/tests/testthat/test-compiler-animation.R b/tests/testthat/test-compiler-animation.R index 876f92dcc..98cc308fe 100644 --- a/tests/testthat/test-compiler-animation.R +++ b/tests/testthat/test-compiler-animation.R @@ -10,8 +10,10 @@ if(require(maps)){ USpolygons <- map_data("state") USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] - UStornadoes_dt <- as.data.table(copy(UStornadoes)) - UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] + # Creating a copy of UStornadoes using base R + UStornadoes_copy <- data.frame(UStornadoes) + setDT(UStornadoes_copy) # Converting the copy to data.table + UStornadoCounts <- UStornadoes_copy[, .(count = .N), by = .(state, year)] tornado.anim <- list( map=ggplot()+ @@ -23,7 +25,7 @@ if(require(maps)){ geom_segment(aes( x=startLong, y=startLat, xend=endLong, yend=endLat), showSelected="year", - colour="#55B1F7", data=UStornadoes_dt), + colour="#55B1F7", data=UStornadoes_copy), ts=ggplot()+ make_tallrect(UStornadoCounts, "year")+ geom_line(aes( diff --git a/tests/testthat/test-compiler-fortify.r b/tests/testthat/test-compiler-fortify.r index 3f0b2f560..caab80bee 100644 --- a/tests/testthat/test-compiler-fortify.r +++ b/tests/testthat/test-compiler-fortify.r @@ -7,7 +7,7 @@ test_that("Spatial polygons have correct ordering", { delx <- width/2 dely <- height/2 Polygon(matrix(c(x + delx, x - delx,x - delx,x + delx,x + delx , - y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) + y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) } make_hole <- function(x = 0, y = 0, height = .5, width = .5){ @@ -33,10 +33,10 @@ test_that("Spatial polygons have correct ordering", { polys2_sp <- SpatialPolygons(polys2) fake_sp2 <- SpatialPolygonsDataFrame(polys2_sp, fake_data) - # arranged with data.table::setorder + # arranged with data.table[order(id, order)] fortified_sp2 <- fortify(fake_sp2) fortified_sp2 <- as.data.table(fortified_sp2) - setorder(fortified_sp2, id, order) + fortified_sp2 <- fortified_sp2[order(id, order)] expect_equivalent(fortify(fake_sp), fortified_sp2) }) \ No newline at end of file From 8130a0a9f3b656721653027bd0533822e394a58e Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sat, 15 Mar 2025 17:21:55 +0530 Subject: [PATCH 05/13] made changes --- tests/testthat/helper-plot-data.r | 3 +-- tests/testthat/test-compiler-animation.R | 8 +++----- tests/testthat/test-compiler-fortify.r | 2 +- tests/testthat/test-compiler-save-separate-chunks.R | 2 -- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index fbc5d332f..82bab1e7a 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -8,8 +8,7 @@ cdata <- function(plot) { result <- dt[, { scales <- panel_scales(pieces$panel, PANEL[1]) details <- plot$coordinates$train(scales) - transformed_data <- plot$coordinates$transform(.SD, details) - transformed_data + plot$coordinates$transform(.SD, details) }, by = .(data_id, PANEL)] # Split the result back into a list of data.tables diff --git a/tests/testthat/test-compiler-animation.R b/tests/testthat/test-compiler-animation.R index 98cc308fe..e5b7a8528 100644 --- a/tests/testthat/test-compiler-animation.R +++ b/tests/testthat/test-compiler-animation.R @@ -10,10 +10,8 @@ if(require(maps)){ USpolygons <- map_data("state") USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] - # Creating a copy of UStornadoes using base R - UStornadoes_copy <- data.frame(UStornadoes) - setDT(UStornadoes_copy) # Converting the copy to data.table - UStornadoCounts <- UStornadoes_copy[, .(count = .N), by = .(state, year)] + UStornadoes_dt <- data.table(UStornadoes) + UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] tornado.anim <- list( map=ggplot()+ @@ -25,7 +23,7 @@ if(require(maps)){ geom_segment(aes( x=startLong, y=startLat, xend=endLong, yend=endLat), showSelected="year", - colour="#55B1F7", data=UStornadoes_copy), + colour="#55B1F7", data=UStornadoes_dt), ts=ggplot()+ make_tallrect(UStornadoCounts, "year")+ geom_line(aes( diff --git a/tests/testthat/test-compiler-fortify.r b/tests/testthat/test-compiler-fortify.r index caab80bee..c3fa6e039 100644 --- a/tests/testthat/test-compiler-fortify.r +++ b/tests/testthat/test-compiler-fortify.r @@ -7,7 +7,7 @@ test_that("Spatial polygons have correct ordering", { delx <- width/2 dely <- height/2 Polygon(matrix(c(x + delx, x - delx,x - delx,x + delx,x + delx , - y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) + y - dely,y - dely,y + dely,y + dely,y - dely), ncol = 2)) } make_hole <- function(x = 0, y = 0, height = .5, width = .5){ diff --git a/tests/testthat/test-compiler-save-separate-chunks.R b/tests/testthat/test-compiler-save-separate-chunks.R index a94305a00..e2f0a69ae 100644 --- a/tests/testthat/test-compiler-save-separate-chunks.R +++ b/tests/testthat/test-compiler-save-separate-chunks.R @@ -85,11 +85,9 @@ test_that("save separate chunks for geom_polygon", { }) ### test case 2 -# Convert plyr::ddply to data.table USpolygons_dt <- as.data.table(FluView$USpolygons) USdots <- USpolygons_dt[, .(mean.lat = mean(lat), mean.long = mean(long)), by = region] -# Convert plyr::ldply to data.table flu.points <- rbindlist(lapply(unique(state_flu$WEEKEND), function(we) { df <- subset(state_flu, WEEKEND == we) merge(USdots, df, by.x = "region", by.y = "state") From 0b18d0a908fa686f5909bb5edc29b2edadfb2bb6 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sat, 15 Mar 2025 17:39:28 +0530 Subject: [PATCH 06/13] removed plyr from DESCRIPTION --- DESCRIPTION | 1 - 1 file changed, 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index f2dba5747..8bb579f77 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -74,7 +74,6 @@ Imports: grid, gtable (>= 0.1.1), MASS, - plyr (>= 1.7.1), reshape2, scales (>= 0.4.1), stats, From 32b7d5ed8be93d9343025d450eb8b41fe75bed02 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Tue, 18 Mar 2025 12:22:43 +0530 Subject: [PATCH 07/13] added test-renderer for newtonraphson method of root finding visualization --- tests/testthat/test-renderer-newtonmethod.r | 127 ++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 tests/testthat/test-renderer-newtonmethod.r diff --git a/tests/testthat/test-renderer-newtonmethod.r b/tests/testthat/test-renderer-newtonmethod.r new file mode 100644 index 000000000..0d56ff97e --- /dev/null +++ b/tests/testthat/test-renderer-newtonmethod.r @@ -0,0 +1,127 @@ +library(testthat) +library(animint2) +library(XML) + +#Newton Raphson Method of root finding +f <- function(x) 5 * (x^3) - 7 * (x^2) - 40 * x + 100 +f_prime <- function(x) 15 * (x^2) - 14 * x - 40 + +x0 <- 10 +tolerance <- 1e-4 +max_iterations <- 30 + +iterations_df <- data.frame( + iteration = numeric(0), + x = numeric(0), + f_x = numeric(0), + tangent_intercept = numeric(0) +) + +for (i in 1:max_iterations) { + f_x0 <- f(x0) + f_prime_x0 <- f_prime(x0) + + # Calculating the next approximation + x1 <- x0 - f_x0 / f_prime_x0 + + iterations_df <- rbind(iterations_df, data.frame( + iteration = i, + x = x0, + f_x = f_x0, + tangent_intercept = x1 + )) + + if (abs(x1 - x0) < tolerance) { + break + } + + x0 <- x1 +} + +x_vals <- seq(floor(min(iterations_df$x)), ceiling(max(iterations_df$x)), length.out = 500) +function_data_df <- data.frame(x = x_vals, y = f(x_vals)) + +# Data frame for tangent lines +tangent_data_df <- iterations_df +tangent_data_df$slope <- f_prime(tangent_data_df$x) +tangent_data_df$intercept <- tangent_data_df$f_x - tangent_data_df$slope * tangent_data_df$x + +# Creating the visualization +viz <- list( + newtonRaphsonPlot = ggplot() + + geom_hline(yintercept = 0, color = "gray", linetype = "dashed", + help = "This line represents f(x) = 0, showing where we seek the root.") + + geom_line( + data = function_data_df, aes(x = x, y = y), + color = "black", size = 1.2, + help = "The black curve represents the function f(x), whose root we are approximating." + ) + + geom_abline( + data = tangent_data_df, aes(slope = slope, intercept = intercept), + color = "red", linetype = "dashed", alpha = 0.5, + showSelected = "iteration", + help = "The red dashed lines are the tangent lines at each iteration of the Newton-Raphson method." + ) + + geom_point( + data = iterations_df, aes(x = x, y = f_x), + color = "blue", size = 3, showSelected = "iteration", + help = "The blue points indicate the successive approximations of the root." + ) + + geom_vline( + data = iterations_df, aes(xintercept = tangent_intercept), + color = "orange", size = 1, showSelected = "iteration", + help = "The orange vertical lines mark the next x-values computed at each iteration." + ) + + geom_text( + data = iterations_df, aes( + x = tangent_intercept, y = 0, + label = paste("x:", sprintf("%.4f", tangent_intercept)) + ), + vjust = 0, hjust = 0.5, color = "black", size = 15, + showSelected = "iteration", + help = "The text annotations show the numerical value of x at each iteration." + ) + + scale_x_continuous( + limits = c(floor(min(x_vals)), ceiling(max(x_vals))), + breaks = pretty(x_vals, n = 10), + expand = c(0.05, 0.05) + ) + + + scale_y_continuous( + limits = c(floor(min(function_data_df$y)), ceiling(max(function_data_df$y))), + breaks = pretty(function_data_df$y, n = 10), + expand = c(0.05, 0.05) + ) + + labs( + title = "Newton-Raphson Method - Root Finding", + subtitle = "Solving f(x) = 5x³ - 7x² - 40x + 100", + x = "x", + y = "f(x)" + ), + time = list(variable = "iteration", ms = 1000) +) + +map <- animint2HTML(viz) +html_content <- map$html + +# Defining the tests + +test_that("visualization of function is correct", { + expect_true(nrow(function_data_df) > 0, info = "Function data should not be empty.") + expect_true(all(!is.na(function_data_df$y)), info = "Function values should not contain NA.") +}) + +test_that("HTML content generated contains correct plot components", { + expect_true(grepl("Newton-Raphson Method - Root Finding", saveXML(html_content)), + info = "Plot title not found in the HTML content.") +}) + +test_that("Data correctness in iterations_df", { + expect_true(nrow(iterations_df) > 0, info = "No iterations were performed.") + expect_true(all(!is.na(iterations_df$f_x)), info = "f(x) values should not contain NA.") +}) + +test_that("Animation control buttons are there", { + expect_true(grepl("Show animation controls", saveXML(html_content)), + info = "Animation control buttons not found in the HTML content.") +}) \ No newline at end of file From 18a8e6109c67c78bc98969165a605c04d118efaf Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Tue, 18 Mar 2025 13:01:51 +0530 Subject: [PATCH 08/13] Refactored plyr occurrences --- tests/testthat/helper-plot-data.r | 9 ++- tests/testthat/test-compiler-animation.R | 67 ++++++++++--------- .../test-renderer1-hjust-text-anchor.R | 4 +- 3 files changed, 41 insertions(+), 39 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 82bab1e7a..b2e38a76d 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -3,12 +3,13 @@ library(data.table) cdata <- function(plot) { pieces <- ggplot_build(plot) - dt <- rbindlist(pieces$data, idcol = "data_id") + dt <- rbindlist(pieces$data, idcol = "data_id", fill = TRUE) result <- dt[, { scales <- panel_scales(pieces$panel, PANEL[1]) details <- plot$coordinates$train(scales) - plot$coordinates$transform(.SD, details) + transformed_data <- plot$coordinates$transform(.SD, details) + transformed_data }, by = .(data_id, PANEL)] # Split the result back into a list of data.tables @@ -20,11 +21,9 @@ pranges <- function(plot) { x_ranges <- lapply(panels$x_scales, function(scale) scale$get_limits()) y_ranges <- lapply(panels$y_scales, function(scale) scale$get_limits()) - - + npscales <- plot$scales$non_position_scales() npranges <- lapply(npscales$scales$scales, function(scale) scale$get_limits()) - c(list(x = x_ranges, y = y_ranges), npranges) } diff --git a/tests/testthat/test-compiler-animation.R b/tests/testthat/test-compiler-animation.R index e5b7a8528..9dcb2d84c 100644 --- a/tests/testthat/test-compiler-animation.R +++ b/tests/testthat/test-compiler-animation.R @@ -1,41 +1,42 @@ library(data.table) +library(animint2) +library(maps) + acontext("animation") -if(require(maps)){ - data(UStornadoes, package = "animint2") - stateOrder <- data.frame(state = unique(UStornadoes$state)[order(unique(UStornadoes$TornadoesSqMile), decreasing=T)], rank = 1:49) # order states by tornadoes per square mile - UStornadoes$state <- factor(UStornadoes$state, levels=stateOrder$state, ordered=TRUE) - UStornadoes$weight <- 1/UStornadoes$LandArea - # useful for stat_bin, etc. - USpolygons <- map_data("state") - USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] +data(UStornadoes, package = "animint2") +stateOrder <- data.frame(state = unique(UStornadoes$state)[order(unique(UStornadoes$TornadoesSqMile), decreasing=T)], rank = 1:49) # order states by tornadoes per square mile +UStornadoes$state <- factor(UStornadoes$state, levels=stateOrder$state, ordered=TRUE) +UStornadoes$weight <- 1/UStornadoes$LandArea +# useful for stat_bin, etc. +USpolygons <- map_data("state") +USpolygons$state <- state.abb[match(USpolygons$region, tolower(state.name))] - UStornadoes_dt <- data.table(UStornadoes) - UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] +UStornadoes_dt <- data.table(UStornadoes) +UStornadoCounts <- UStornadoes_dt[, .(count = .N), by = .(state, year)] - tornado.anim <- list( - map=ggplot()+ - geom_polygon(aes( - x=long, y=lat, group=group), - data=USpolygons, - clickSelects="state", - fill="black", colour="grey") + - geom_segment(aes( - x=startLong, y=startLat, xend=endLong, yend=endLat), - showSelected="year", - colour="#55B1F7", data=UStornadoes_dt), - ts=ggplot()+ - make_tallrect(UStornadoCounts, "year")+ - geom_line(aes( - year, count, group=state), - clickSelects="state", - data=UStornadoCounts, alpha=3/5, size=4), - time=list(variable="year",ms=2000)) - test_that("tornado animation frames correct", { - info <- animint2dir(tornado.anim, open.browser=FALSE) - expect_identical(info$time$sequence, as.character(1950:2012)) - }) -} +tornado.anim <- list( + map=ggplot()+ + geom_polygon(aes( + x=long, y=lat, group=group), + data=USpolygons, + clickSelects="state", + fill="black", colour="grey") + + geom_segment(aes( + x=startLong, y=startLat, xend=endLong, yend=endLat), + showSelected="year", + colour="#55B1F7", data=UStornadoes_dt), + ts=ggplot()+ + make_tallrect(UStornadoCounts, "year")+ + geom_line(aes( + year, count, group=state), + clickSelects="state", + data=UStornadoCounts, alpha=3/5, size=4), + time=list(variable="year",ms=2000)) +test_that("tornado animation frames correct", { + info <- animint2dir(tornado.anim, open.browser=FALSE) + expect_identical(info$time$sequence, as.character(1950:2012)) +}) ## WorldBank/gapminder example. data(WorldBank, package = "animint2") diff --git a/tests/testthat/test-renderer1-hjust-text-anchor.R b/tests/testthat/test-renderer1-hjust-text-anchor.R index 5281e9eef..638130e52 100644 --- a/tests/testthat/test-renderer1-hjust-text-anchor.R +++ b/tests/testthat/test-renderer1-hjust-text-anchor.R @@ -41,9 +41,11 @@ dat <- grad.desc() contour <- dat$contour objective <- dat$objective -# Replaced plyr::ldply with data.table library(data.table) objective_dt <- as.data.table(objective) + +i <- max(objective_dt$iteration) + objective <- objective_dt[, { df <- .SD[iteration <= i] cbind(df, iteration2 = i) From 099092b2571c36f878bc57ca64e1d5ebcfa7bb93 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Tue, 18 Mar 2025 13:27:21 +0530 Subject: [PATCH 09/13] minor changes --- tests/testthat/test-renderer-newtonmethod.r | 127 -------------------- 1 file changed, 127 deletions(-) delete mode 100644 tests/testthat/test-renderer-newtonmethod.r diff --git a/tests/testthat/test-renderer-newtonmethod.r b/tests/testthat/test-renderer-newtonmethod.r deleted file mode 100644 index 0d56ff97e..000000000 --- a/tests/testthat/test-renderer-newtonmethod.r +++ /dev/null @@ -1,127 +0,0 @@ -library(testthat) -library(animint2) -library(XML) - -#Newton Raphson Method of root finding -f <- function(x) 5 * (x^3) - 7 * (x^2) - 40 * x + 100 -f_prime <- function(x) 15 * (x^2) - 14 * x - 40 - -x0 <- 10 -tolerance <- 1e-4 -max_iterations <- 30 - -iterations_df <- data.frame( - iteration = numeric(0), - x = numeric(0), - f_x = numeric(0), - tangent_intercept = numeric(0) -) - -for (i in 1:max_iterations) { - f_x0 <- f(x0) - f_prime_x0 <- f_prime(x0) - - # Calculating the next approximation - x1 <- x0 - f_x0 / f_prime_x0 - - iterations_df <- rbind(iterations_df, data.frame( - iteration = i, - x = x0, - f_x = f_x0, - tangent_intercept = x1 - )) - - if (abs(x1 - x0) < tolerance) { - break - } - - x0 <- x1 -} - -x_vals <- seq(floor(min(iterations_df$x)), ceiling(max(iterations_df$x)), length.out = 500) -function_data_df <- data.frame(x = x_vals, y = f(x_vals)) - -# Data frame for tangent lines -tangent_data_df <- iterations_df -tangent_data_df$slope <- f_prime(tangent_data_df$x) -tangent_data_df$intercept <- tangent_data_df$f_x - tangent_data_df$slope * tangent_data_df$x - -# Creating the visualization -viz <- list( - newtonRaphsonPlot = ggplot() + - geom_hline(yintercept = 0, color = "gray", linetype = "dashed", - help = "This line represents f(x) = 0, showing where we seek the root.") + - geom_line( - data = function_data_df, aes(x = x, y = y), - color = "black", size = 1.2, - help = "The black curve represents the function f(x), whose root we are approximating." - ) + - geom_abline( - data = tangent_data_df, aes(slope = slope, intercept = intercept), - color = "red", linetype = "dashed", alpha = 0.5, - showSelected = "iteration", - help = "The red dashed lines are the tangent lines at each iteration of the Newton-Raphson method." - ) + - geom_point( - data = iterations_df, aes(x = x, y = f_x), - color = "blue", size = 3, showSelected = "iteration", - help = "The blue points indicate the successive approximations of the root." - ) + - geom_vline( - data = iterations_df, aes(xintercept = tangent_intercept), - color = "orange", size = 1, showSelected = "iteration", - help = "The orange vertical lines mark the next x-values computed at each iteration." - ) + - geom_text( - data = iterations_df, aes( - x = tangent_intercept, y = 0, - label = paste("x:", sprintf("%.4f", tangent_intercept)) - ), - vjust = 0, hjust = 0.5, color = "black", size = 15, - showSelected = "iteration", - help = "The text annotations show the numerical value of x at each iteration." - ) + - scale_x_continuous( - limits = c(floor(min(x_vals)), ceiling(max(x_vals))), - breaks = pretty(x_vals, n = 10), - expand = c(0.05, 0.05) - ) + - - scale_y_continuous( - limits = c(floor(min(function_data_df$y)), ceiling(max(function_data_df$y))), - breaks = pretty(function_data_df$y, n = 10), - expand = c(0.05, 0.05) - ) + - labs( - title = "Newton-Raphson Method - Root Finding", - subtitle = "Solving f(x) = 5x³ - 7x² - 40x + 100", - x = "x", - y = "f(x)" - ), - time = list(variable = "iteration", ms = 1000) -) - -map <- animint2HTML(viz) -html_content <- map$html - -# Defining the tests - -test_that("visualization of function is correct", { - expect_true(nrow(function_data_df) > 0, info = "Function data should not be empty.") - expect_true(all(!is.na(function_data_df$y)), info = "Function values should not contain NA.") -}) - -test_that("HTML content generated contains correct plot components", { - expect_true(grepl("Newton-Raphson Method - Root Finding", saveXML(html_content)), - info = "Plot title not found in the HTML content.") -}) - -test_that("Data correctness in iterations_df", { - expect_true(nrow(iterations_df) > 0, info = "No iterations were performed.") - expect_true(all(!is.na(iterations_df$f_x)), info = "f(x) values should not contain NA.") -}) - -test_that("Animation control buttons are there", { - expect_true(grepl("Show animation controls", saveXML(html_content)), - info = "Animation control buttons not found in the HTML content.") -}) \ No newline at end of file From e75e0dceaadc20d34d17300b6bf49e70e87720a7 Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Wed, 19 Mar 2025 19:01:49 +0530 Subject: [PATCH 10/13] resolved renderer error --- tests/testthat/helper-plot-data.r | 22 ++++++++---------- .../test-renderer1-hjust-text-anchor.R | 13 +++++------ tests/testthat/testthat-problems.rds | Bin 0 -> 55595 bytes 3 files changed, 16 insertions(+), 19 deletions(-) create mode 100644 tests/testthat/testthat-problems.rds diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index b2e38a76d..277cefcc5 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -1,19 +1,17 @@ library(data.table) # Transform the data as the coordinate system does + cdata <- function(plot) { pieces <- ggplot_build(plot) - - dt <- rbindlist(pieces$data, idcol = "data_id", fill = TRUE) - - result <- dt[, { - scales <- panel_scales(pieces$panel, PANEL[1]) - details <- plot$coordinates$train(scales) - transformed_data <- plot$coordinates$transform(.SD, details) - transformed_data - }, by = .(data_id, PANEL)] - - # Split the result back into a list of data.tables - split(result, by = "data_id", keep.by = FALSE) + DT <- data.table(pieces$data) + DT[, { + d <- as.data.table(data[[1]]) + d[, { + scales <- panel_scales(pieces$panel, .BY[[1]]) + details <- plot$coordinates$train(scales) + plot$coordinates$transform(.SD, details) + }, by = PANEL] + }, by = seq_along(pieces$data)] } pranges <- function(plot) { diff --git a/tests/testthat/test-renderer1-hjust-text-anchor.R b/tests/testthat/test-renderer1-hjust-text-anchor.R index 638130e52..0b677edde 100644 --- a/tests/testthat/test-renderer1-hjust-text-anchor.R +++ b/tests/testthat/test-renderer1-hjust-text-anchor.R @@ -41,15 +41,14 @@ dat <- grad.desc() contour <- dat$contour objective <- dat$objective -library(data.table) -objective_dt <- as.data.table(objective) +library(data.table) -i <- max(objective_dt$iteration) +objective_dt <- as.data.table(objective) -objective <- objective_dt[, { - df <- .SD[iteration <= i] - cbind(df, iteration2 = i) -}, by = .(iteration)] +objective <- objective_dt[ + CJ(iteration = iteration, iteration2 = iteration), + on = .(iteration <= iteration2) +][, iteration2 := iteration] objective2 <- subset(objective, iteration == iteration2) diff --git a/tests/testthat/testthat-problems.rds b/tests/testthat/testthat-problems.rds new file mode 100644 index 0000000000000000000000000000000000000000..bf67c7c936a2624c545d46594f7e31c13fc9dfa3 GIT binary patch literal 55595 zcmX_n3pms58~^X^gi4N42^o@*qLSl~V?sG3k`IKbsd&V$t62 zEU4@3T8-oD0>@q*U5CuPp7G|I@4a$|94?K#HP^iQ`mEgRXBqbL&#f)C?v^@lE_uho z%FWzD*6KWlMtF#Q^a!@;E$mm)8$NzxIy#V`UteJ_FUPONlV`(231Qz%*MEjF8W}y^ zQ5rMGNirdN`ubVs=X{J(t*R6?ihj$+`Jc*g%K7#51g_%>X;CqREXojN4Fr!WDvl5S z+VuoB@$jOnhg!dKd8sqhC`im-`t?b_Me$he{g$uyf|4rkiEQ(`P5HHKURa~=!<&vj zD!+lHlXk7g zSZ;34T{`Cq~h1TAiZQ2%I+w`io=HqA6OFn<%nyu=s zUzN?8-E<6DJlN1sa-`3t|Jg1UtL^86iou}FT9(I&x|!dj>5aD$r8jCCql%D6FHnXD zem(v2qv3L|KdRZ7vbalPtyV((3}e0H}ucXGmSQ1nwZ*Yx>c@n~-B4i-1~^r@e*7~E*v)RXJ9cv`1qV8OpI30&VUtHo(j`{^(*u=>?)x+gCsMA2*mS4W2Hk17p8j$I3og75Au7o<*EIjr(q1 z+hkbpb>MYL&A4q|K=Z=!I>ol|Am6WE|{yUE6D7uT$v#L3~6s?zvw2-D49VP! zV0}6!JZFuKP|Hc;=QzAdUORbBKMrq$<+(}0A4_tI4-y_pGAY>Zs^#m{kT5rfGz?xH zSD_Yzk@3rZ5(^nsRluy!b2`jw{(f4JC=P#+7AOOQ_mEV-9n>(ycv+3OQO{ndjly~l zSN-%&W{+TzDpu&}xbE8J4+cM_2Wq8Z&<-pTEagd(;g0>CEfA~Dm zg(k7O=d4f}tUnRBdnI^lEZ6jNyOMw+g>bmOK$aRlq)VM3C2zK9J*(k~&$J$Y^FTBS zS%BAwYwGe%UZa{v=g_u%r7BoEokyvttb|wDb^A&{g_4N8Q#cyjoql{kUIvD_1dIe7 zr#Z-03NqQ>B!>&QE|w(Ss4aot!Iwv|x~f*ZfFSt`C_@z*;}2NVQD&d$1kuC4ajsCt zSCBR92fn4l&vfD)m_lw-;Yk>(wuf&UR#@^L@Q~cMQ4eb&c^v+h%N$mza$tpt9Wyh| zW}Dd6+HN#rkq4}JjXG=M{+L~@6e}#7s$is(r%D?!*`xseGS)+GohEYI6cFs!tQuo6gAFC#yah*@k0ZI0jnJzhpH zOQL<-<0e7I$JNjQzr{%w!xToX9BP54NHdx%+;tz^dNJX-46k?EdxhqOjg$BLp=mB3PCb9J_NstOoqLh#&$wV-~Nhlvg z?^EGX4}`u0r}GvKUjpwLcyZh3sXZ@TLS!XzC9Qm4p@XIZqyx~ zE;+esh%?q%yAIu_DTqozigHmt#HBp;Yw%j$ijX~s`2@k3I$(KY>MQC4y6RTYk{qX? zRY^d!;$4j?N{+H3yyZ^CTvR4%uiQ&8BN60H=NI7H{eD)1QTNT0u6M2_RN0w2d~5FSc0iB~FTSPWfRgbXlFX-;eyG%P>@ zCtBfh!f}`qw5AGoT_SRC4X`>q4xT8-3EfZ#Be4RjZGE*h!sts;VLu!s4*x~j1{7rCXFc4%KuDmL_fd3e>mWud9U*#w^ z-v0)E5Z?0aH+*&KHFeX}j@}imAjh_|1A$th=xaKiul&GYW&mFW|5w&o7z! Y-ACQ9H0#RJC0%@udar7GX8j}*(KbnR*+}g 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
    YP*S^xm|g9BX!+HVmxXq<)P*k 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

    }R>O+=GyHnO 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 T Date: Wed, 19 Mar 2025 19:24:16 +0530 Subject: [PATCH 11/13] added .(panel) --- tests/testthat/helper-plot-data.r | 12 ++++++++---- tests/testthat/testthat-problems.rds | Bin 55595 -> 56930 bytes 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 277cefcc5..28c95630d 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -3,17 +3,21 @@ library(data.table) cdata <- function(plot) { pieces <- ggplot_build(plot) - DT <- data.table(pieces$data) + + # Process each data frame in pieces$data + DT <- data.table(index = seq_along(pieces$data), data = pieces$data) + DT[, { d <- as.data.table(data[[1]]) d[, { - scales <- panel_scales(pieces$panel, .BY[[1]]) + scales <- panel_scales(pieces$panel, PANEL) details <- plot$coordinates$train(scales) plot$coordinates$transform(.SD, details) - }, by = PANEL] - }, by = seq_along(pieces$data)] + }, by = .(PANEL)] + }, by = index] } + pranges <- function(plot) { panels <- ggplot_build(plot)$panel diff --git a/tests/testthat/testthat-problems.rds b/tests/testthat/testthat-problems.rds index bf67c7c936a2624c545d46594f7e31c13fc9dfa3..51faffc31f63762a1c220c87dad2c14b9f56514c 100644 GIT binary patch literal 56930 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

    >6E6D+gG}d{oDEgsC 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 YGta0Q3d?s!ipf3y4?=HhuaUw805%L{wEzGB literal 55595 zcmX_n3pms58~^X^gi4N42^o@*qLSl~V?sG3k`IKbsd&V$t62 zEU4@3T8-oD0>@q*U5CuPp7G|I@4a$|94?K#HP^iQ`mEgRXBqbL&#f)C?v^@lE_uho z%FWzD*6KWlMtF#Q^a!@;E$mm)8$NzxIy#V`UteJ_FUPONlV`(231Qz%*MEjF8W}y^ zQ5rMGNirdN`ubVs=X{J(t*R6?ihj$+`Jc*g%K7#51g_%>X;CqREXojN4Fr!WDvl5S z+VuoB@$jOnhg!dKd8sqhC`im-`t?b_Me$he{g$uyf|4rkiEQ(`P5HHKURa~=!<&vj zD!+lHlXk7g zSZ;34T{`Cq~h1TAiZQ2%I+w`io=HqA6OFn<%nyu=s zUzN?8-E<6DJlN1sa-`3t|Jg1UtL^86iou}FT9(I&x|!dj>5aD$r8jCCql%D6FHnXD zem(v2qv3L|KdRZ7vbalPtyV((3}e0H}ucXGmSQ1nwZ*Yx>c@n~-B4i-1~^r@e*7~E*v)RXJ9cv`1qV8OpI30&VUtHo(j`{^(*u=>?)x+gCsMA2*mS4W2Hk17p8j$I3og75Au7o<*EIjr(q1 z+hkbpb>MYL&A4q|K=Z=!I>ol|Am6WE|{yUE6D7uT$v#L3~6s?zvw2-D49VP! zV0}6!JZFuKP|Hc;=QzAdUORbBKMrq$<+(}0A4_tI4-y_pGAY>Zs^#m{kT5rfGz?xH zSD_Yzk@3rZ5(^nsRluy!b2`jw{(f4JC=P#+7AOOQ_mEV-9n>(ycv+3OQO{ndjly~l zSN-%&W{+TzDpu&}xbE8J4+cM_2Wq8Z&<-pTEagd(;g0>CEfA~Dm zg(k7O=d4f}tUnRBdnI^lEZ6jNyOMw+g>bmOK$aRlq)VM3C2zK9J*(k~&$J$Y^FTBS zS%BAwYwGe%UZa{v=g_u%r7BoEokyvttb|wDb^A&{g_4N8Q#cyjoql{kUIvD_1dIe7 zr#Z-03NqQ>B!>&QE|w(Ss4aot!Iwv|x~f*ZfFSt`C_@z*;}2NVQD&d$1kuC4ajsCt zSCBR92fn4l&vfD)m_lw-;Yk>(wuf&UR#@^L@Q~cMQ4eb&c^v+h%N$mza$tpt9Wyh| zW}Dd6+HN#rkq4}JjXG=M{+L~@6e}#7s$is(r%D?!*`xseGS)+GohEYI6cFs!tQuo6gAFC#yah*@k0ZI0jnJzhpH zOQL<-<0e7I$JNjQzr{%w!xToX9BP54NHdx%+;tz^dNJX-46k?EdxhqOjg$BLp=mB3PCb9J_NstOoqLh#&$wV-~Nhlvg z?^EGX4}`u0r}GvKUjpwLcyZh3sXZ@TLS!XzC9Qm4p@XIZqyx~ zE;+esh%?q%yAIu_DTqozigHmt#HBp;Yw%j$ijX~s`2@k3I$(KY>MQC4y6RTYk{qX? zRY^d!;$4j?N{+H3yyZ^CTvR4%uiQ&8BN60H=NI7H{eD)1QTNT0u6M2_RN0w2d~5FSc0iB~FTSPWfRgbXlFX-;eyG%P>@ zCtBfh!f}`qw5AGoT_SRC4X`>q4xT8-3EfZ#Be4RjZGE*h!sts;VLu!s4*x~j1{7rCXFc4%KuDmL_fd3e>mWud9U*#w^ z-v0)E5Z?0aH+*&KHFeX}j@}imAjh_|1A$th=xaKiul&GYW&mFW|5w&o7z! Y-ACQ9H0#RJC0%@udar7GX8j}*(KbnR*+}g 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
      YP*S^xm|g9BX!+HVmxXq<)P*k zbKb1_tn}(UnW-j`D)rR>#|o9)c4+CR=9Yg1#jL~LLPm_V7sy4|x{*PLTLHH#;IFLr zGd=~{w`QkBADZ$`T889T`dLKtU!M-|K7MQKwWM=#Wv6Y9eH{8zd8hbMQAi(*W>4$M z`&*ADtoj+dEN(s$zwELqlo#*`u5W19*(^2mHYEz*(s<;PkU|^uC!Ix94xKyN*u85&g{eelF|s?BfRIo%kyNG4=I_UX#10KgWN#N_!5ita<2b zc8dPTK|FNS@Cet#$x;#;nSxX{qm{kF$$*XqHPmj4S-FiCMQf z*XLSewUSr4vvG}tEot-BSHK(W`;!*`<&AdR0j;~SU){>>4|PK7HEtdXXHWV%5e=;J znjy8vCt9wzJ~SnnkJyZreXhN?vwW%$q+svyCNqt!3#`0w*Tg{s?LW?ho{1Aj(#WfL z9jXc385*sUN^9jck?U{~7Z5f7t9O=Q_R4T9Zz#$d!o9NXNK4<@>f`YUc#g!$S%T`IA2C>V4szS$6L=8syNmZ`_GQOMBfISs@qYwH9mlm6iQ+e)~Uk z+rNQhD^KO_FFA*kO_8zx`n3pM!L>i-SjXY!L0&ZRk0$3(lD#8o3C+Li`3uQKZQ3x< zcJ_(z(;GcU>&7qKH@vSgIr0j`v-md)ahyra1eUGf=|n2h)Acj>Q;Q`2p!K#0!5Kn-R$moE7ob)Qog>VE zLVXEz2Z*_iTw$cE04f7Fa>ei>6=8zA40}*icY4Gjc0S}n?%W|ZsQm)a{#v#%N0BdX zfGQF#v=WHDOqj{f1Kc4c3zB>Ar$sfppn=dK=%q*Yc|({)=MXZ&y7hVRpdI0eYVcLA z1-S1*f}!T>5PF`u2>q7f*qM(bAV&?fF=k!?eIZa9ht+_tx@xiDc=FFcH}QR!ufJs= zLIRmSfD&GQkq%jD?YuCi^1NklWsp&iWJvX`0sgM#gC)lgOvtQ9^7KJ%?Bzto2TRDS zc-gOlHz^L~X14S5NZQF&b3&fTsV(_>Kdg4|-qN6=!^YoZJbqb_ec7yJaJI<5fJbc& zD=!eh_Jre5UAj~`f#G->_|Ujl!Dnsrfb%8J4&^d0V?pd9X}!f*E_)Xvs-@F4K4ljW zJ;O|4b&WOa0HRPZGk!CvV1}xowp|7znWstQY{#-`6$iG ztaOVOfQw1b1kv`)NuEJ%`2y=h9w@&P2B^u+Rau@*xH5j#1+gmE)50`y^okqEsj@)+ zRO7Cr%6sMQ3D6~CNM?5j;2wt|_cd!0sEz-gQV%m&lrf-iL;GAJ#gAHrQUIN7&Qa2$ zEGvjcAeoo|s#P#OaGVoICm`n>Nkk|4LlZYo1QY3t0Br(qwGF&_%J+ifo+@?tvE#jg zRWBkE&Z`K{q_U(3ifQd6LNm25Bmt8Q*vpC(G_{FY3}}uM!%a^;xjVnl zqMv7a#}ILzYmdSQMjI1BxD9f9#)*}szy?UhtbjTnOaN_}xQdneeHvtDd{DvRRng_6ijhu}j2XOTUaDtxBfc+0!3OV|X7zo(E@0;SGs?Zw=X98SJGtY9SrV;JYPOFi|)N z-arvZRSVOLww3sdIzGa~jz+s+2RdHh=evO_&ixzvF0xDfVK9rAa`KB7XNlYaPMnf- zPz>-%t*ieFudoqqVB9l8asnt<7cA0PgMJmi;Q&v`1* zQW9`;>8SEi1&#&rF9W{+xltwLWrWheKhac0O-3mr4|KB1hOiXG0dUZN;7P|RFga#B z$r6B-=`5snhh~j}sXA>f&v2`Z&s?h3$S9J#tGVeIo)u#!Y=DU8E=REpn{*BV5f}5X z|CUnpE#yTt=28HBO*WMnr`ip~fPmq@)slhK2CRs7lEp)S%y||)Xo)ee05ItGIvqRU zxxkAEgfMe$;5=fKtdO9K9eOhCBh0yn9{ey9iMJs;u_G<>WFj{;97qX1eYgRmN~?F| zegdb!9vxL6&<8Q^P?#-yx8}|@!2C>yI#8;*5a@@o^ zL%ZsYi&we~Dbi6{)aYks6zW|h=;u6Zi3|({xNKHoat6d~QPhwll29kR;#lK}hzGum zFoHhQc`Bz@2;bbLK`M;-Yyq$+X+y<8oK8kc)D7GOhRB&SUx09!31%%fI~06g0Ze_$ zWyhIiBs&40(;Y^+N7Vd2#=0x`g9o6?qO^j+C_6T3Vm7)MpPueeC5Dg%fm=_J_TzQc zk-)UU%mtpBe+YsJuQ?P)>-@5nfhX57yJVg|sw`WgkhCLH=DQj9KQ zrp1+;Aqvng>=t`y*bhjvSwI;pFiYlEh>|8v`8$w?Q^dbH4zCrKC#*Mn%n>bCcrh|6 zCzRM;)jL3y2R%@ORF$b#vEC@oN>f!bR%lO|+KrPUq^e9sdmJ&sbfjM5K~mcIH#Zye zpN7^P;;H{>uSj)MDN~U)6J|sW6g?GwunyV)=Cuz#cKuH1BX6rGW@arN<^CH7WjUEI%YABEc+L)QgPo^nef>)TJ|@wW5)%83FqP1| z()*!x1uc3Jhe)qcGBWtakkIaoG6yMNKTo`6KO+O zq4wIQkB@eMrTT)Mgkwsf{n8p7`Q>EpFYi&-UExU__T1MzT)*F6*#xtUg;;?35B5XE!7;Vp2Uw#du#@?nAwCvqb$KE)9w-ZX|z52SR?PSFZYl*^&Vo96FN{M@})nA|-0;<*3g zakJT{H3asKw%Fx~7Udo9T{$0VF;7&eF8e34x(2Bz==>=WG3^0&L^Y&ByALkh#=p)p zfTs0CH;AfA?(iR<9GOgH&6&EpGq7Bb{WVcjqnYEkk6LGxtlxPpmVmW?uh%SDpX)K& z6nYQQqA;O5w_i_J>wOtxd$e=a;u=Q4b=E*vQSl$=2ELY>s0!)PJ1yIrWvo-kG#)tL z$G1r==V^K2kZn4;U)%AJ86i(=ryZ%wJCag@Euh_uZ3}zWL{G)i)KZ5_z0#=6C{u|x z{Ns3YF~36&-^kpgu?El27EYNr|C(8ub9RhhlprHRrwu2je%8jby*JB~u71MFYW7hy z&h=tYU4WCD+^%}Tv9#Bh3XL~y&jlmM-@m`kFrQn{X`69ib*SW9_tdb8iH#VYxmTq1 zrphKyI|Zv8uk=z-XOqK(-CO@WUchr_Z2EVHj0Mxp*+}ji%Doq>zsBij6nvdemoaye zTWjPo$xf6zg!|7vlvMDNKl$Y_SJbjzrzd0gnyTPZN(Uhp7fC`r;_r?C$ zAus^s5ZmOu)iF!bWB)T#=#wCv7w9KHT4-saB^DnT$?1ct%ce%(byw?mG3gbvnA}j!l{t z4Xl`&dY85t%*ju7*uAsJy=aW0E{Jd3bS;na)8AuqdpN_Tb=lh6_kHY2yrlT-Y^GM5 zCR61}P<3(L4^4T+B2y)~nk`BK2Zi_JGXgKgLP!P= zh3;D<1WBQf9=^SX)$ES>)hW=l)XSp-5uPX zwo229?Q=zZ(VDFw`U_RB3?!|M)qnHx8AWlbC6WfadqqJ^+ zB8d5<-PxME?_-TPy#>d*A)B^MGNL$PmJm1p5lq7oJ zI?aE8HOr87&&a)-cgKyNZq2wyrq-V+=$>A9zNXG`cUf|}E@v}GyRDn0!p%@&N?do5 zPT%Y{{`7@vYC0dnOV4p7O>5n&yyJtmLhG5KubN(aWqKT+eS_*|w%D(8u*H|uO!DT} zCsJ7ZiXxiT?zjo@Xw%*CmwfhiWoNAJSIGyPuaR_D1unQa-g>(8Gpjz?EF-EG?%^2J z%vyk9pEG=X%s+8bsOw^~(R}w>w~36%`GcN6WuedP@&fL?WP4~1ZpndLIcOK@@wsZz ze`**uyOQ^~Q;pItiuHg93qe^C7(X*^9* zG*atOWNhc`qdh~JD~VE{;DrHiis$4MrDc~8B`lcGdhF!$_Z+pZ&eM%G4t{6!+)2`0 zJ&7!(YU1#d;m$dctfdEr+Z@gu-9s$WN3$}6eB-yD5|z{aqb-TyaSC&9o!%G6v1(yI zdQSB4%bm|W8s7h`UZ4G3Vkbn%2ln>U@)ye5$A9DL0`G0Jvd!E%z+S~%5XcPc{%Mdu z!DbUde86raZ&3DHORMiVpgwvzL+ zXC?ZI$vP|P9}dRDrp;t+rdqf3ZK$2Oh#OMV24!YP}f~+e(4Z)14wUD-GvT``k)a6gh-7s(hk_MzqH5PksFEuHlVRp_t2 zEvbcPy%(gL-u1G5@q1mR{A-=|Gn%-4L7=za@pCl2$UTH1=l*aX={=heL*p1P)27l> zmai%^Qopw|zNPe`%|c>&=GTcYXB8)6_i5C`kMy&nIxnFc=#NO#oqd++Ke5+*A8sIQ z7HQI;#LkZzS@*LNsee%0fQ&>T@4jMf)6-FrcxeXSdErfBTdE6qp7}HNVrBbhz%Ke4 zQvz$#oqRGr&gL592K`Yp=Y?so-4(}cpF40%_@$hCl!VGgsKx4}eiSpZaG z$D2co?huxP%2bBK-t5GK$%lvG+9=LG)`30bD0b-*3G=>u{k3is}J*GoOn zyJnAQUtj$gcHe2MpLQ+~0IJ&Ka&^f4y0?kcMATySY!r4z62KCV7_k6pdLnYz9CFDh zxB;|9S>KNcXv;Xx$ZP(3eiY)pIGX+2-RK+HOpP`u{HO7FzplW539y?Iu-ol$y|)0+ z3ILZ6BZ(40|9Tt4)SXC~i(fLc2yqr8AOmFy+~&ufcB>$5(aFql#7wn>o?ZkI630Y} z4ES$~B+M%!XzzUBoePZOwpxf;o`{jIfs5goOL0+K!EmDi#NcVUA&R%Zq`oMk;U6l zcz)-<@qGZHh*uLBK&3$ws%1ZUe)}A$&)wF%r?_pR7Z`QEdj0nM1>8}{xF^U>hm6S* zQUb-_0mPEeN>r-Yd@$d3>hTkkF81}QDI9t|8l1(ptqC%<(~d!2-P9tn6--buP&%aH z2AWy}Z$xKkDBhOXxnwQ3(c*;2SZyjmJ%k-MCiR#KLRtEjHr18_x|%|OB9)5Oo{B;X zNOTs(2vuoSrwnJ|PZG(Xs=^)6uoku>w$qM}i1zNJ+_mAIZ{&C>P~1>&dc_-E2E(U` zVMN_bhGK4Y&ouANij9`ZjjPSY;v+Dk7-w-4L5W_}jZ6UTGCiL%^LQ)3$HeUk9QJqxLS#%a#i&G&Y z@8At=(p++yct*0DeDKzs66Y!713w#Rx(rEv&3FGj-#I$6LNbI{yXn z`nAu7YB#)}?pRwT)_YWP^Azg1WN|CKFOef*1HG&~Dm;?L^r`m-NT436C`Tz&XEqY$RUN9yU_B zI=ZHEoK*P5x3gd$AHE%%@dkjx0}*(x(&n*&O|j^b**z8m;(;Hy9IYi2&hPkI%0Fy2 z$oh8d83SOBUt?)7^_%-MOh0MMo3~i=neHeGc@qjJiyW67c{Vx8vYDxhdcp##)v(C% zheDu+t7AD(K@2&M%h2CD#J!j=N55G30d#AymkfS|K2?DNx<2RmOxxH%FR0omc64Ou zIEy4;k`eF{!72Jnqsc+jt<%nU+hqb^vrcg91=?6Up_4@y-Az$PsqUKe*gzII%|R|l z%XX@zc`R(lM2S=zmd3`2^4t~kS~Cm_#s-EGLxWuH0DvaE zyXozB)O%|J87F*3iC5-7>pD*}Km4xMgP zR-m5a@aI6ooR(DYLv-cJ0psedEdB{RNLP!x(#z|5$Tovmbn6-dpK~$`spy$bNM%2q zdkp52HNPIAA;ibqaovZGQ%T#Vyijy087CY525uUsR%eyW%okXY9zbpVCb9^FL+hb- zlqQ92X8uw*gRq%n*Kw|q8xdA|z8mzJER3+@T{Fb_OX|7;DYCU|FAzGsJ z48wgim6Ad|i*W#ETVd@Ub@z3NQtnd(8J{YrZ_HwQTc$c-i4Bq%ZAM4zTmZBLK;us7Ty zE$!e&FYln6x+9Cq(HCO5_I^8=F?qoBu)b&FqEp*2IHWrwZHAurg__IfwmyuUYF_LLBi z9~R4ysqZFvaPNo9X=+_OnI~WcGwd7IgEU}=?3R_nCG5rq#S+wjOj4S4m?Dm)nWO@5 ztBp77AVs{#W3(t?eAsO?i?`U2>^TIC!)`muow#mMmxarB=;~Xd&cLC+Vy!>2W?%a$ zJAwM!#d`}$3qcpm0K~^C$;&rumz$xk2xm4Z0XK;^HA<8T7HK_A2?H+1 zc0>=Mi(l*jQ_qTv)Z?=Y0d;eet$|TQt*M|jE8ADYcYg~Xhf>V~Gpo2dE*ss9pJEx# zgM31DPmpMZe9wKpWYljwWzGzcALlR-o(S>bWBF0wqFNKY8& zlNF$27QNyxRHV5qYhpsG5W7oA)hO?SE4@@swW09GD;gLxqIBU!5!GVA5x{dY{S}m$ z+6z~~%j8qo1gjhg&8=lf*#f3a)E=Bd;^Ba zYp|?S;Qw8pzh*k&Z7JfugGQali-7Fj;=F6*D&=vUdSDU?3$X?2=wjSs@gF5<%8Y^p zm;Uy>1}*$oj)N;;Fq(XIJWJ9Zhp%j49hsRuN^)Oz5|~}V9l}CFW5?Nkmi3)42vkPf(BvF&rEzj8oa$(r|$O{o~WA~dqG8wtF79)SC5q(Tt*B3ag0Lu|AXjEKUX z#gKy?W)*tq8^lr=K;!s1WL=bebmIDkhH1gS)I40@ z9=@7|C$f|It2~yV+$EIoDP0@{kiFrQNKHWEzcK3ny6jDoI%;=Rld-o(Ku7uS{i&dC zg(uuCJ7hBZABitnGUXjvZ(1-Qo>7U5p4)6TnD6wcz5Z?8&2eZ90&_GE_@yIie?Xjr z=(T_}CD;BW!2R!Z0ZDX%N>rrH7e0{ohFm6^*epuO*7UqS^;~#jQ4dOJ3A(KO zy}*HetR!Nc)CfQPXrj-XxAQF689`m`G?dkMC(tKU)pc;Ef9y(r>kQ6`a~wq>#mM2P z?|Y~!!sL3uiw~bYnp}!3c8%Yh$3JWFlBD3NQvMc>$RrHbuI$cKXl1i|w;eRs5@ll1 zXr*LI%eF>*1$>!;C2{qA1^TrnIjSXvckx=Y;ruQ??+}T-e}cNKR2^4N9Of)3Y=9bA}6zA>H+_0kmmIAA3I=3Kft7hqh#1k z#rDI6SdU~TRX?@{jT?hv8IF&p~{-z{S8p{E>V8N0x=QQ=~2+I<(N# z^8VCxh;Vqn2D9m!e0&Xvsz6jBI}f%1s@~~kGRS@lZRbcV(Bx;JjpW0^eP(lX&%x#0 zN$OF^EFV61E#$XT!sl_&uf3z_Du;*c6{{2oY_8Br-h+Zh-23x2KJuI=FN1$=m^}%H zw+zeD9QzoE1R7@T6(bsEb^HC`(sF*NQvlmLcOC;=;+#l_K}Xxs?+;`9U-hEGd~tK@ z-i5DWl{Dx83kN`=DexAT!AspbYUV`Xd$lB1%h8=U7vk6}8ffqi{8q?^8q@>4Canwc z78LI6dGw1^+k|)vVQpnyv04;Ddt5^PaZ<-~GNuq0w^QYW`WwM*{JjZS(^(G;%O3K@ z&on|j5lCuK#%vkoejwAYqm0w-IBVrFVnvGZCZBp9IWQz&NWQ+W?(Q5AXJ0`9q~zK7 zdC0z$G%i6}B#3>NTSxW-9JwAij~H{3jmWwh$()MsqQ7w%Wxd7Fk3#svpQSW=p-J6h z4#3Y?I$AT?)TV89{_r!+Jommh?+kE_!s-Y}H$1X1-Lm|dFe2YEV0EV3UA2N#aBMtOB+)jgZ4~PN` zk@7!DQUHu(C(SlfHxx2l9*N4r1Ac}57cXJ$k~dk9#{khC)&UsERUbJTj{Fq22XNs3#Rn$$q6RJt zS;>e{34Of~!pZ^q!F{oNDo~p3JfJFhBnt4&e3v`=^+N1it7Hh0YLEtuD9`K8^K~M6 zkGOKHV8A81c{2nlp|Lc_2Jxo`yoN&w-vG#S#(nhsz+ces0_XH3-m5HsZ0v?LkQ-6> z+2=+SkK^?{G311(r__J~#V^Rl&LYO!H2r3-#@NAM3*kh;Amxf}-%!viy3+z9TS-bm zWpHXHlMQlxwb4igrZqHdl@S=$F~Vgy5J8Zc@fJmM-xorL=D@808JM*gm<{+KKHTr8 z`Po7Ei$8J(#irxRnVm+haDzp$G}v}~)1S|8XyjW;9}Zl4PFD19<-n|GA(Ea(XJ=pHU@{aFd1lY6y3nw_CRbSl#i{k zK>=RW>Nro-MBqvxAcM$nnjfM2&K2m7UN(HhD2>W0$jTbTpBs>i$#zfRSm(X4A529zw*)5y@P?`Ha>vF}*Witn zN5_1v5irgB!VXZBDM{!5%*zIO=wYwHSvgqU9B*K z|G<2%<}XdPyTcKo>>^Z?|37Zzg?zv089!#S0RFVbG09qTK#jOkPgh$L)hYibMD@unSotKND03;p;)iC6gCM{N!;YCASgTDob z;7vpat=vE_U&)-LpbptKkGBdaF(?RRlBUrf)^n@fAA{vJ0vAo;2AJ#KMk?7Q^@4q>V?EyMQT@^f=*hMs->Zb|5X_4uu(W@fY)7 zMe|>RUT=pw`X%gB{cUh2%l79(o@sENdOgJMBihoZF;O^H>oP> zDLE^zE=(+$5fVK*2GkgyKffOmdcNa1DY9k5t4HOfA7HiDzW4^4jb$S=GixAcz9T93 z;%zx=kIiX<>Hu$cg#YwJ`1O6HJG_vz=A};5{3lGE8t%_C$@@{_j0OEo8n%yw$5p0G zyXECDWMl=5+jj`hrE~Bm!Y%21FR^V2dsXYE_B?T)>Xd5tu;#jbE&MuH?PGS%m+5;I#jYUo*)6j>(6*hTX*64qNDRvXr6ivKey*4>?Wy^r6@*E(BaWp^;7glaM4n-R2pSW2VnfDLh7Hs!;qD;K*GL~>Ibs;7|L}+X^Aib$W10N3TwKf# zv>0bRI#EHg0|t?Cf>>$F67nVTRuG$cO!kP5NQcVK54=*{ov=AXZzxm^T(l09!`HLO zl$s|{CcVkVy~BP51Ho@a^}u);&DKB$r;{AH2g2~oIk%`$*3sS#>wrc{`y?*w=&P-<+?f8w^c`BYPIa296<{%A-mP~=TrpJJ8xJM~{642F?&5nN zv}xN%YTWOnoi$kJV+Xw|C_;gN5U%%>-E`Z9-nE4~u8(+W$6@deJjz_FHVD+KTS+N%wv-bUtN*fSs)(yenS>YYYO68AzX+zcEgmw*H? za!ao(gwB_Njj^8m&?*(q2Q{>o!uxP`M3F%Yzl~l$qq+;npuIDsx9_>DbiXVkh&k@l zI`Dj{!c5E<=L5jZKZs@go7lmEG=IU0p6mFBf(-paJEi{pw!CgzVGzuG;Y@MVJ)n`- z?~yUX(?x4X%=~SHTUcr*)@{%USl}LDhuGPdAta(62Gz)Teuj}ZL8iBm?*aq2z+Z&& zgM>%DB)6=VB$N*46!LI;3`pPkUCOd9kS+iPkN}siG4f=1S8pkJ2Z(AK`#23Q+?Hu16G}u+@Nd1~X7GmOU#no08O2v7e zh8>~YuL(t#Y*pE^$)`!T!1_lu4-;1@3)yRWePAkDzL$ZC0%0SjY&|`5U>F9laY^H2 z%XI0C>OorKxXvR^fqIn4A|04f1n~u=U!bfmYYhyR0&A`57+za2>Ad}SrQ_sI60KR_ zL@lynQY&cEFFwJ}VXOS-LWczwr4Ax<80JgEP|?f+gljZEa)-x@EK1SY+|hwWXwtZf z;|Ls0K{GMtSTJ^QVYSWbFb4`1G&n)TNfhD{^q3MWqKryOD5FxZ`V;ae82DAQ7LV|= zewO2CFn-ubD!o7jUZ)139`A+4;5-WxxjGJFFiQaha4;KtIvn%S->HDo~gOj|6S@sa$Cp2ssj9)5j}_~kEKfWe{ad3-{toiXa66lL*`_GR)B zG)e;b&tX5@I$kVVHdjYyk`>@iQ|ylBVqjk%YNc#0uA0l#Us82L`OT5vJU|lr*J1EP!*CV@xBG*mvtxi5lGQp zOP&lP2F|SmHS3JV1O5t`^SUQ4Uw8&#JzhE=AZsv082;=0(Go->-9jvU0n6_Zt8=tL z+}3p>tCVG+}4kp>`xY57XuZj6$N+g1)!raMq(; zGKT9Tk$q=ivWgSlj3V5k9e5u;H0da|cw!+}i1SnB7=YvuHE1g*99Uh`nm2;Sz|?hP z)IA_d*$DNircZMUs)09wtm_mp3FX}Ng09aFHKZxN*bxr6IUG9v%#^{omE9H+*7O!b z7rC8ggZh=;6xYd z2Tf7=$0gJeA#gtZK^+Ft^5WRwmO>y69>W=A{MR841@6pwTCW^TM&UfI*KrJxEB=Ho zLHt@>teQA9zQ&RZm8`l9^w~sEbetRJGUvXl2j)SE1S6h}C$@v%ag_zDXI!Q<7g>t}7BXO1u2OI@b)G+V}+bhkyU+e%)cJWlp0K-QI$G3Ug2({_)y z;6L&5|IYR0*O+dmcJRgX#US)15?SQiZ!Z^t{ZmzeR%u56*Ovxr6u}-QJ-V1EQ_(1= zjfm484)6DqJ_RCLb!KHLQH5lx<1ZBZ+<;K0GjDEc9;w1>(ARwC zK-{Gs*i=*p_LP8@0|#QMwC7R%SysZ6Q54#pxgqddFUm8TbBg(IVLBja=van_54CWDG3!aC~GQk;Z z5e;y=Irv4kMA4#+5eE8gIYmalRKt4oKMHgH{ps=XGc&l(naMWo-t=gi=2=kiExM4Q z+9mQRZMgla7i@n;EW@>d7hOQLz*sxsa-_Lc$GjiHgUFD^9gq>orGCw8U_viTN(D`o zJk$c8gCv^_wafgE4JWPK?D%XW(WUJCM<=ioUJ}*49ZsLM&&u8#{ud zkfCSm{Hp7Nb@7vhqgGrU|92kv&4VA;{y}N3%8)%=u5Z64 z#ga(4KeI{l1AT=S_s!VbuLa_}%TAKZ^2EL3luF*Bh{=q{9jsvSuH%Z{n`^m?DFaAE zTGPvg3N!3a+$M-bb+J${@vvv;ba1bKlcIPQ@z()1Y9sKxlFxnNFN>IDj`8;w!@>ev zCsu6=RMbIX_Lb@22DFEk4NF^0*N?k1J-p>Evc-0kACcPJQHahD%%)YM%p=!`N!O=9$&u4%3HcJvR!EPrb^cq;q!B(!4!xd=mw{T;7+Vfw zS6CMlC3I0&S%26cyDvC(kQ?ws=y%dclBT%=nmO6{#byM*^2|R5W~O z)v%8n8ZbpgF1r6Y^u)6~a%J6mNXHHW!pekL(N9z_6AvBI8eUsOy4r7s{%5TW-Rh!S zdEJznEbE9-zvkna47ms7)E!(?X4A@yC-k@fg-OqJs@th=W2q-I>Fut+`4phNW?i^RGX&hq|*2z2JivYSsbL70xX_DeQXzCcgkBJbPs^Xa+?zTmlrdiP-Z~bmvFMxiDCUQ`Gr3g6V_% zCa43m<>>6n!`$4}{e$iA{VX)A8)H&2hPPTr4B2MEb02JOLru?`WFF$|gx z1++Q~;3n#}P3=Knwh#ux{hbF^S{N;eg_S=g{&qlk#B35@)zCC;{k(?o1nR%jV`EV9 zXl6jTgtqUmPk8_`wI*o}xW(C_D1jr8(6K`;NN6s|LhEf)NMy1i3_c-O#{IytL1qRk z58T)=6@l0_*X2U*+!XAOB+8!BkCC2{@))HKGank#zZch-=Hip$jZmi6K}7$*-3;TO z4zS!F$@xw==j35#Du#?^NsjaDPF=@?T7`(+JiqRG=(;1t|E+uNz4>(?hCnWvIy^t< zhQB9tk$r$gj-cz#^dt-NQ9eUZsuw`dOmQZzplS?@&@>!nPpR}Pf3opN&d@_*O&T}IrPswW#ZvDcGwB7V4oK=3@9Ht+-U+^rRaI;{n7QLb7&D~5$b8Hf{$|2t~ zfX+s7o{+KD|0%cvC4r$?1NaQ+{}52;Fv&VNKdbNy5PVFuCxr)*OL=$_r8x9n2+rsh zKsjI05ktJjN3?9If;L-tRfoM3M)RSK?5-7f4crq`8Ui97?(pDgFxQ9wZ2;Z*4N&vn zgCL;9t-qLt=ym%Ub1WKQSh1C$3Y9eT{vyaa)MIPxf!uLDOP`XB+7MJZ)4^JSt`QA} zqM>SHPtOOg;Q{7I7yYssbO=UMlki*I5dw5FndE9K8i-RQQx%dmQMYIfrp`n%F_DGT z!e%c0KZrOMmKTGFFpJ>9F7n1*m*yH

      }R>O+=GyHnO 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 T Date: Sat, 5 Apr 2025 13:00:39 +0530 Subject: [PATCH 12/13] resolved some errors --- tests/testthat/helper-plot-data.r | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 28c95630d..47100c25a 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -4,20 +4,22 @@ library(data.table) cdata <- function(plot) { pieces <- ggplot_build(plot) - # Process each data frame in pieces$data - DT <- data.table(index = seq_along(pieces$data), data = pieces$data) - - DT[, { - d <- as.data.table(data[[1]]) - d[, { - scales <- panel_scales(pieces$panel, PANEL) + # Process each piece of data while maintaining panel structure + result <- lapply(pieces$data, function(d) { + dt <- as.data.table(d) + + # Explicitly group by PANEL and process each panel's data + dt[, { + current_panel <- .BY[[1]] # Get the current PANEL from grouping + scales <- panel_scales(pieces$panel, current_panel) details <- plot$coordinates$train(scales) - plot$coordinates$transform(.SD, details) - }, by = .(PANEL)] - }, by = index] + as.data.table(plot$coordinates$transform(as.data.frame(.SD), details)) + }, by = PANEL] + }) + + return(result) } - pranges <- function(plot) { panels <- ggplot_build(plot)$panel From b78ce9647df619d5aaf7c094bb9a9521d4dc406f Mon Sep 17 00:00:00 2001 From: Suhaani Agarwal Date: Sun, 6 Apr 2025 12:57:56 +0530 Subject: [PATCH 13/13] changed .BY[[1]] --- tests/testthat/helper-plot-data.r | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/testthat/helper-plot-data.r b/tests/testthat/helper-plot-data.r index 47100c25a..eccdead2a 100644 --- a/tests/testthat/helper-plot-data.r +++ b/tests/testthat/helper-plot-data.r @@ -1,17 +1,14 @@ library(data.table) # Transform the data as the coordinate system does - cdata <- function(plot) { pieces <- ggplot_build(plot) - # Process each piece of data while maintaining panel structure result <- lapply(pieces$data, function(d) { dt <- as.data.table(d) # Explicitly group by PANEL and process each panel's data dt[, { - current_panel <- .BY[[1]] # Get the current PANEL from grouping - scales <- panel_scales(pieces$panel, current_panel) + scales <- panel_scales(pieces$panel, PANEL) details <- plot$coordinates$train(scales) as.data.table(plot$coordinates$transform(as.data.frame(.SD), details)) }, by = PANEL] @@ -25,7 +22,7 @@ pranges <- function(plot) { x_ranges <- lapply(panels$x_scales, function(scale) scale$get_limits()) y_ranges <- lapply(panels$y_scales, function(scale) scale$get_limits()) - + npscales <- plot$scales$non_position_scales() npranges <- lapply(npscales$scales$scales, function(scale) scale$get_limits())