Skip to content

Commit a102758

Browse files
committed
add tests to generated Scala3 code
1 parent bce71bb commit a102758

File tree

7 files changed

+71
-0
lines changed

7 files changed

+71
-0
lines changed

scala3/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*.class
2+
*.log

scala3/.scalafmt.conf

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
version = 3.5.8
2+
runner.dialect = scala3

scala3/build.sbt

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
val zioVersion = "2.0.22"
2+
3+
lazy val root = project
4+
.in(file("."))
5+
.settings(
6+
inThisBuild(
7+
List(
8+
name := "scala3",
9+
organization := "examples",
10+
version := "0.0.1",
11+
scalaVersion := "3.4.1"
12+
)
13+
),
14+
libraryDependencies ++= Seq(
15+
"dev.zio" %% "zio" % zioVersion,
16+
"dev.zio" %% "zio-test" % zioVersion % Test,
17+
"dev.zio" %% "zio-test-sbt" % zioVersion % Test,
18+
"dev.zio" %% "zio-test-junit" % zioVersion % Test,
19+
"dev.zio" %% "zio-test-magnolia" % zioVersion % Test
20+
),
21+
testFrameworks := Seq(new TestFramework("zio.test.sbt.ZTestFramework"))
22+
)

scala3/project/build.properties

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sbt.version=1.9.9

scala3/project/plugins.sbt

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.2")
2+
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package examples
2+
3+
object adts:
4+
5+
sealed trait Rgb
6+
case object Red extends Rgb
7+
case object Green extends Rgb
8+
case object Blue extends Rgb
9+
10+
sealed trait Bool
11+
case object True extends Bool
12+
case object False extends Bool
13+
14+
final case class RgbPair(snd: Bool, fst: Rgb)
15+
16+
def idRgb(theArg: Rgb): Rgb = theArg
17+
18+
def constRgbPair(rgbArg: Rgb, rgbPairArg: RgbPair): RgbPair = rgbPairArg
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package examples
2+
3+
import zio.test.Assertion.equalTo
4+
import zio.test.junit.JUnitRunnableSpec
5+
import zio.test.{ assert, suite, test }
6+
7+
import examples.adts.{ Rgb, Red, Green, Blue, idRgb }
8+
import examples.adts.{ RgbPair, constRgbPair }
9+
import examples.adts.{ Bool, True, False }
10+
11+
object RgbSpec extends JUnitRunnableSpec:
12+
13+
def spec = suite("Test Rgb")(
14+
test("identity on Rgb") {
15+
assert(idRgb(Red))(equalTo(Red))
16+
assert(idRgb(Green))(equalTo(Green))
17+
assert(idRgb(Blue))(equalTo(Blue))
18+
},
19+
test ("const on RgbPair") {
20+
assert( constRgbPair(Red, RgbPair(True, Blue) ) )(equalTo( RgbPair(True, Blue) ))
21+
assert( constRgbPair(Green, RgbPair(False, Red) ) )(equalTo( RgbPair(False, Red) ))
22+
assert( constRgbPair(Blue, RgbPair(True, Blue) ) )(equalTo( RgbPair(True, Blue) ))
23+
}
24+
)

0 commit comments

Comments
 (0)