diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fce782fe..915dfd9d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - Implemented GitHub Actions for automatic code integration. [#1237](https://github.com/ie3-institute/PowerSystemDataModel/issues/1237) +- Added `CopyBuilders` to `Line-/Transformer2W-/Tranformer3WTypeInput` [#1275](https://github.com/ie3-institute/PowerSystemDataModel/issues/1275) ### Fixed - Fixed SonarQube junit path issue in GitHub Actions [#1284](https://github.com/ie3-institute/PowerSystemDataModel/issues/1284) diff --git a/src/main/java/edu/ie3/datamodel/models/input/AssetTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/AssetTypeInput.java index 0737df4bc..57ef4258d 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/AssetTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/AssetTypeInput.java @@ -26,6 +26,8 @@ public String getId() { return id; } + public abstract AssetTypeInputCopyBuilder copy(); + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/src/main/java/edu/ie3/datamodel/models/input/connector/type/LineTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/connector/type/LineTypeInput.java index 013403d12..9e18c980b 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/connector/type/LineTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/connector/type/LineTypeInput.java @@ -82,6 +82,11 @@ public ComparableQuantity getvRated() { return vRated; } + @Override + public LineTypeInputCopyBuilder copy() { + return new LineTypeInputCopyBuilder(this); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -121,4 +126,70 @@ public String toString() { + vRated + '}'; } + + /** + * Abstract class for all builder that build child entities of abstract class {@link + * LineTypeInput} + */ + public static final class LineTypeInputCopyBuilder + extends AssetTypeInput.AssetTypeInputCopyBuilder { + + private ComparableQuantity b; + private ComparableQuantity g; + private ComparableQuantity r; + private ComparableQuantity x; + private ComparableQuantity iMax; + private ComparableQuantity vRated; + + protected LineTypeInputCopyBuilder(LineTypeInput entity) { + super(entity); + this.b = entity.b; + this.g = entity.g; + this.r = entity.r; + this.x = entity.x; + this.iMax = entity.iMax; + this.vRated = entity.vRated; + } + + /** Setter */ + public LineTypeInputCopyBuilder b(ComparableQuantity b) { + this.b = b; + return thisInstance(); + } + + public LineTypeInputCopyBuilder g(ComparableQuantity g) { + this.g = g; + return thisInstance(); + } + + public LineTypeInputCopyBuilder r(ComparableQuantity r) { + this.r = r; + return thisInstance(); + } + + public LineTypeInputCopyBuilder x(ComparableQuantity x) { + this.x = x; + return thisInstance(); + } + + public LineTypeInputCopyBuilder iMax(ComparableQuantity iMax) { + this.iMax = iMax; + return thisInstance(); + } + + public LineTypeInputCopyBuilder vRated(ComparableQuantity vRated) { + this.vRated = vRated; + return thisInstance(); + } + + @Override + public LineTypeInput build() { + return new LineTypeInput(getUuid(), getId(), b, g, r, x, iMax, vRated); + } + + @Override + protected LineTypeInputCopyBuilder thisInstance() { + return this; + } + } } diff --git a/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer2WTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer2WTypeInput.java index 319c4cf3f..b5a81b6aa 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer2WTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer2WTypeInput.java @@ -142,6 +142,11 @@ public int getTapMax() { return tapMax; } + @Override + public Transformer2WTypeInputCopyBuilder copy() { + return new Transformer2WTypeInputCopyBuilder(this); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -216,4 +221,123 @@ public String toString() { + tapMax + '}'; } + + /** + * Abstract class for all builder that build child entities of abstract class {@link + * Transformer2WTypeInput} + */ + public static final class Transformer2WTypeInputCopyBuilder + extends AssetTypeInput.AssetTypeInputCopyBuilder { + + private ComparableQuantity rSc; + private ComparableQuantity xSc; + private ComparableQuantity sRated; + private ComparableQuantity vRatedA; + private ComparableQuantity vRatedB; + private ComparableQuantity gM; + private ComparableQuantity bM; + private ComparableQuantity dV; + private ComparableQuantity dPhi; + private boolean tapSide; + private int tapNeutr; + private int tapMin; + private int tapMax; + + private Transformer2WTypeInputCopyBuilder(Transformer2WTypeInput entity) { + super(entity); + this.rSc = entity.rSc; + this.xSc = entity.xSc; + this.sRated = entity.sRated; + this.vRatedA = entity.vRatedA; + this.vRatedB = entity.vRatedB; + this.gM = entity.gM; + this.bM = entity.bM; + this.dV = entity.dV; + this.dPhi = entity.dPhi; + this.tapSide = entity.tapSide; + this.tapNeutr = entity.tapNeutr; + this.tapMin = entity.tapMin; + this.tapMax = entity.tapMax; + } + + /** Setter */ + public Transformer2WTypeInputCopyBuilder rSc(ComparableQuantity rSc) { + this.rSc = rSc; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder xSc(ComparableQuantity xSc) { + this.xSc = xSc; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder sRated(ComparableQuantity sRated) { + this.sRated = sRated; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder vRatedA( + ComparableQuantity vRatedA) { + this.vRatedA = vRatedA; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder vRatedB( + ComparableQuantity vRatedB) { + this.vRatedB = vRatedB; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder gM(ComparableQuantity gM) { + this.gM = gM; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder bM(ComparableQuantity bM) { + this.bM = bM; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder dV(ComparableQuantity dV) { + this.dV = dV; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder dPhi(ComparableQuantity dPhi) { + this.dPhi = dPhi; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder tapSide(boolean tapSide) { + this.tapSide = tapSide; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder tapNeutr(int tapNeutr) { + this.tapNeutr = tapNeutr; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder tapMin(int tapMin) { + this.tapMin = tapMin; + return thisInstance(); + } + + public Transformer2WTypeInputCopyBuilder tapMax(int tapMax) { + this.tapMax = tapMax; + return thisInstance(); + } + + @Override + public Transformer2WTypeInput build() { + return new Transformer2WTypeInput( + getUuid(), getId(), rSc, xSc, sRated, vRatedA, vRatedB, gM, bM, dV, dPhi, tapSide, + tapNeutr, tapMin, tapMax); + } + + @Override + protected Transformer2WTypeInputCopyBuilder thisInstance() { + return this; + } + } } diff --git a/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer3WTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer3WTypeInput.java index 65c308071..6b2013300 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer3WTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/connector/type/Transformer3WTypeInput.java @@ -196,6 +196,11 @@ public int getTapMax() { return tapMax; } + @Override + public Transformer3WTypeInputCopyBuilder copy() { + return new Transformer3WTypeInputCopyBuilder(this); + } + @Override public boolean equals(Object o) { if (this == o) return true; @@ -294,4 +299,166 @@ public String toString() { + tapMax + '}'; } + + /** + * Abstract class for all builder that build child entities of abstract class {@link + * Transformer3WTypeInput} + */ + public static final class Transformer3WTypeInputCopyBuilder + extends AssetTypeInput.AssetTypeInputCopyBuilder { + + private ComparableQuantity sRatedA; + private ComparableQuantity sRatedB; + private ComparableQuantity sRatedC; + private ComparableQuantity vRatedA; + private ComparableQuantity vRatedB; + private ComparableQuantity vRatedC; + private ComparableQuantity rScA; + private ComparableQuantity rScB; + private ComparableQuantity rScC; + private ComparableQuantity xScA; + private ComparableQuantity xScB; + private ComparableQuantity xScC; + private ComparableQuantity gM; + private ComparableQuantity bM; + private ComparableQuantity dV; + private ComparableQuantity dPhi; + private int tapNeutr; + private int tapMin; + private int tapMax; + + private Transformer3WTypeInputCopyBuilder(Transformer3WTypeInput entity) { + super(entity); + this.sRatedA = entity.sRatedA; + this.sRatedB = entity.sRatedB; + this.sRatedC = entity.sRatedC; + this.vRatedA = entity.vRatedA; + this.vRatedB = entity.vRatedB; + this.vRatedC = entity.vRatedC; + this.rScA = entity.rScA; + this.rScB = entity.rScB; + this.rScC = entity.rScC; + this.xScA = entity.xScA; + this.xScB = entity.xScB; + this.xScC = entity.xScC; + this.gM = entity.gM; + this.bM = entity.bM; + this.dV = entity.dV; + this.dPhi = entity.dPhi; + this.tapNeutr = entity.tapNeutr; + this.tapMin = entity.tapMin; + this.tapMax = entity.tapMax; + } + + /** Setter */ + public Transformer3WTypeInputCopyBuilder sRatedA(ComparableQuantity sRatedA) { + this.sRatedA = sRatedA; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder sRatedB(ComparableQuantity sRatedB) { + this.sRatedB = sRatedB; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder sRatedC(ComparableQuantity sRatedC) { + this.sRatedC = sRatedC; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder vRatedA( + ComparableQuantity vRatedA) { + this.vRatedA = vRatedA; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder vRatedB( + ComparableQuantity vRatedB) { + this.vRatedB = vRatedB; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder vRatedC( + ComparableQuantity vRatedC) { + this.vRatedC = vRatedC; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder rScA(ComparableQuantity rScA) { + this.rScA = rScA; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder rScB(ComparableQuantity rScB) { + this.rScB = rScB; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder rScC(ComparableQuantity rScC) { + this.rScC = rScC; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder xScA(ComparableQuantity xScA) { + this.xScA = xScA; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder xScB(ComparableQuantity xScB) { + this.xScB = xScB; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder xScC(ComparableQuantity xScC) { + this.xScC = xScC; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder gM(ComparableQuantity gM) { + this.gM = gM; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder bM(ComparableQuantity bM) { + this.bM = bM; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder dV(ComparableQuantity dV) { + this.dV = dV; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder dPhi(ComparableQuantity dPhi) { + this.dPhi = dPhi; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder tapNeutr(int tapNeutr) { + this.tapNeutr = tapNeutr; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder tapMin(int tapMin) { + this.tapMin = tapMin; + return thisInstance(); + } + + public Transformer3WTypeInputCopyBuilder tapMax(int tapMax) { + this.tapMax = tapMax; + return thisInstance(); + } + + @Override + public Transformer3WTypeInput build() { + return new Transformer3WTypeInput( + getUuid(), getId(), sRatedA, sRatedB, sRatedC, vRatedA, vRatedB, vRatedC, rScA, rScB, + rScC, xScA, xScB, xScC, gM, bM, dV, dPhi, tapNeutr, tapMin, tapMax); + } + + @Override + protected Transformer3WTypeInputCopyBuilder thisInstance() { + return this; + } + } } diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/BmTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/BmTypeInput.java index 5faeb730b..42857cf38 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/BmTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/BmTypeInput.java @@ -132,8 +132,8 @@ public ComparableQuantity getEtaConv() { @Override public BmTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); return thisInstance(); } diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/ChpTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/ChpTypeInput.java index d409d6802..46f6456fc 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/ChpTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/ChpTypeInput.java @@ -138,22 +138,22 @@ private ChpTypeInputCopyBuilder(ChpTypeInput entity) { this.pOwn = entity.getpOwn(); } - public ChpTypeInputCopyBuilder setEtaEl(ComparableQuantity etaEl) { + public ChpTypeInputCopyBuilder etaEl(ComparableQuantity etaEl) { this.etaEl = etaEl; return thisInstance(); } - public ChpTypeInputCopyBuilder setEtaThermal(ComparableQuantity etaThermal) { + public ChpTypeInputCopyBuilder etaThermal(ComparableQuantity etaThermal) { this.etaThermal = etaThermal; return thisInstance(); } - public ChpTypeInputCopyBuilder setpThermal(ComparableQuantity pThermal) { + public ChpTypeInputCopyBuilder pThermal(ComparableQuantity pThermal) { this.pThermal = pThermal; return thisInstance(); } - public ChpTypeInputCopyBuilder setpOwn(ComparableQuantity pOwn) { + public ChpTypeInputCopyBuilder pOwn(ComparableQuantity pOwn) { this.pOwn = pOwn; return thisInstance(); } @@ -176,10 +176,10 @@ public ComparableQuantity getpOwn() { @Override public ChpTypeInput.ChpTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); - setpThermal(getpThermal().multiply(factor)); - setpOwn(getpOwn().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); + pThermal(getpThermal().multiply(factor)); + pOwn(getpOwn().multiply(factor)); return thisInstance(); } diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/EvTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/EvTypeInput.java index d1b767b88..335a3577f 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/EvTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/EvTypeInput.java @@ -154,8 +154,8 @@ public ComparableQuantity getsRatedDC() { @Override public EvTypeInput.EvTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); seteStorage(geteStorage().multiply(factor)); seteCons(geteCons().multiply(factor)); setsRatedDC(getsRatedDC().multiply(factor)); diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/HpTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/HpTypeInput.java index d7c20074d..9962e9578 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/HpTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/HpTypeInput.java @@ -96,7 +96,7 @@ private HpTypeInputCopyBuilder(HpTypeInput entity) { this.pThermal = entity.getpThermal(); } - public HpTypeInputCopyBuilder setpThermal(ComparableQuantity pThermal) { + public HpTypeInputCopyBuilder pThermal(ComparableQuantity pThermal) { this.pThermal = pThermal; return thisInstance(); } @@ -107,9 +107,9 @@ public ComparableQuantity getpThermal() { @Override public HpTypeInput.HpTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); - setpThermal(getpThermal().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); + pThermal(getpThermal().multiply(factor)); return thisInstance(); } diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/StorageTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/StorageTypeInput.java index ece9ef539..fea673886 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/StorageTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/StorageTypeInput.java @@ -211,8 +211,8 @@ public int getLifeCycle() { @Override public StorageTypeInput.StorageTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); seteStorage(geteStorage().multiply(factor)); setpMax(getpMax().multiply(factor)); return thisInstance(); diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/SystemParticipantTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/SystemParticipantTypeInput.java index 2ca58506f..c287c55ab 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/SystemParticipantTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/SystemParticipantTypeInput.java @@ -119,22 +119,22 @@ protected SystemParticipantTypeInputCopyBuilder(SystemParticipantTypeInput entit this.cosPhiRated = entity.getCosPhiRated(); } - public B setCapex(ComparableQuantity capex) { + public B capex(ComparableQuantity capex) { this.capex = capex; return thisInstance(); } - public B setOpex(ComparableQuantity opex) { + public B opex(ComparableQuantity opex) { this.opex = opex; return thisInstance(); } - public B setsRated(ComparableQuantity sRated) { + public B sRated(ComparableQuantity sRated) { this.sRated = sRated; return thisInstance(); } - public B setCosPhiRated(double cosPhiRated) { + public B cosPhiRated(double cosPhiRated) { this.cosPhiRated = cosPhiRated; return thisInstance(); } diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/WecTypeInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/WecTypeInput.java index 4b096ce28..219525eaf 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/WecTypeInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/WecTypeInput.java @@ -179,8 +179,8 @@ public ComparableQuantity getHubHeight() { @Override public WecTypeInput.WecTypeInputCopyBuilder scale(Double factor) { - setCapex(getCapex().multiply(factor)); - setsRated(getsRated().multiply(factor)); + capex(getCapex().multiply(factor)); + sRated(getsRated().multiply(factor)); setRotorArea(getRotorArea().multiply(factor)); return thisInstance(); } diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/BmTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/BmTypeInputTest.groovy index ebf8077ff..258a9a181 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/BmTypeInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/BmTypeInputTest.groovy @@ -21,9 +21,9 @@ class BmTypeInputTest extends Specification { when: def alteredUnit = bmTypeInput.copy() - .setsRated(Quantities.getQuantity(50d, ACTIVE_POWER_IN)) - .setCapex(Quantities.getQuantity(110d, CAPEX)) - .setOpex(Quantities.getQuantity(20d, ENERGY_PRICE)) + .sRated(Quantities.getQuantity(50d, ACTIVE_POWER_IN)) + .capex(Quantities.getQuantity(110d, CAPEX)) + .opex(Quantities.getQuantity(20d, ENERGY_PRICE)) .build() then: diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/ChpTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/ChpTypeInputTest.groovy index caf079216..0c43f8c27 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/ChpTypeInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/ChpTypeInputTest.groovy @@ -20,9 +20,9 @@ class ChpTypeInputTest extends Specification { when: def alteredUnit = chpTypeInput.copy() - .setsRated(Quantities.getQuantity(50d, ACTIVE_POWER_IN)) - .setEtaEl(Quantities.getQuantity(20, EFFICIENCY)) - .setpThermal(Quantities.getQuantity(15, ACTIVE_POWER_IN)) + .sRated(Quantities.getQuantity(50d, ACTIVE_POWER_IN)) + .etaEl(Quantities.getQuantity(20, EFFICIENCY)) + .pThermal(Quantities.getQuantity(15, ACTIVE_POWER_IN)) .build() then: diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/HpTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/HpTypeInputTest.groovy index 1cd6ebf65..01fb1513d 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/HpTypeInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/HpTypeInputTest.groovy @@ -19,8 +19,8 @@ class HpTypeInputTest extends Specification { when: def alteredUnit = hpTypeInput.copy() - .setpThermal(Quantities.getQuantity(10, ACTIVE_POWER_IN)) - .setCosPhiRated(0.97d) + .pThermal(Quantities.getQuantity(10, ACTIVE_POWER_IN)) + .cosPhiRated(0.97d) .build() then: diff --git a/src/test/groovy/edu/ie3/datamodel/models/typeInput/LineTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/typeInput/LineTypeInputTest.groovy new file mode 100644 index 000000000..a8ba2964c --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/models/typeInput/LineTypeInputTest.groovy @@ -0,0 +1,44 @@ +/* + * © 2025. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.models.typeInput + +import edu.ie3.test.common.GridTestData +import edu.ie3.util.quantities.PowerSystemUnits +import spock.lang.Specification +import tech.units.indriya.quantity.Quantities +import tech.units.indriya.unit.Units + +class LineTypeInputTest extends Specification { + + def "A LineTypeInput copy method should work as expected"(){ + given: + + def lineTypeInput = GridTestData.lineTypeInputCtoD + + when: + def alteredUnit = lineTypeInput.copy() + .id("lineTypeInput_copy") + .b(Quantities.getQuantity(0.1d, PowerSystemUnits.MICRO_SIEMENS_PER_KILOMETRE)) + .g(Quantities.getQuantity(0.1d, PowerSystemUnits.MICRO_SIEMENS_PER_KILOMETRE)) + .r(Quantities.getQuantity(0.5d, PowerSystemUnits.OHM_PER_KILOMETRE)) + .x(Quantities.getQuantity(0.4d, PowerSystemUnits.OHM_PER_KILOMETRE)) + .iMax(Quantities.getQuantity(310d, Units.AMPERE)) + .vRated(Quantities.getQuantity(30d, Units.VOLT)) + .build() + + then: + alteredUnit.with { + assert uuid == lineTypeInput.uuid + assert id == "lineTypeInput_copy" + assert b == Quantities.getQuantity(0.1d, PowerSystemUnits.MICRO_SIEMENS_PER_KILOMETRE) + assert g == Quantities.getQuantity(0.1d, PowerSystemUnits.MICRO_SIEMENS_PER_KILOMETRE) + assert r == Quantities.getQuantity(0.5d, PowerSystemUnits.OHM_PER_KILOMETRE) + assert x == Quantities.getQuantity(0.4d, PowerSystemUnits.OHM_PER_KILOMETRE) + assert iMax == Quantities.getQuantity(310d, Units.AMPERE) + assert vRated == Quantities.getQuantity(30d, Units.VOLT) + } + } +} diff --git a/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer2WTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer2WTypeInputTest.groovy new file mode 100644 index 000000000..eed815823 --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer2WTypeInputTest.groovy @@ -0,0 +1,57 @@ +/* + * © 2025. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.models.typeInput + +import edu.ie3.test.common.GridTestData +import edu.ie3.util.quantities.PowerSystemUnits +import spock.lang.Specification +import tech.units.indriya.quantity.Quantities +import tech.units.indriya.unit.Units + +class Transformer2WTypeInputTest extends Specification{ + + def "A Transformer2WTypeInput copy method should work as expected"() { + given: + def transformer2WTypeInput = GridTestData.transformerTypeBtoD + + when: + def alteredUnit = transformer2WTypeInput.copy() + .id("transformer2WTypeInput_copy") + .rSc(Quantities.getQuantity(1, Units.OHM)) + .xSc(Quantities.getQuantity(52, Units.OHM)) + .sRated(Quantities.getQuantity(50000, PowerSystemUnits.KILOWATT)) + .vRatedA(Quantities.getQuantity(111, PowerSystemUnits.KILOVOLT)) + .vRatedB(Quantities.getQuantity(11, PowerSystemUnits.KILOVOLT)) + .gM(Quantities.getQuantity(1, PowerSystemUnits.NANOSIEMENS)) + .bM(Quantities.getQuantity(1, PowerSystemUnits.NANOSIEMENS)) + .dV(Quantities.getQuantity(2, PowerSystemUnits.PERCENT)) + .dPhi(Quantities.getQuantity(1, PowerSystemUnits.DEGREE_GEOM)) + .tapSide(true) + .tapNeutr(11) + .tapMin(2) + .tapMax(20) + .build() + + then: + alteredUnit.with { + assert uuid == transformer2WTypeInput.uuid + assert id == "transformer2WTypeInput_copy" + assert rSc == Quantities.getQuantity(1, Units.OHM) + assert xSc == Quantities.getQuantity(52, Units.OHM) + assert sRated == Quantities.getQuantity(50000, PowerSystemUnits.KILOWATT) + assert vRatedA == Quantities.getQuantity(111, PowerSystemUnits.KILOVOLT) + assert vRatedB == Quantities.getQuantity(11, PowerSystemUnits.KILOVOLT) + assert gM == Quantities.getQuantity(1, PowerSystemUnits.NANOSIEMENS) + assert bM == Quantities.getQuantity(1, PowerSystemUnits.NANOSIEMENS) + assert dV == Quantities.getQuantity(2, PowerSystemUnits.PERCENT) + assert dPhi == Quantities.getQuantity(1, PowerSystemUnits.DEGREE_GEOM) + assert tapSide + assert tapNeutr == 11 + assert tapMin == 2 + assert tapMax == 20 + } + } +} diff --git a/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer3WTypeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer3WTypeInputTest.groovy new file mode 100644 index 000000000..9537e3c22 --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/models/typeInput/Transformer3WTypeInputTest.groovy @@ -0,0 +1,69 @@ +/* + * © 2025. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.models.typeInput + +import edu.ie3.test.common.GridTestData +import edu.ie3.util.quantities.PowerSystemUnits +import spock.lang.Specification +import tech.units.indriya.quantity.Quantities +import tech.units.indriya.unit.Units + +class Transformer3WTypeInputTest extends Specification{ + + def "A Transformer2WTypeInput copy method should work as expected"() { + given: + def transformer3WTypeInput = GridTestData.transformerTypeAtoBtoC + + when: + def alteredUnit = transformer3WTypeInput.copy() + .id("transformer3WTypeInput_copy") + .sRatedA(Quantities.getQuantity(100000, PowerSystemUnits.KILOWATT)) + .sRatedB(Quantities.getQuantity(70000, PowerSystemUnits.KILOWATT)) + .sRatedC(Quantities.getQuantity(50000, PowerSystemUnits.KILOWATT)) + .vRatedA(Quantities.getQuantity(400, PowerSystemUnits.KILOVOLT)) + .vRatedB(Quantities.getQuantity(120, PowerSystemUnits.KILOVOLT)) + .vRatedC(Quantities.getQuantity(30, PowerSystemUnits.KILOVOLT)) + .rScA(Quantities.getQuantity(3, Units.OHM)) + .rScB(Quantities.getQuantity(2, Units.OHM)) + .rScC(Quantities.getQuantity(1, Units.OHM)) + .xScA(Quantities.getQuantity(3, Units.OHM)) + .xScB(Quantities.getQuantity(2, Units.OHM)) + .xScC(Quantities.getQuantity(1, Units.OHM)) + .gM(Quantities.getQuantity(50000, PowerSystemUnits.NANOSIEMENS)) + .bM(Quantities.getQuantity(-2000, PowerSystemUnits.NANOSIEMENS)) + .dV(Quantities.getQuantity(2, PowerSystemUnits.PERCENT)) + .dPhi(Quantities.getQuantity(1, PowerSystemUnits.DEGREE_GEOM)) + .tapNeutr(1) + .tapMin(-11) + .tapMax(20) + .build() + + then: + alteredUnit.with { + assert uuid == transformer3WTypeInput.uuid + assert id == "transformer3WTypeInput_copy" + assert rScA == Quantities.getQuantity(3, Units.OHM) + assert rScB == Quantities.getQuantity(2, Units.OHM) + assert rScC == Quantities.getQuantity(1, Units.OHM) + assert xScA == Quantities.getQuantity(3, Units.OHM) + assert xScB == Quantities.getQuantity(2, Units.OHM) + assert xScC == Quantities.getQuantity(1, Units.OHM) + assert sRatedA == Quantities.getQuantity(100000, PowerSystemUnits.KILOWATT) + assert sRatedB == Quantities.getQuantity(70000, PowerSystemUnits.KILOWATT) + assert sRatedC == Quantities.getQuantity(50000, PowerSystemUnits.KILOWATT) + assert vRatedA == Quantities.getQuantity(400, PowerSystemUnits.KILOVOLT) + assert vRatedB == Quantities.getQuantity(120, PowerSystemUnits.KILOVOLT) + assert vRatedC == Quantities.getQuantity(30, PowerSystemUnits.KILOVOLT) + assert gM == Quantities.getQuantity(50000, PowerSystemUnits.NANOSIEMENS) + assert bM == Quantities.getQuantity(-2000, PowerSystemUnits.NANOSIEMENS) + assert dV == Quantities.getQuantity(2, PowerSystemUnits.PERCENT) + assert dPhi == Quantities.getQuantity(1, PowerSystemUnits.DEGREE_GEOM) + assert tapNeutr == 1 + assert tapMin == -11 + assert tapMax == 20 + } + } +} diff --git a/src/test/groovy/edu/ie3/datamodel/utils/validation/InvalidAssetTypeInput.groovy b/src/test/groovy/edu/ie3/datamodel/utils/validation/InvalidAssetTypeInput.groovy index 47b1a3e78..9fa1e2b31 100644 --- a/src/test/groovy/edu/ie3/datamodel/utils/validation/InvalidAssetTypeInput.groovy +++ b/src/test/groovy/edu/ie3/datamodel/utils/validation/InvalidAssetTypeInput.groovy @@ -12,6 +12,10 @@ class InvalidAssetTypeInput extends AssetTypeInput { super(uuid, id) } + AssetTypeInputCopyBuilder copy() { + return null + } + InvalidAssetTypeInput() { super(UUID.randomUUID(), "invalid_asset_type") }