Nothing
#******************************************
#
# (C) Copyright IBM Corp. 2015
#
# Author: Bradley J Eck
#
#******************************************
# File: inpFuncs_tests.r
# Purpose: test reading of .inp files
context("functions for inp parts")
test_that("semi-colon at end of line is removed",
{
l <- .processCommentsAndClean(" 40 10 ;")
expect_that(grepl(";",l), equals(FALSE))
})
test_that("Net1 JUNCTIONs table",
{
jt <- JUNCTIONS(readLines("Net1.inp"))
expect_that(class(jt), equals("data.frame"))
})
test_that("Net2 JUNCTIONS table",
{
jt <- JUNCTIONS(readLines("Net2.inp"))
expect_true( jt$Pattern[1] == 2 )
})
test_that("IDs are character",{
# Net 1
jt <- JUNCTIONS(readLines("Net1.inp"))
expect_true( class(jt$ID) == "character")
# Net 2
jt <- JUNCTIONS(readLines("Net2.inp"))
expect_true( class(jt$ID) == "character")
})
test_that("Net3 RESERVOIRSs table",
{
res <- RESERVOIRS(readLines("Net3.inp"))
expect_that(class(res), equals("data.frame"))
expect_that(res$Pattern[1], equals(NA))
expect_true( class(res$ID) == "character")
})
test_that("RESERVOIR table has patterns",{
res <- RESERVOIRS(c("[RESERVOIRS]"," R1 55.5 R1Pat", "[END]"))
expect_that(names(res)[3], equals("Pattern"))
})
test_that("Net3 TANKS table",
{
tt <- TANKS(readLines("Net3.inp"))
expect_that(class(tt), equals("data.frame"))
expect_that(dim(tt)[1], equals(3))
expect_that(tt$VolCurve[1], equals(NA))
})
test_that("Net3 PIPES table",
{
pip <- PIPES(readLines("Net3.inp"))
expect_that(dim(pip)[1], equals(117))
})
test_that("pipes table missing status",{
pip <- PIPES(readLines("inp-pipe-table-some-statuses-empty.txt"))
expect_equal( class(pip$Status), "factor")
})
test_that("Net3 PUMPS table",
{
pmpt <- PUMPS(readLines("Net3.inp"))
expect_that(dim(pmpt)[1], equals(2))
})
test_that("Net3 ENERGY table is ok ",
{
engy <-ENERGY(readLines("Net3.inp"))
expect_that(length(engy),equals(3))
})
test_that("Net3 TIMES",
{
tms <- TIMES(readLines("Net3.inp"))
expect_that(length(tms),equals(9))
})
test_that("Net3 OPTIONS",
{
opts <- OPTIONS(readLines("Net3.inp"))
expect_that(class(opts),equals("list"))
})
test_that("Net3 COORDINATES",
{
coord <- COORDINATES(readLines("Net3.inp"))
expect_that(dim(coord)[1],equals(96))
})
test_that("two word options are picked up",
{
newList <- .listUpdater( list( a_b = 4 ), "a b 5")
expect_that(newList[[1]], equals("5"))
})
test_that("for options case doesn't matter",
{
newList <- .listUpdater( list( A_B = 4 ), "a b 5")
expect_that(newList$A_B, equals("5"))
})
test_that(" patterns work",
{
pats <- suppressWarnings( PATTERNS(readLines("Net3.inp")) )
expect_that(length(pats),equals(5))
expect_that(pats$`1`[16],equals(.83))
expect_warning(PATTERNS(readLines("Net3.inp")))
})
test_that("curves work",
{
crvs <- suppressWarnings( CURVES(readLines("Net3.inp")) )
expect_that(length(crvs),equals(2))
expect_warning( CURVES(readLines("Net3.inp")) )
})
test_that("some pattern entries in junc table can be missing",
{
junc <- JUNCTIONS(readLines("Net2.inp"))
})
test_that("title reads correctly",
{
titl <- TITLE( readLines("Net1.inp"))
expect_that( titl[1], equals("EPANET Example Network 1"))
})
test_that("[STATUS] reads ok" ,{
stat <- STATUS( readLines("Net3.inp"))
expect_that( stat[1,1], equals('10') )
expect_true( stat[1,2] =="Closed")
})
test_that("[DEMANDS] reads ok",{
dmd <- DEMANDS( readLines("oneprv.inp"))
expect_that( dmd[1,2], equals(1.1) )
expect_that( dim(dmd)[1], equals(3))
})
test_that("[CONTROLS] reads ok",{
ctrl <- CONTROLS( readLines("Net1.inp"))
expect_equal( length(ctrl), 2)
})
test_that("[EMITTERS] reads ok",{
emit <- EMITTERS( readLines("for-various-tests.inp"))
expect_equal( dim(emit)[1], 2)
expect_equal( class(emit), "data.frame")
})
test_that("[QUALITY] reads ok",{
qlty <- QUALITY( readLines("Net1.inp"))
expect_equal( dim(qlty)[1], 11)
expect_equal( class(qlty), "data.frame")
})
test_that("[SOURCES] reads ok",{
x <- SOURCES( readLines("for-various-tests.inp"))
expect_equal( class(x), "data.frame")
expect_equal( as.character(x$Pattern[1]), "Pat1")
})
test_that("[REACTIONS] reads ok",{
x <- REACTIONS( readLines("for-various-tests.inp"))
expect_equal( class(x), "character")
expect_equal( length(x) , 5)
})
test_that("[MIXING] reads ok",{
x <- MIXING( readLines("for-various-tests.inp"))
expect_equal( class(x), "data.frame")
expect_equal( dim(x)[1] , 2)
})
test_that("[REPORT] reads ok",{
x <- REPORT( readLines("Net1.inp"))
expect_equal( class(x), "character")
expect_equal( length(x) , 6)
})
test_that("[LABELS] reads as data frame",{
x <- LABELS(readLines("Net1.inp"))
expect_equal( class(x), "data.frame")
expect_equal(x$X.coord[3], 43.85)
expect_equal(x$Y.coord[3], 91.21)
expect_equal( x$Label[3], "Tank")
expect_true( is.na(x$Anchor[3]))
})
context("missing inp tables are null")
test_that("Net1 valves table is missing",
{
vlv <- VALVES(readLines("Net1.inp"))
expect_that(vlv, equals(NULL))
})
test_that("Net2.inp has no reservoirs",{
resr <- RESERVOIRS(readLines("Net2.inp"))
expect_that(resr, equals(NULL))
})
test_that("Net2.inp has no pumps",{
pmp <- PUMPS(readLines("Net2.inp"))
expect_that(pmp, equals(NULL))
})
test_that("TITLE is null",{
t <- TITLE(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("JUNCTIONS is null",{
s <- JUNCTIONS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("TANKS is null",{
s <- TANKS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("RESERVOIRS is null",{
s <- RESERVOIRS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("PIPES is null",{
s <- PIPES(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("PUMPS is null",{
s <- PUMPS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("VALVES is null",{
s <- VALVES(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("DEMANDS is null",{
s <- DEMANDS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("PATTERNS is null",{
s <- PATTERNS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("CURVES is null",{
s <- CURVES(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("CONTROLS is null",{
s <- CONTROLS(readLines("empty.inp"))
expect_that(s, equals(NULL))
})
test_that("ENERGY is null",{
t <- ENERGY(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("ENERGY is null",{
t <- ENERGY(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("TIMES is null",{
t <- TIMES(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("COORDINATES is null",{
t <- COORDINATES(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("EMITTERS is null",{
t <- EMITTERS(readLines("empty.inp"))
expect_that(t, equals(NULL))
})
test_that("missing OPTIONS give default options",{
t <- OPTIONS( readLines("empty.inp"))
expect_equal(t, epanetDefaultOptions() )
})
context("IDs in inp sections are character")
test_that(" junction IDs are char",{
junc <- JUNCTIONS(readLines("Net1.inp"))
expect_true( class(junc$ID) == "character")
})
context("some non-ID columns in inp sections are factors")
test_that("[Junctions] Pattern is factor",{
junc <- JUNCTIONS(readLines("Net2.inp"))
expect_true( class(junc$Pattern) == 'factor')
})
test_that("[Tanks] Curve ID is factor",{
tank <- TANKS(readLines("for-various-tests.inp"))
expect_true( class(tank$VolCurve) == 'factor')
})
test_that("[Reservoirs] Pattern is factor",{
res <- RESERVOIRS(readLines("for-various-tests.inp"))
expect_true( class(res$Pattern) == 'factor')
})
test_that("[Pipes] status is factor",{
pipe <- PIPES(readLines("Net3.inp"))
expect_true(class(pipe$Status) == 'factor')
})
test_that("[Pumps] keyword is factor",{
pmp <- PUMPS(readLines("Net3.inp"))
expect_true(class(pmp$Parameters) == 'factor')
})
test_that("[Valves] type is factor",{
vlv <- VALVES(readLines("oneprv.inp"))
expect_true(class(vlv$Type) == 'factor')
})
test_that("[Status] Status is factor",{
stat <- STATUS(readLines("Net3.inp"))
expect_true(class(stat$Status) == 'factor')
})
test_that("[Demands] Pattern is factor",{
dmd <- DEMANDS(readLines("oneprv.inp"))
expect_true(class(dmd$Pattern) == 'factor')
})
context("inp helper funcs")
test_that( ".lineRange returns same for missing and duplicate sections",{
allLines <- c("[JUNCTIONS]",
"A 1 2 ",
"[REACTIONS]",
"some param",
"[REACTIONS]",
"another param",
"[END]")
p <- .lineRange("\\[PIPES\\]", allLines)
expect_warning( r <- .lineRange("\\[REACTIONS\\]", allLines))
ok <- all.equal(p,r)
expect_true( ok )
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.