diff --git a/.scalafmt.conf b/.scalafmt.conf index b8f5b24c..38f2ee1f 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,9 @@ version = 3.8.1 -runner.dialect = scala213 +runner.dialect = scala3 + +rewrite.scala3.convertToNewSyntax = false +rewrite.scala3.removeOptionalBraces = no rewrite.trailingCommas.style = multiple + +rewrite.rules = [] diff --git a/CHANGELOG.md b/CHANGELOG.md index 2226744e..2bdab04f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Improve clustering efficiency by using faster hashcode method [#515](https://github.com/ie3-institute/OSMoGrid/issues/515) - Update concept in developers' documentation [#517](https://github.com/ie3-institute/OSMoGrid/issues/517) - Enhance documentation regarding overpass examples [#494](https://github.com/ie3-institute/OSMoGrid/issues/494) +- Upgraded to `scala3` [#575](https://github.com/ie3-institute/OSMoGrid/issues/575) ### Fixed - Fixed bug in `LvGridGeneratorSupport` [#388](https://github.com/ie3-institute/OSMoGrid/issues/388) diff --git a/build.gradle b/build.gradle index c53062b1..cdce761b 100644 --- a/build.gradle +++ b/build.gradle @@ -16,8 +16,8 @@ plugins { ext { javaVersion = JavaVersion.VERSION_17 - scalaVersion = '2.13' - scalaBinaryVersion = '2.13.16' + scalaVersion = '3' + scalaBinaryVersion = '3.7.0' pekkoVersion = '1.1.3' tscfgVersion = '0.9.995' @@ -63,7 +63,7 @@ dependencies { scalaCompilerPlugin "com.sksamuel.scapegoat:scalac-scapegoat-plugin_${scalaBinaryVersion}:${scapegoatVersion}" // scala core - implementation "org.scala-lang:scala-library:${scalaBinaryVersion}" + implementation "org.scala-lang:scala3-library_3:${scalaBinaryVersion}" implementation group: 'org.scala-lang.modules', name: "scala-parallel-collections_${scalaVersion}", version: '1.2.0' // pekko @@ -84,15 +84,14 @@ dependencies { // ie³ power system utils - implementation('com.github.ie3-institute:PowerSystemUtils:2.2.1') { + implementation('com.github.ie3-institute:PowerSystemUtils:3.1.0') { exclude group: 'org.slf4j' exclude group: 'org.apache.logging.log4j' exclude group: 'com.github.ie3-institute' - exclude group: 'com.github.johanneshiry', module: 'OSMonaut' } // ie³ power system data model - implementation('com.github.ie3-institute:PowerSystemDataModel:6.0.0') { + implementation('com.github.ie3-institute:PowerSystemDataModel:7.0.0') { exclude group: 'org.slf4j' exclude group: 'org.apache.logging.log4j' exclude group: 'com.github.ie3-institute' @@ -126,7 +125,6 @@ tasks.withType(ScalaCompile) { "-P:scapegoat:dataDir:" + layout.buildDirectory.dir("reports/scapegoat/src/").get(), "-P:scapegoat:disabledInspections:VariableShadowing", "-P:scapegoat:overrideLevels:LonelySealedTrait=warning", - "-P:scapegoat:ignoredFiles:.*/SimonaConfig.scala" // see scapegoat-sbt page for this param ] } diff --git a/gradle/scripts/scoverage.gradle b/gradle/scripts/scoverage.gradle index dd00c6aa..40cc3570 100644 --- a/gradle/scripts/scoverage.gradle +++ b/gradle/scripts/scoverage.gradle @@ -4,7 +4,6 @@ scoverage { scoverageVersion = "2.3.0" - scoverageScalaVersion = scalaBinaryVersion coverageOutputHTML = false coverageOutputXML = true coverageOutputCobertura = false diff --git a/src/main/scala/edu/ie3/osmogrid/graph/OsmGraph.scala b/src/main/scala/edu/ie3/osmogrid/graph/OsmGraph.scala index 94e3f07d..12a2c5ea 100644 --- a/src/main/scala/edu/ie3/osmogrid/graph/OsmGraph.scala +++ b/src/main/scala/edu/ie3/osmogrid/graph/OsmGraph.scala @@ -24,7 +24,9 @@ import java.util import java.util.function.Supplier import javax.measure.Quantity import javax.measure.quantity.Length -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* +import scala.util.boundary +import scala.util.boundary.{Label, break} @SerialVersionUID(-2797654003980753341L) class OsmGraph( @@ -141,57 +143,46 @@ class OsmGraph( def containsEdgeIntersection(): Boolean = { val edges = edgeSet().asScala - val connections: util.List[(DistanceWeightedEdge, DistanceWeightedEdge)] = - new util.ArrayList[(DistanceWeightedEdge, DistanceWeightedEdge)] - // algorithm to check if two edges intersects each other - edges.foreach(edgeA => { - val sourceA = getEdgeSource(edgeA) - val targetA = getEdgeTarget(edgeA) - - edges.foreach(edgeB => { - // an edge cannot intersect itself, therefore these combination are not tested - if (edgeA != edgeB) { - // two combinations possible - val t1 = (edgeA, edgeB) - val t2 = (edgeB, edgeA) - - // check if the possible combinations are already tested - if (!connections.contains(t1) && !connections.contains(t2)) { - connections.add(t1) - - val sourceB = getEdgeSource(edgeB) - val targetB = getEdgeTarget(edgeB) - - val lineA = - getLineSegmentBetweenNodes(sourceA, targetA) - val lineB = - getLineSegmentBetweenNodes(sourceB, targetB) - - // checks if the two line intersects each other - val intersection = hasIntersection(lineA, lineB) - - if (intersection) { - return true - } - } + boundary { + for { + (edgeA, i) <- edges.zipWithIndex + edgeB <- edges.drop(i + 1) + } { + val sourceA = getEdgeSource(edgeA) + val targetA = getEdgeTarget(edgeA) + + val sourceB = getEdgeSource(edgeB) + val targetB = getEdgeTarget(edgeB) + + val lineA = + getLineSegmentBetweenNodes(sourceA, targetA) + val lineB = + getLineSegmentBetweenNodes(sourceB, targetB) + + // checks if the two line intersects each other + val intersection = hasIntersection(lineA, lineB) + + if (intersection) { + break(true) } - }) - }) - - false + } + false + } } /** Returns true if at least one vertex of this graph is connected to more * than two edges. */ def tooManyVertexConnections(): Boolean = { - vertexSet().asScala.foreach { v => - if (edgesOf(v).size() > 2) { - return true + boundary { + vertexSet().asScala.foreach { v => + if (edgesOf(v).size() > 2) { + break(true) + } } + false } - false } /** Uses the given [[Polygon]] to create a subgraph that only contains diff --git a/src/main/scala/edu/ie3/osmogrid/io/input/OsmSource.scala b/src/main/scala/edu/ie3/osmogrid/io/input/OsmSource.scala index a26d18cd..0a6b6cbc 100644 --- a/src/main/scala/edu/ie3/osmogrid/io/input/OsmSource.scala +++ b/src/main/scala/edu/ie3/osmogrid/io/input/OsmSource.scala @@ -35,7 +35,7 @@ object OsmSource { final case class PbfFileSource( filePath: String, - ctx: ActorContext[_], + ctx: ActorContext[?], ) extends OsmSource { def read( diff --git a/src/main/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupport.scala b/src/main/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupport.scala index 862f8835..38e6c29f 100644 --- a/src/main/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupport.scala +++ b/src/main/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupport.scala @@ -7,15 +7,20 @@ package edu.ie3.osmogrid.lv import com.typesafe.scalalogging.LazyLogging -import edu.ie3.osmogrid.exception.OsmDataException +import edu.ie3.osmogrid.exception.{InputDataException, OsmDataException} import edu.ie3.osmogrid.graph.OsmGraph import edu.ie3.osmogrid.model.OsmoGridModel import edu.ie3.osmogrid.model.OsmoGridModel.{EnhancedOsmEntity, LvOsmoGridModel} import edu.ie3.util.geo.GeoUtils import edu.ie3.util.geo.GeoUtils.{buildCoordinate, orthogonalProjection} -import edu.ie3.util.geo.RichGeometries.{RichCoordinate, RichPolygon} +import edu.ie3.util.geo.RichGeometries.{ + calcAreaOnEarth, + haversineDistance, + isBetween, +} import edu.ie3.util.osm.model.OsmEntity.Way.ClosedWay import edu.ie3.util.osm.model.OsmEntity.{Node, Way} +import edu.ie3.util.quantities.QuantityUtils.asKiloWatt import edu.ie3.util.quantities.interfaces.Irradiance import org.jgrapht.alg.connectivity.ConnectivityInspector import org.locationtech.jts.geom.Coordinate @@ -27,12 +32,10 @@ import utils.OsmoGridUtils.{ safeBuildPolygon, } -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble - import java.util.UUID import javax.measure.quantity.{Length, Power} import scala.collection.parallel.ParSeq -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* import scala.util.{Success, Try} object LvGraphGeneratorSupport extends LazyLogging { @@ -281,8 +284,10 @@ object LvGraphGeneratorSupport extends LazyLogging { coordinateA, coordinateB, 1e-3, - ) && ((orthogonalPt haversineDistance coordinateA) isGreaterThan minDistance) - && ((orthogonalPt haversineDistance coordinateB) isGreaterThan minDistance) + ) && orthogonalPt + .haversineDistance(coordinateA) + .isGreaterThan(minDistance) + && orthogonalPt.haversineDistance(coordinateB).isGreaterThan(minDistance) ) { val closestNode = Node( id = UUID.randomUUID().getMostSignificantBits, diff --git a/src/main/scala/edu/ie3/osmogrid/lv/LvGridGenerator.scala b/src/main/scala/edu/ie3/osmogrid/lv/LvGridGenerator.scala index 4b80bac8..5a87cd9b 100644 --- a/src/main/scala/edu/ie3/osmogrid/lv/LvGridGenerator.scala +++ b/src/main/scala/edu/ie3/osmogrid/lv/LvGridGenerator.scala @@ -13,7 +13,7 @@ import edu.ie3.osmogrid.exception.IllegalStateException import edu.ie3.osmogrid.guardian.run.RunGuardian import edu.ie3.osmogrid.lv.LvGraphGeneratorSupport.buildConnectedGridGraphs import edu.ie3.osmogrid.lv.LvGridGeneratorSupport.buildGrid -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.{asKiloVolt, asWattPerSquareMetre} import org.apache.pekko.actor.typed.scaladsl.Behaviors import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units diff --git a/src/main/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupport.scala b/src/main/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupport.scala index fd7b0bae..79f7b0f7 100644 --- a/src/main/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupport.scala +++ b/src/main/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupport.scala @@ -69,7 +69,7 @@ object LvGridGeneratorSupport extends LazyLogging { * @param mvVoltage * the rated medium voltage of the grid to build * @param considerHouseConnectionPoints - * whether or not to build distinct lines to houses + * whether to build distinct lines to houses * @param loadSimultaneousFactor * simultaneous factor for loads * @param lineType @@ -93,7 +93,7 @@ object LvGridGeneratorSupport extends LazyLogging { val nodesWithBuildings: ParMap[Node, BuildingGraphConnection] = buildingGraphConnections.map(bgc => (bgc.graphConnectionNode, bgc)).toMap - val nodeCreator = buildNode(lvVoltage) _ + val nodeCreator = buildNode(lvVoltage) val gridElements = osmGraph .vertexSet() @@ -120,7 +120,7 @@ object LvGridGeneratorSupport extends LazyLogging { val loadCreator = buildLoad( "Load of building: " + buildingGraphConnection.building.entity.id.toString, buildingGraphConnection.buildingPower, - ) _ + ) if (considerHouseConnectionPoints) { val osmBuildingConnectionNode = buildingGraphConnection.buildingConnectionNode.getOrElse( diff --git a/src/main/scala/edu/ie3/osmogrid/lv/region_coordinator/LvRegionCoordinator.scala b/src/main/scala/edu/ie3/osmogrid/lv/region_coordinator/LvRegionCoordinator.scala index ee8f3506..34fffeee 100644 --- a/src/main/scala/edu/ie3/osmogrid/lv/region_coordinator/LvRegionCoordinator.scala +++ b/src/main/scala/edu/ie3/osmogrid/lv/region_coordinator/LvRegionCoordinator.scala @@ -8,6 +8,7 @@ package edu.ie3.osmogrid.lv.region_coordinator import edu.ie3.osmogrid.io.input.BoundaryAdminLevel import edu.ie3.osmogrid.lv.{GenerateLvGrid, LvGridGenerator} +import edu.ie3.osmogrid.model.OsmoGridModel import org.apache.pekko.actor.typed.scaladsl.Behaviors import java.util.UUID @@ -45,7 +46,7 @@ object LvRegionCoordinator { ) if (partitionedAreas.isEmpty) Iterable.single(osmoGridModel) - else partitionedAreas.values + else partitionedAreas.values.seq } val levels = BoundaryAdminLevel diff --git a/src/main/scala/edu/ie3/osmogrid/model/OsmoGridModel.scala b/src/main/scala/edu/ie3/osmogrid/model/OsmoGridModel.scala index 4c08968d..f1ddf1ae 100644 --- a/src/main/scala/edu/ie3/osmogrid/model/OsmoGridModel.scala +++ b/src/main/scala/edu/ie3/osmogrid/model/OsmoGridModel.scala @@ -177,7 +177,7 @@ object OsmoGridModel { models: ParSeq[LvOsmoGridModel], filterNodes: Boolean = true, ): Option[OsmoGridModel] = { - models.headOption.flatMap { lvHeadModel: LvOsmoGridModel => + models.headOption.flatMap { (lvHeadModel: LvOsmoGridModel) => if (models.forall(_.filter == lvHeadModel.filter)) { Some( LvOsmoGridModel( diff --git a/src/main/scala/edu/ie3/osmogrid/mv/VoronoiPolygonSupport.scala b/src/main/scala/edu/ie3/osmogrid/mv/VoronoiPolygonSupport.scala index 03b19f49..26d1356c 100644 --- a/src/main/scala/edu/ie3/osmogrid/mv/VoronoiPolygonSupport.scala +++ b/src/main/scala/edu/ie3/osmogrid/mv/VoronoiPolygonSupport.scala @@ -191,18 +191,24 @@ object VoronoiPolygonSupport { builder.setSites(nodes.asJava) /* finds all subdivisions and returns them as polygons */ - builder.getSubdivision + val geometries = builder.getSubdivision .getVoronoiCellPolygons( GeoUtils.DEFAULT_GEOMETRY_FACTORY ) /* necessary to get proper polygons */ .asScala - .toList match { - case polygons: List[Polygon] => polygons - case wrongType => - throw new GeoException( - s"Expected a list of polygons as a result, but got $wrongType instead." - ) + .toList + + val wrongTypes = geometries.filter(geom => !geom.isInstanceOf[Polygon]) + + if (wrongTypes.nonEmpty) { + throw new GeoException( + s"Expected only a list of polygons as a result, but also got $wrongTypes." + ) + } + + geometries.map { case geom: Polygon => + geom } } } diff --git a/src/main/scala/utils/Clustering.scala b/src/main/scala/utils/Clustering.scala index 7a0ade69..7309d8a0 100644 --- a/src/main/scala/utils/Clustering.scala +++ b/src/main/scala/utils/Clustering.scala @@ -212,10 +212,11 @@ object Clustering { transformer2WTypeInput, ) - val nodes = gridElements.nodes.values.map(NodeWrapper).toIndexedSeq + val nodes = gridElements.nodes.values.map(NodeWrapper.apply).toIndexedSeq val connections = Connections(gridElements, lines.toSeq) - val osmSubstations = gridElements.substations.values.map(NodeWrapper).toSet + val osmSubstations = + gridElements.substations.values.map(NodeWrapper.apply).toSet val additionalSubstationCount = substationCount - osmSubstations.size diff --git a/src/main/scala/utils/Connections.scala b/src/main/scala/utils/Connections.scala index 4c023b3c..072a5ae5 100644 --- a/src/main/scala/utils/Connections.scala +++ b/src/main/scala/utils/Connections.scala @@ -136,8 +136,10 @@ object Connections extends LazyLogging { // adding all nodes to the graph val nodes: Set[NodeWrapper] = - (elements.nodes.values.map(NodeWrapper) ++ elements.substations.values - .map(NodeWrapper)).toSet + (elements.nodes.values.map( + NodeWrapper.apply + ) ++ elements.substations.values + .map(NodeWrapper.apply)).toSet nodes.foreach { n => graph.addVertex(n) } lines.foreach { line => diff --git a/src/main/scala/utils/GridConversion.scala b/src/main/scala/utils/GridConversion.scala index 50249c17..5a81b34e 100644 --- a/src/main/scala/utils/GridConversion.scala +++ b/src/main/scala/utils/GridConversion.scala @@ -384,7 +384,7 @@ object GridConversion { // calculate the distance to each osm node val sortedList = osmNodes - .map { node: Node => + .map { (node: Node) => ( node, GeoUtils.calcHaversine(coordinate, node.coordinate.getCoordinate), diff --git a/src/main/scala/utils/OsmoGridUtils.scala b/src/main/scala/utils/OsmoGridUtils.scala index 0ec08bf3..e8aa45d5 100644 --- a/src/main/scala/utils/OsmoGridUtils.scala +++ b/src/main/scala/utils/OsmoGridUtils.scala @@ -17,12 +17,12 @@ import edu.ie3.osmogrid.graph.OsmGraph import edu.ie3.osmogrid.guardian.run.RunGuardian import edu.ie3.osmogrid.io.input.AssetInformation import edu.ie3.util.geo.GeoUtils -import edu.ie3.util.geo.RichGeometries.RichPolygon +import edu.ie3.util.geo.RichGeometries.containsCoordinate import edu.ie3.util.osm.OsmUtils.GeometryUtils.buildPolygon import edu.ie3.util.osm.model.OsmEntity.Way.ClosedWay import edu.ie3.util.osm.model.OsmEntity.{Node, Way} import edu.ie3.util.quantities.PowerSystemUnits -import edu.ie3.util.quantities.QuantityUtils.{RichQuantity, RichQuantityDouble} +import edu.ie3.util.quantities.QuantityUtils.{asKiloVolt, asPu, round} import edu.ie3.util.quantities.interfaces.Irradiance import org.locationtech.jts.algorithm.Centroid import org.locationtech.jts.geom.{Coordinate, Polygon} @@ -32,7 +32,7 @@ import tech.units.indriya.unit.Units import java.util.UUID import javax.measure.quantity.{Area, Power} import scala.collection.parallel.ParSeq -import scala.jdk.CollectionConverters._ +import scala.jdk.CollectionConverters.* import scala.util.{Failure, Success} object OsmoGridUtils { @@ -174,7 +174,7 @@ object OsmoGridUtils { Option(new Centroid(hull).getCentroid) match { case Some(coordinate) => val sortedList = mvNodes - .map { node: NodeInput => + .map { (node: NodeInput) => ( node, GeoUtils.calcHaversine( diff --git a/src/test/scala/edu/ie3/osmogrid/guardian/OsmoGridGuardianSpec.scala b/src/test/scala/edu/ie3/osmogrid/guardian/OsmoGridGuardianSpec.scala index af6f13ce..02bfacbd 100644 --- a/src/test/scala/edu/ie3/osmogrid/guardian/OsmoGridGuardianSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/guardian/OsmoGridGuardianSpec.scala @@ -35,7 +35,7 @@ class OsmoGridGuardianSpec extends UnitSpec { /* Check if the right child is spawned */ idleTestKit - .expectEffectType[Spawned[_]] + .expectEffectType[Spawned[?]] .childName shouldBe s"RunGuardian_$runId" } diff --git a/src/test/scala/edu/ie3/osmogrid/guardian/run/SubGridHandlingSpec.scala b/src/test/scala/edu/ie3/osmogrid/guardian/run/SubGridHandlingSpec.scala index 860727a7..e90e6a09 100644 --- a/src/test/scala/edu/ie3/osmogrid/guardian/run/SubGridHandlingSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/guardian/run/SubGridHandlingSpec.scala @@ -75,10 +75,10 @@ class SubGridHandlingSpec empty match { case Failure(exception: GridException) => exception.msg shouldBe "Error during creating of joint grid container, because no grids were found." + case Failure(exception) => + fail(s"This test should receive a GridException!") case Success(value) => - throw new Error( - s"This test should not pass! But received values: $value" - ) + fail(s"This test should not pass! But received values: $value") } } diff --git a/src/test/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupportSpec.scala b/src/test/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupportSpec.scala index 437484ec..f153838c 100644 --- a/src/test/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupportSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/lv/LvGraphGeneratorSupportSpec.scala @@ -16,10 +16,14 @@ import edu.ie3.osmogrid.model.OsmoGridModel.EnhancedOsmEntity import edu.ie3.test.common.UnitSpec import edu.ie3.util.geo.GeoUtils import edu.ie3.util.geo.GeoUtils.orthogonalProjection -import edu.ie3.util.geo.RichGeometries.RichCoordinate +import edu.ie3.util.geo.RichGeometries.{haversineDistance, isBetween} import edu.ie3.util.osm.model.OsmEntity.Node import edu.ie3.util.quantities.QuantityMatchers.equalWithTolerance -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.{ + asKiloWatt, + asKilometre, + asWattPerSquareMetre, +} import org.jgrapht.alg.connectivity.ConnectivityInspector import org.locationtech.jts.geom.Coordinate import org.scalatestplus.mockito.MockitoSugar.mock diff --git a/src/test/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupportSpec.scala b/src/test/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupportSpec.scala index 1fed345a..28326612 100644 --- a/src/test/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupportSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/lv/LvGridGeneratorSupportSpec.scala @@ -7,12 +7,13 @@ package edu.ie3.osmogrid.lv import edu.ie3.datamodel.models.input.connector.`type`.LineTypeInput +import edu.ie3.datamodel.models.input.container.SubGridContainer import edu.ie3.datamodel.models.voltagelevels.GermanVoltageLevelUtils import edu.ie3.osmogrid.lv.LvGraphGeneratorSupport.buildConnectedGridGraphs import edu.ie3.osmogrid.lv.LvGridGeneratorSupport.buildGrid import edu.ie3.osmogrid.model.OsmTestData import edu.ie3.test.common.{GridSupport, UnitSpec} -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.* import java.util.UUID import scala.collection.parallel.CollectionConverters.ImmutableSeqIsParallelizable @@ -64,9 +65,11 @@ class LvGridGeneratorSupportSpec trafo_10kV_to_lv, "testGrid", ) match { - case List(subGridContainer) => - subGridContainer.getRawGrid.getNodes.size() shouldBe 3 - subGridContainer.getRawGrid.getLines.size() shouldBe 1 + case List(subGridContainer: SubGridContainer) => + val rawGrid = subGridContainer.getRawGrid + + rawGrid.getNodes.size() shouldBe 3 + rawGrid.getLines.size() shouldBe 1 subGridContainer.getSystemParticipants.getLoads.size() shouldBe 2 case Nil => fail("No grid received!") diff --git a/src/test/scala/edu/ie3/osmogrid/lv/region_coordinator/LvTestModel.scala b/src/test/scala/edu/ie3/osmogrid/lv/region_coordinator/LvTestModel.scala index 98704270..64057372 100644 --- a/src/test/scala/edu/ie3/osmogrid/lv/region_coordinator/LvTestModel.scala +++ b/src/test/scala/edu/ie3/osmogrid/lv/region_coordinator/LvTestModel.scala @@ -15,7 +15,7 @@ import edu.ie3.osmogrid.io.input._ import edu.ie3.osmogrid.model.OsmoGridModel.LvOsmoGridModel import edu.ie3.osmogrid.model.SourceFilter.LvFilter import edu.ie3.test.common.UnitSpec -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.* import org.apache.pekko.actor.testkit.typed.scaladsl.{ ActorTestKit, ScalaTestWithActorTestKit, diff --git a/src/test/scala/edu/ie3/osmogrid/utils/ClusteringSpec.scala b/src/test/scala/edu/ie3/osmogrid/utils/ClusteringSpec.scala index d007b694..98c60b59 100644 --- a/src/test/scala/edu/ie3/osmogrid/utils/ClusteringSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/utils/ClusteringSpec.scala @@ -61,8 +61,8 @@ class ClusteringSpec extends UnitSpec with ClusterTestData { val clustering = Clustering.setup(elements, lines, trafo_10kV_to_lv, 0.5) val clusters = clustering invokePrivate createClusters( - elements.substations.values.map(NodeWrapper).toSet, - elements.nodes.values.map(NodeWrapper).toSet, + elements.substations.values.map(NodeWrapper.apply).toSet, + elements.nodes.values.map(NodeWrapper.apply).toSet, ) val map = clusters.map { c => c.substation -> c }.toMap @@ -106,7 +106,7 @@ class ClusteringSpec extends UnitSpec with ClusterTestData { connections, Set(p1_1), additionalSubstation, - elements.nodes.values.map(NodeWrapper).toSet, + elements.nodes.values.map(NodeWrapper.apply).toSet, 9, 2, ) @@ -142,7 +142,7 @@ class ClusteringSpec extends UnitSpec with ClusterTestData { connections, Set(p1_1), Set(p2_1), - elements.nodes.values.map(NodeWrapper).toSet, + elements.nodes.values.map(NodeWrapper.apply).toSet, 9, 2, ) diff --git a/src/test/scala/edu/ie3/osmogrid/utils/OsmoGridUtilsSpec.scala b/src/test/scala/edu/ie3/osmogrid/utils/OsmoGridUtilsSpec.scala index 012fbfdb..a876d9db 100644 --- a/src/test/scala/edu/ie3/osmogrid/utils/OsmoGridUtilsSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/utils/OsmoGridUtilsSpec.scala @@ -9,7 +9,7 @@ package edu.ie3.osmogrid.utils import edu.ie3.test.common.{GridSupport, MvTestData, OsmTestData, UnitSpec} import edu.ie3.util.geo.GeoUtils.buildCoordinate import edu.ie3.util.quantities.PowerSystemUnits -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.{asKiloVolt, asKiloWatt} import tech.units.indriya.quantity.Quantities import tech.units.indriya.unit.Units import utils.OsmoGridUtils.{ diff --git a/src/test/scala/edu/ie3/osmogrid/utils/SolverSpec.scala b/src/test/scala/edu/ie3/osmogrid/utils/SolverSpec.scala index ba313c3e..ed26dbf4 100644 --- a/src/test/scala/edu/ie3/osmogrid/utils/SolverSpec.scala +++ b/src/test/scala/edu/ie3/osmogrid/utils/SolverSpec.scala @@ -164,7 +164,7 @@ class SolverSpec extends UnitSpec with MvTestData { usedConnections shouldBe List(connectionA, connectionB).flatten removedEdge shouldBe expectedRemovedEdgeA addedWeight.getValue.doubleValue() shouldBe weightA - case _ => throw new Error("This should not happen!") + case null => throw new Error("This should not happen!") } list(1) match { @@ -180,7 +180,7 @@ class SolverSpec extends UnitSpec with MvTestData { usedConnections shouldBe List(connectionC, connectionA).flatten removedEdge shouldBe expectedRemovedEdgeB addedWeight.getValue.doubleValue() shouldBe weightB - case _ => throw new Error("This should not happen!") + case null => throw new Error("This should not happen!") } } } @@ -219,7 +219,7 @@ class SolverSpec extends UnitSpec with MvTestData { addedWeight.isEquivalentTo( stepResultOptionsForThirdStep(0).addedWeight ) shouldBe true - case _ => throw new Error("This should not happen!") + case null => throw new Error("This should not happen!") } stepResultOptions(1) match { @@ -239,7 +239,7 @@ class SolverSpec extends UnitSpec with MvTestData { addedWeight.isEquivalentTo( stepResultOptionsForThirdStep(1).addedWeight ) shouldBe true - case _ => throw new Error("This should not happen!") + case null => throw new Error("This should not happen!") } } diff --git a/src/test/scala/edu/ie3/test/common/ClusterTestData.scala b/src/test/scala/edu/ie3/test/common/ClusterTestData.scala index 4c914f8a..07a611c8 100644 --- a/src/test/scala/edu/ie3/test/common/ClusterTestData.scala +++ b/src/test/scala/edu/ie3/test/common/ClusterTestData.scala @@ -17,7 +17,7 @@ import edu.ie3.osmogrid.lv.LvGridGeneratorSupport.GridElements import edu.ie3.util.geo.GeoUtils import edu.ie3.util.geo.GeoUtils.calcHaversine import edu.ie3.util.osm.model.OsmEntity.Node -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.{asKiloVoltAmpere, asPu} import utils.Clustering.NodeWrapper import utils.GridConversion.{buildLine, buildLoad} diff --git a/src/test/scala/edu/ie3/test/common/GridSupport.scala b/src/test/scala/edu/ie3/test/common/GridSupport.scala index cef5ffae..80a78700 100644 --- a/src/test/scala/edu/ie3/test/common/GridSupport.scala +++ b/src/test/scala/edu/ie3/test/common/GridSupport.scala @@ -43,7 +43,7 @@ import edu.ie3.datamodel.utils.GridAndGeoUtils import edu.ie3.osmogrid.io.input.AssetInformation import edu.ie3.util.geo.GeoUtils._ import edu.ie3.util.quantities.PowerSystemUnits._ -import edu.ie3.util.quantities.QuantityUtils.RichQuantityDouble +import edu.ie3.util.quantities.QuantityUtils.* import org.locationtech.jts.geom.Point import org.scalatestplus.mockito.MockitoSugar.mock import tech.units.indriya.ComparableQuantity