richelbilderbeek / pirouette

R package that estimates the error BEAST2 makes from a given phylogeny
GNU General Public License v3.0
3 stars 2 forks source link

'check_experiments' does not detect duplicate error filenames #402

Closed richelbilderbeek closed 4 years ago

richelbilderbeek commented 4 years ago

Describe the bug

If there are multiple experiments, one generative, and one candidate, these should save their errors to different files.

To Reproduce

  experiments <- create_test_pir_params_setup(
    has_candidate = TRUE
  )$experiments
  experiments[[1]]$errors_filename <- "errors.csv"
  experiments[[2]]$errors_filename <- "errors.csv"

  expect_equal(experiments[[1]]$inference_conditions$model_type, "generative")
  expect_equal(experiments[[2]]$inference_conditions$model_type, "candidate")

  # Should give error ...
  expect_error(check_experiments(experiments))

  # ... because these files should differ
  expect_true(experiments[[1]]$errors_filename != experiments[[2]]$errors_filename)

Expected behavior

See tests

Environment: Show the results of running the following script:

library(mcbette)
mcbette::mcbette_report()
***********
* mcbette *
***********
Can run mcbette: TRUE
OS: unix
****************
* Dependencies *
****************
beautier version: 2.3.5
tracerer version: 2.0.4
beastier version: 2.1.3
mauricer version: 2.0.6
babette version: 2.1.2
**********
* BEAST2 *
**********
Java version: 11.0.6+10-post-Ubuntu-1ubuntu119.10.1
Is BEAST2 installed: TRUE
BEAST2 version: 2.6.1
BEAST2 default path: /home/richel/.local/share/beast/bin/beast
*******************
* BEAST2 packages *
*******************
Is BEAST2 NS package installed: TRUE
BEAST2 NS installed version: 1.1.0
BEAST2 NS latest version: 1.1.0
***************
* sessionInfo *
***************
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 19.10

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.8.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.8.0

locale:
 [1] LC_CTYPE=en_US.UTF-8          LC_NUMERIC=C                 
 [3] LC_TIME=en_US.UTF-8           LC_COLLATE=en_US.UTF-8       
 [5] LC_MONETARY=en_US.UTF-8       LC_MESSAGES=en_US.UTF-8      
 [7] LC_PAPER=nl_NL.UTF-8          LC_NAME=nl_NL.UTF-8          
 [9] LC_ADDRESS=nl_NL.UTF-8        LC_TELEPHONE=nl_NL.UTF-8     
[11] LC_MEASUREMENT=en_US.UTF-8    LC_IDENTIFICATION=nl_NL.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
 [1] compiler_3.6.1 magrittr_1.5   tools_3.6.1    curl_4.3       rappdirs_0.3.1
 [6] beautier_2.3.5 mcbette_1.8.2  mauricer_2.0.6 stringi_1.4.6  beastier_2.1.3
[11] stringr_1.4.0  testit_0.11    rJava_0.9-11  

Additional context

None.

richelbilderbeek commented 4 years ago

Marked as such:

test_that("different error filenames between generative and candidate", {

  if (rappdirs::app_dir()$os == "win") return()

  experiments <- create_test_pir_params_setup(
    has_candidate = TRUE
  )$experiments
  experiments[[1]]$errors_filename <- "errors.csv"
  experiments[[2]]$errors_filename <- "errors.csv"

  skip("Issue 402. Issue #402")
  expect_error(check_experiments(experiments))

  expect_equal(experiments[[1]]$inference_conditions$model_type, "generative")
  expect_equal(experiments[[2]]$inference_conditions$model_type, "candidate")

  expect_true(experiments[[1]]$errors_filename != experiments[[2]]$errors_filename)
})
richelbilderbeek commented 4 years ago

It does now. It even detects bugs where I hoped would be none.