From 7e8cac7992f87c32561431525b800ec3aff0bae9 Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@inrae.fr>
Date: Wed, 30 Mar 2022 17:01:19 +0200
Subject: [PATCH] fix: wrong type in reach and section numbers

- fix ids to integers
- add class to result objects

Refs #18
---
 R/tidy_result.R                  | 12 +++++++++++-
 tests/testthat/test-get_result.R |  1 +
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/R/tidy_result.R b/R/tidy_result.R
index e8a333c..4115729 100644
--- a/R/tidy_result.R
+++ b/R/tidy_result.R
@@ -46,6 +46,13 @@ tidy_result <- function(res) {
     l <- lapply(strsplit(x, ":", fixed = TRUE),
                 function(obj) {
                   df <- data.frame(x = obj[2])
+                  if (obj[1] != "var") {
+                    if (obj[1] == "t") {
+                      df$x <- as.numeric(df$x)
+                    } else {
+                      df$x <- as.integer(df$x)
+                    }
+                  }
                   names(df) <- obj[1]
                   return(df)
                 })
@@ -53,7 +60,9 @@ tidy_result <- function(res) {
   })
   df_obj <- do.call(rbind, l)
   df$key <- NULL
-  cbind(df_obj, df)
+  df <- cbind(df_obj, df)
+  class(df) <- c("SicResultTidy", class(df))
+  df
 }
 
 #' @rdname tidy_result
@@ -71,5 +80,6 @@ compact_tidy_result <- function(res) {
   attr(df, "t") <- res[, 1]
   df$t <- NULL
   df$value <- NULL
+  class(df) <- c("SicResultCompact", class(df))
   df
 }
diff --git a/tests/testthat/test-get_result.R b/tests/testthat/test-get_result.R
index 9821cb2..3739dfd 100644
--- a/tests/testthat/test-get_result.R
+++ b/tests/testthat/test-get_result.R
@@ -25,4 +25,5 @@ test_that("get_result with tidy return a tidy result", {
   expect_s3_class(result, "data.frame")
   expect_equal(names(result), c("bf", "sn", "var", "values"))
   expect_equal(attr(result, "t"), seq(0, 86400, by = 60))
+  expect_type(result$bf, "integer")
 })
-- 
GitLab