Skip to content

Add unit tests for Port and Node base classes - #122

Open
mikejturner wants to merge 4 commits into
mainfrom
improve-unit-tests
Open

Add unit tests for Port and Node base classes#122
mikejturner wants to merge 4 commits into
mainfrom
improve-unit-tests

Conversation

@mikejturner

Copy link
Copy Markdown
Contributor
  • Adds unit tests for Port and Node base classes.

  • Makes a few small improvements to Port and Node (these are noted in the Changelog file):

    • Trying to add a port to a model with import/export contraints set to FlowConstraint.Series or FlowConstraint.InRange now raises a NotImplementedError.
    • When setting active periods on a Port, the set_active_periods_from_array method now accepts a list of booleans in addition to a list of 0's and 1's.
    • The get_port method on Node now returns None rather than raising a ValueError, if no such port with that name can be found.
    • verify_node now called when adding nodes to models and verify_node modified to now verify not only check the node but also verify (via call to verify_port) any ports attached to the node.

@mikejturner

Copy link
Copy Markdown
Contributor Author

✅ Code coverage on improve-unit-tests is at 82% (compared to main being at 82%)

🎉 No files have reduced coverage 🎉

Full Coverage Report

File Details
src/echo/__init__.py ✅ 100% → 100%
src/echo/configuration.py ✅ 100% → 100%
src/echo/constants.py ✅ 100% → 100%
src/echo/exceptions.py ✅ 88% → 88%
src/echo/functional.py ✅ 100% → 100%
src/echo/models/__init__.py ✅ 100% → 100%
src/echo/models/agnostic/__init__.py ✅ 100% → 100%
src/echo/models/agnostic/aggregation.py ✅ 95% → 95%
src/echo/models/agnostic/base.py ✅ 96% → 96%
src/echo/models/agnostic/bounded.py ✅ 100% → 100%
src/echo/models/agnostic/controlled.py ✅ 100% → 100%
src/echo/models/agnostic/flex.py ✅ 100% → 100%
src/echo/models/agnostic/input_output.py ✅ 100% → 100%
src/echo/models/agnostic/storage.py ✅ 82% → 82%
src/echo/models/agnostic/tellegen/__init__.py ✅ 100% → 100%
src/echo/models/agnostic/tellegen/base.py ✅ 100% → 100%
src/echo/models/agnostic/tellegen/multi_commodity.py ✅ 38% → 38%
src/echo/models/agnostic/tellegen/partitioned_multi_commodity.py ✅ 96% → 96%
src/echo/models/agnostic/tellegen/three_way_valve.py ✅ 90% → 90%
src/echo/models/agnostic/time_delay.py ✅ 100% → 100%
src/echo/models/agnostic/time_varying.py ✅ 76% → 76%
src/echo/models/base/__init__.py ✅ 100% → 100%
src/echo/models/base/base_model.py ✅ 100% → 100%
src/echo/models/base/edge.py ✅ 69% → 69%
src/echo/models/base/node.py ✅ 86% → 98%
src/echo/models/base/optimisation_graph.py ✅ 76% → 76%
src/echo/models/base/path.py ✅ 92% → 92%
src/echo/models/base/port.py ✅ 96% → 98%
src/echo/models/base/transform.py ✅ 90% → 90%
src/echo/models/base/types.py ✅ 100% → 100%
src/echo/models/carbon/__init__.py ✅ 100% → 100%
src/echo/models/carbon/aggregation.py ✅ 100% → 100%
src/echo/models/carbon/base.py ✅ 100% → 100%
src/echo/models/electrical/__init__.py ✅ 100% → 100%
src/echo/models/electrical/base.py ✅ 100% → 100%
src/echo/models/electrical/ev/__init__.py ✅ 100% → 100%
src/echo/models/electrical/ev/base.py ✅ 94% → 94%
src/echo/models/electrical/ev/deprecated.py ✅ 33% → 33%
src/echo/models/electrical/ev/ev_with_profile.py ✅ 68% → 68%
src/echo/models/electrical/ev/v0g.py ✅ 100% → 100%
src/echo/models/electrical/ev/v1g.py ✅ 100% → 100%
src/echo/models/electrical/ev/v2g.py ✅ 100% → 100%
src/echo/models/electrical/generation.py ✅ 94% → 94%
src/echo/models/electrical/inverter.py ✅ 92% → 92%
src/echo/models/gas/__init__.py ✅ 100% → 100%
src/echo/models/gas/base.py ✅ 100% → 100%
src/echo/models/gas/boiler_fixedcop.py ✅ 86% → 86%
src/echo/models/gas/boiler_tempcontrolled.py ✅ 62% → 62%
src/echo/models/prebuilt/__init__.py ✅ 100% → 100%
src/echo/models/prebuilt/battery.py ✅ 71% → 71%
src/echo/models/prebuilt/diesel_generator.py ✅ 45% → 45%
src/echo/models/prebuilt/flex.py ✅ 79% → 79%
src/echo/models/prebuilt/load.py ✅ 91% → 91%
src/echo/models/prebuilt/scaled_solar.py ✅ 67% → 67%
src/echo/models/prebuilt/solar.py ✅ 50% → 50%
src/echo/models/scenario.py ✅ 100% → 100%
src/echo/models/thermal/__init__.py ✅ 100% → 100%
src/echo/models/thermal/base.py ✅ 0% → 0%
src/echo/models/thermal/parameterised_chiller.py ✅ 85% → 85%
src/echo/models/thermal/parameterised_heatpump.py ✅ 88% → 88%
src/echo/models/thermal/simple_chiller.py ✅ 85% → 85%
src/echo/models/thermal/simple_heatpump.py ✅ 92% → 92%
src/echo/models/thermal/simple_heatpump_dualoutput.py ✅ 92% → 92%
src/echo/models/thermal/storage.py ✅ 78% → 78%
src/echo/objectives/__init__.py ✅ 100% → 100%
src/echo/objectives/base.py ✅ 98% → 98%
src/echo/objectives/contingency.py ✅ 93% → 93%
src/echo/objectives/power.py ✅ 86% → 86%
src/echo/objectives/tariff.py ✅ 80% → 80%
src/echo/optimiser.py ✅ 73% → 73%
src/echo/tracker.py ✅ 43% → 43%
src/echo/utils.py ✅ 61% → 61%
src/echo/validators.py ✅ 89% → 91%
src/echo/visualization.py ✅ 91% → 91%
TOTAL ✅ 82% → 82%

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant