Skip to content
Snippets Groups Projects
test-read_in_prj.R 4.61 KiB
Newer Older
  • Learn to ignore specific revisions
  • test_that("read_in works for medium objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "media", "medium",
                subclasses_names = c(phase = "r2ogs6_medium_phase",
                                     property = "r2ogs6_medium_property"))
    
    
        expect_equal(length(ogs6_obj$media), 1)
    })
    
    
    
    test_that("read_in works for time_loop objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "time_loop", "time_loop",
                subclasses_names =
                    c(process = "r2ogs6_tl_process",
                      output = "r2ogs6_tl_output",
                      global_processes_coupling =
                          "r2ogs6_global_processes_coupling"))
    
    
        expect_equal(is.null(ogs6_obj$time_loop), FALSE)
    })
    
    
    
    test_that("read_in works for parameter objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "parameters", "parameter")
    
    
        expect_equal(length(ogs6_obj$parameters), 7)
        expect_equal(ogs6_obj$parameters[[1]]$name, "E")
        expect_equal(ogs6_obj$parameters[[1]]$type, "Constant")
        expect_equal(ogs6_obj$parameters[[1]]$values, 10e9)
    })
    
    
    test_that("read_in works for process_variable objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "process_variables", "process_variable",
                subclasses_names = c(boundary_condition =
                                         "r2ogs6_boundary_condition"))
    
    
        expect_equal(length(ogs6_obj$process_variables), 2)
    })
    
    
    test_that("read_in works for nonlinear_solver objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "nonlinear_solvers", "nonlinear_solver")
    
    
        expect_equal(length(ogs6_obj$nonlinear_solvers), 1)
        expect_equal(ogs6_obj$nonlinear_solvers[[1]]$name, "basic_newton")
        expect_equal(ogs6_obj$nonlinear_solvers[[1]]$type, "Newton")
        expect_equal(ogs6_obj$nonlinear_solvers[[1]]$max_iter, 50)
        expect_equal(ogs6_obj$nonlinear_solvers[[1]]$linear_solver, "general_linear_solver")
    })
    
    
    
    test_that("read_in works for linear_solver objects", {
    
    
        prj_path <- (system.file("extdata/flow_free_expansion",
                                 "flow_free_expansion.prj", package = "r2ogs6"))
    
        ogs6_obj <- OGS6$new(sim_name = "sim",
                             sim_id = 1,
                             sim_path = "sim_path",
                             ogs_bin_path = "ogs_bin_path",
                             test_mode = TRUE)
    
    
        read_in(ogs6_obj, prj_path, "linear_solvers", "linear_solver")
    
    
        expect_equal(length(ogs6_obj$linear_solvers), 1)
        expect_equal(ogs6_obj$linear_solvers[[1]]$name, "general_linear_solver")
        expect_equal(ogs6_obj$linear_solvers[[1]]$lis, "-i bicgstab -p ilu -tol 1e-16 -maxiter 10000")
        expect_equal(ogs6_obj$linear_solvers[[1]]$eigen, list(solver_type = "BiCGSTAB",
                                                              precon_type = "ILUT",
                                                              max_iteration_step = 10000,
                                                              error_tolerance = 1e-16))
    })