Running 'testthat.r' [12s]
Running the tests in 'tests/testthat.r' failed.
Complete output:
  > #*****************************************
  > #
  > # (C) Copyright IBM Corp. 2017
  > # Author: Ernesto Arandia & Bradley J Eck
  > #
  > #*****************************************
  > 
  > 
  > 
  > 
  > library(testthat)
  > library(epanet2toolkit)
  > 
  > test_check("epanet2toolkit")
  [ FAIL 120 | WARN 0 | SKIP 0 | PASS 184 ]
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test_epanet.r:11:3'): ENepanet all args ─────────────────────────────
  Error in `check_epanet_error(err)`: Error 305: cannot open hydraulics file
  Backtrace:
       ▆
    1. ├─testthat::expect_silent(ENepanet("Net1.inp", "Net1.rpt", "Net1.bin")) at test_epanet.r:11:3
    2. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ ├─withr::with_output_sink(...)
    5. │   │ │ └─base::force(code)
    6. │   │ ├─base::withCallingHandlers(...)
    7. │   │ └─base::withVisible(code)
    8. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    9. └─epanet2toolkit::ENepanet("Net1.inp", "Net1.rpt", "Net1.bin")
   10.   └─epanet2toolkit:::check_epanet_error(err)
  ── Error ('test_epanet.r:19:3'): RENepanet null bin ────────────────────────────
  Error in `check_epanet_error(err)`: Error 305: cannot open hydraulics file
  Backtrace:
       ▆
    1. ├─testthat::expect_silent(ENepanet("Net1.inp", "Net1.rpt")) at test_epanet.r:19:3
    2. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise)
    3. │   ├─testthat (local) .capture(...)
    4. │   │ ├─withr::with_output_sink(...)
    5. │   │ │ └─base::force(code)
    6. │   │ ├─base::withCallingHandlers(...)
    7. │   │ └─base::withVisible(code)
    8. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    9. └─epanet2toolkit::ENepanet("Net1.inp", "Net1.rpt")
   10.   └─epanet2toolkit:::check_epanet_error(err)
  ── Error ('test_epanet.r:25:3'): retuns null invisibly ─────────────────────────
  Error in `check_epanet_error(err)`: Error 305: cannot open hydraulics file
  Backtrace:
      ▆
   1. ├─base::withVisible(ENepanet("Net1.inp", "Net1.rpt")) at test_epanet.r:25:10
   2. └─epanet2toolkit::ENepanet("Net1.inp", "Net1.rpt")
   3.   └─epanet2toolkit:::check_epanet_error(err)
  ── Error ('test_epanet_example_3.r:24:3'): ex3 ─────────────────────────────────
  Error in `check_epanet_error(err)`: Error 305: cannot open hydraulics file
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENsolveH() at test_epanet_example_3.r:24:3
   2.   └─epanet2toolkit:::check_epanet_error(err)
  ── Failure ('test_flowunits.r:12:3'): behavior calling on closed toolkit ───────
  `flowunits <- ENgetflowunits()` did not produce any warnings.
  ── Failure ('test_flowunits.r:13:3'): behavior calling on closed toolkit ───────
  is.null(flowunits) is not TRUE
  
  `actual`:   FALSE
  `expected`: TRUE 
  ── Error ('test_flowunits.r:19:3'): basic usage ────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_flowunits.r:19:3
  ── Error ('test_flowunits.r:30:4'): works ──────────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_flowunits.r:30:25
  ── Error ('test_hydraulics.r:12:3'): func works ────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_hydraulics.r:12:3
  ── Error ('test_hydraulics.r:17:3'): returns null invisbly on success ──────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_hydraulics.r:17:3
  ── Error ('test_hydraulics.r:49:3'): func works ────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:49:3
  ── Error ('test_hydraulics.r:55:3'): no crash calling twice ────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_hydraulics.r:55:3
  ── Error ('test_hydraulics.r:62:3'): returns null invisbly on success ──────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:62:3
  ── Error ('test_hydraulics.r:72:3'): func works w integer input ────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:72:3
  ── Error ('test_hydraulics.r:79:3'): func works w numeric input ────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:79:3
  ── Error ('test_hydraulics.r:85:3'): returns null invisbly on success ──────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:85:3
  ── Error ('test_hydraulics.r:96:3'): func gives a warning when hydraulics are not open ──
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:96:3
  ── Error ('test_hydraulics.r:101:3'): func warns of due to lack of hydraulic initialization ──
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:101:3
  ── Error ('test_hydraulics.r:108:3'): func works normally ──────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:108:3
  ── Error ('test_hydraulics.r:120:3'): func gives a warning when hydraulics are not open ──
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:120:3
  ── Error ('test_hydraulics.r:125:3'): func works normally ──────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:125:3
  ── Error ('test_hydraulics.r:135:3'): func works normally with loop ────────────
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:135:3
  ── Error ('test_hydraulics.r:154:3'): func gives an error when hydraulics are not open ──
  Error in `ENopen("Net1.inp", "Net1.rpt", "Net1.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt", "Net1.bin") at test_hydraulics.r:154:3
  ── Error ('test_hydraulics.r:164:3'): file saves ───────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_hydraulics.r:164:3
  ── Error ('test_hydraulics.r:180:3'): file loads ───────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_hydraulics.r:180:3
  ── Failure ('test_links.r:10:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetlinkindex("10")` did not throw an error.
  ── Error ('test_links.r:13:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:13:3
  ── Error ('test_links.r:19:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:19:3
  ── Error ('test_links.r:24:3'): get error 204 on no index ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:24:3
  ── Failure ('test_links.r:32:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetlinkid(1)` did not throw an error.
  ── Error ('test_links.r:35:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:35:3
  ── Error ('test_links.r:41:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:41:3
  ── Error ('test_links.r:46:3'): get error 204 on no ID ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:46:3
  ── Failure ('test_links.r:54:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetlinktype(1)` did not throw an error.
  ── Error ('test_links.r:57:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:57:3
  ── Error ('test_links.r:63:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:63:3
  ── Error ('test_links.r:68:3'): get error 204 on no index ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:68:3
  ── Failure ('test_links.r:76:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetlinknodes(1)` did not throw an error.
  ── Error ('test_links.r:79:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:79:3
  ── Error ('test_links.r:85:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:85:3
  ── Error ('test_links.r:90:3'): get error 204 on no index ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:90:3
  ── Failure ('test_links.r:98:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetlinkvalue(1, 1)` did not throw an error.
  ── Error ('test_links.r:101:3'): works for single input ────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:101:3
  ── Error ('test_links.r:107:3'): works for multiple input ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:107:3
  ── Error ('test_links.r:112:3'): get error 204 on no link ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:112:3
  ── Error ('test_links.r:117:3'): get error on wrong code ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:117:3
  ── Error ('test_links.r:124:3'): headloss matches rpt file ─────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_links.r:124:3
  ── Failure ('test_links.r:154:3'): no crash calling on closed toolkit ──────────
  `ENsetlinkvalue(1, 0, 100)` did not throw an error.
  ── Error ('test_links.r:157:3'): works on single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:157:3
  ── Error ('test_links.r:164:3'): error on multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:164:3
  ── Error ('test_links.r:169:3'): get error 204 on undefined link ───────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:169:3
  ── Error ('test_links.r:174:3'): get error on wrong parameter code ─────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:174:3
  ── Error ('test_links.r:179:3'): returns NULL invisibly on success ─────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_links.r:179:3
  ── Error ('test_links22.r:5:3'): link crud ─────────────────────────────────────
  Error in `ENopen("Net1.inp", rptFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile) at test_links22.r:5:3
  ── Error ('test_links22.r:47:3'): ENgetvertexcount ─────────────────────────────
  Error in `ENopen("Net1.inp", rptFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile) at test_links22.r:47:3
  ── Error ('test_links22.r:61:3'): Create vertex ────────────────────────────────
  Error in `ENopen("Net1.inp", rptFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile) at test_links22.r:61:3
  ── Error ('test_links22.r:81:3'): Create vertices ──────────────────────────────
  Error in `ENopen("Net1.inp", rptFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile) at test_links22.r:81:3
  ── Failure ('test_nodes.r:13:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetnodeindex("10")` did not throw an error.
  ── Error ('test_nodes.r:16:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:16:3
  ── Error ('test_nodes.r:22:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:22:3
  ── Error ('test_nodes.r:27:3'): get error 203 on no index ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:27:3
  ── Failure ('test_nodes.r:35:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetnodeid(1)` did not throw an error.
  ── Error ('test_nodes.r:38:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:38:3
  ── Error ('test_nodes.r:44:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:44:3
  ── Error ('test_nodes.r:49:3'): get error 203 on no ID ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:49:3
  ── Failure ('test_nodes.r:57:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetnodetype(1)` did not throw an error.
  ── Error ('test_nodes.r:60:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:60:3
  ── Error ('test_nodes.r:66:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:66:3
  ── Error ('test_nodes.r:71:3'): get error 203 on no index ──────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:71:3
  ── Failure ('test_nodes.r:79:3'): no crash calling on closed toolkit ───────────
  `x <- ENgetnodevalue(1, 1)` did not throw an error.
  ── Error ('test_nodes.r:82:3'): works for single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:82:3
  ── Error ('test_nodes.r:88:3'): works for multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:88:3
  ── Error ('test_nodes.r:93:3'): get error 205 on no node ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:93:3
  ── Error ('test_nodes.r:98:3'): get error 251 on wrong code ────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:98:3
  ── Failure ('test_nodes.r:106:3'): no crash calling on closed toolkit ──────────
  `ENsetnodevalue(1, 0, 120)` did not throw an error.
  ── Error ('test_nodes.r:109:3'): works on single input ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:109:3
  ── Error ('test_nodes.r:116:3'): error on multiple input ───────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:116:3
  ── Error ('test_nodes.r:121:3'): get error 205 on no pattern ───────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:121:3
  ── Error ('test_nodes.r:126:3'): get error 251 on wrong parameter code ─────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:126:3
  ── Error ('test_nodes.r:131:3'): returns NULL invisibly on success ─────────────
  Error in `ENopen("Net3.inp", "Net3.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt") at test_nodes.r:131:3
  ── Error ('test_quality.r:11:4'): works ────────────────────────────────────────
  Error in `check_epanet_error(err)`: Error 305: cannot open hydraulics file
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENsolveH() at test_quality.r:11:25
   2.   └─epanet2toolkit:::check_epanet_error(err)
  ── Error ('test_quality.r:23:4'): works ────────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:23:25
  ── Failure ('test_quality.r:32:4'): throws error  ──────────────────────────────
  `ENopenQ()` threw an error with unexpected message.
  Expected match: "102"
  Actual message: "Error 104: no hydraulics for water quality analysis"
  Backtrace:
      ▆
   1. ├─testthat::expect_error(ENopenQ(), "102") at test_quality.r:32:25
   2. │ └─testthat:::quasi_capture(...)
   3. │   ├─testthat (local) .capture(...)
   4. │   │ └─base::withCallingHandlers(...)
   5. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   6. └─epanet2toolkit::ENopenQ()
   7.   └─epanet2toolkit:::check_epanet_error(x[[1]])
  ── Error ('test_quality.r:37:4'): works ────────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:37:25
  ── Error ('test_quality.r:54:4'): works ────────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:54:25
  ── Error ('test_quality.r:71:4'): works ────────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:71:25
  ── Error ('test_quality.r:90:4'): works ────────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:90:25
  ── Error ('test_quality.r:111:4'): works ───────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:111:25
  ── Failure ('test_quality.r:118:4'): no crash calling closed toolkit ───────────
  `ENcloseQ()` did not throw an error.
  ── Failure ('test_quality.r:121:4'): throws error  ─────────────────────────────
  `ENcloseQ()` did not throw an error.
  ── Error ('test_quality.r:126:4'): works ───────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:126:25
  ── Failure ('test_quality.r:138:4'): throws error  ─────────────────────────────
  `ENgetqualtype()` did not throw an error.
  ── Error ('test_quality.r:146:4'): works with integer ──────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:146:25
  ── Error ('test_quality.r:155:4'): works with numeric  ─────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:155:25
  ── Error ('test_quality.r:164:4'): works with character ────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:164:25
  ── Error ('test_quality.r:174:2'): set qual type ───────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. ├─testthat::expect_silent(...) at test_quality.r:173:3
   2. │ └─testthat:::quasi_capture(enquo(object), NULL, evaluate_promise)
   3. │   ├─testthat (local) .capture(...)
   4. │   │ ├─withr::with_output_sink(...)
   5. │   │ │ └─base::force(code)
   6. │   │ ├─base::withCallingHandlers(...)
   7. │   │ └─base::withVisible(code)
   8. │   └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
   9. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:174:9
  ── Error ('test_quality.r:188:3'): works ───────────────────────────────────────
  Error in `ENopen("Net3.inp", "Net3.rpt", "Net3.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net3.inp", "Net3.rpt", "Net3.bin") at test_quality.r:188:3
  ── Error ('test_report.r:14:6'): works ─────────────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin") at test_report.r:14:6
  ── Error ('test_report.r:36:3'): writes report on open project ─────────────────
  Error in `ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin") at test_report.r:36:3
  ── Error ('test_report.r:60:3'): writes report on open project ─────────────────
  Error in `ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1-rpt.test", "Net1-rt.bin") at test_report.r:60:3
  ── Failure ('test_report.r:76:3'): no crash calling on closed toolkit ──────────
  `x <- ENresetreport()` did not throw an error.
  ── Failure ('test_report.r:81:3'): no crash calling on closed toolkit ──────────
  `x <- ENsetreport("links all")` did not throw an error.
  ── Error ('test_report.r:86:3'): setreport ─────────────────────────────────────
  Error in `ENopen("Net1.inp", rptFile, outFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile, outFile) at test_report.r:86:3
  ── Error ('test_report.r:105:3'): ENsetstatusreport ────────────────────────────
  Error in `ENopen("Net1.inp", fullRpt, fullOut)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", fullRpt, fullOut) at test_report.r:105:3
  ── Error ('test_report.r:141:3'): stats work ───────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1-stats-test.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1-stats-test.rpt") at test_report.r:141:3
  ── Error ('test_report.r:184:3'): index matches ────────────────────────────────
  Error in `ENopen("Net1.inp", rptFile, outFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile, outFile) at test_report.r:184:3
  ── Error ('test_rules.r:7:5'): rule create and delete ──────────────────────────
  Error in `ENopen("Net1.inp", "Net1-rules.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1-rules.rpt") at test_rules.r:7:5
  ── Error ('test_rules.r:54:5'): rule actions ───────────────────────────────────
  Error in `ENopen("Net1.inp", rptFile)`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", rptFile) at test_rules.r:54:5
  ── Failure ('test_times.r:12:4'): no crash calling on closed toolkit ───────────
  `x <- ENgettimeparam(1)` did not throw an error.
  ── Error ('test_times.r:16:4'): works for single character input ───────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:16:25
  ── Error ('test_times.r:25:4'): works for integer input ────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:25:25
  ── Error ('test_times.r:36:4'): returns error 251 ──────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:36:25
  ── Error ('test_times.r:43:4'): warns if time param is too large for integers in R ──
  Error in `ENopen("Net1-longduration.inp", "Net1-ld.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1-longduration.inp", "Net1-ld.rpt") at test_times.r:43:25
  ── Failure ('test_times.r:53:3'): no crash calling on closed toolkit ───────────
  `x <- ENsettimeparam(1, 1800)` did not throw an error.
  ── Error ('test_times.r:57:4'): works for character inputs ─────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:57:25
  ── Error ('test_times.r:65:4'): works for numeric inputs ───────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:65:25
  ── Error ('test_times.r:72:4'): works for integer inputs ───────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:72:25
  ── Error ('test_times.r:80:4'): reterns NULL invisibly on success ──────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:80:25
  ── Error ('test_times.r:90:4'): returns error 202 ──────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_times.r:90:25
  ── Error ('test_title.r:9:5'): func works ──────────────────────────────────────
  Error in `ENopen("Net1.inp", "Net1.rpt")`: Epanet toolkit is already open.
  Backtrace:
      ▆
   1. └─epanet2toolkit::ENopen("Net1.inp", "Net1.rpt") at test_title.r:9:5
  
  [ FAIL 120 | WARN 0 | SKIP 0 | PASS 184 ]
  Error: Test failures
  Execution halted