Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
test-read_in_prj.R 4.68 KiB


test_that("read_in works for process 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,
            "/OpenGeoSysProject/processes/process")

    expect_equal(length(ogs6_obj$processes), 1)
})



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,
            "/OpenGeoSysProject/media/medium")

    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,
            "/OpenGeoSysProject/time_loop")

    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,
            "/OpenGeoSysProject/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]]$value, 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,
            "/OpenGeoSysProject/process_variables/process_variable")

    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,
            "/OpenGeoSysProject/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,
            "/OpenGeoSysProject/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$error_tolerance, 1e-16)
})