diff --git a/.travis.yml b/.travis.yml index 444e664c..d4f8453c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: scala scala: -- 2.11.11 +- 2.12.10 jdk: - openjdk8 script: diff --git a/build.sbt b/build.sbt index a79c9ddd..cdf149af 100644 --- a/build.sbt +++ b/build.sbt @@ -1,4 +1,6 @@ -val scalaExercisesV = "0.4.0-SNAPSHOT" +import ProjectPlugin.autoImport._ + +val scalaExercisesV = "0.5.0-SNAPSHOT" def dep(artifactId: String) = "org.scala-exercises" %% artifactId % scalaExercisesV @@ -9,9 +11,10 @@ lazy val `scala-tutorial` = (project in file(".")) libraryDependencies ++= Seq( dep("exercise-compiler"), dep("definitions"), - %%("scalatest"), - %%("scalacheck"), - %%("scheckShapeless") + %%("shapeless", V.shapeless), + %%("scalatest", V.scalatest), + %%("scalacheck", V.scalacheck), + "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % V.scalacheckShapeless ) ) diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 17c1b2ce..ee26fe56 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -1,5 +1,5 @@ -import de.heikoseeberger.sbtheader.HeaderPattern import de.heikoseeberger.sbtheader.HeaderPlugin.autoImport._ +import de.heikoseeberger.sbtheader.License._ import sbt.Keys._ import sbt._ import sbtorgpolicies._ @@ -12,6 +12,19 @@ object ProjectPlugin extends AutoPlugin { override def requires: Plugins = plugins.JvmPlugin && OrgPoliciesPlugin + object autoImport { + + lazy val V = new { + val scala212: String = "2.12.10" + val shapeless: String = "2.3.3" + val scalatest: String = "3.0.8" + val scalacheck: String = "1.14.2" + val scalacheckShapeless: String = "1.2.3" + } + } + + import autoImport._ + override def projectSettings: Seq[Def.Setting[_]] = Seq( description := "Scala Exercises: The path to enlightenment", @@ -25,23 +38,17 @@ object ProjectPlugin extends AutoPlugin { organizationEmail = "hello@47deg.com" ), orgLicenseSetting := ApacheLicense, - scalaVersion := "2.11.11", + scalaVersion := V.scala212, scalaOrganization := "org.scala-lang", - crossScalaVersions := Seq("2.11.11"), resolvers ++= Seq( Resolver.mavenLocal, Resolver.sonatypeRepo("snapshots"), Resolver.sonatypeRepo("releases") ), scalacOptions := sbtorgpolicies.model.scalacCommonOptions, - headers := Map( - "scala" -> (HeaderPattern.cStyleBlockComment, - s"""|/* - | * scala-exercises - ${name.value} - | * Copyright (C) 2015-2016 47 Degrees, LLC. - | */ - | - |""".stripMargin) - ) + headerLicense := Some(Custom(s"""| scala-exercises - ${name.value} + | Copyright (C) 2015-2019 47 Degrees, LLC. + | + |""".stripMargin)) ) } diff --git a/project/build.properties b/project/build.properties index 5f32afe7..1fc4b809 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=0.13.13 \ No newline at end of file +sbt.version=1.2.8 \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt index c3cd9d21..5bd5bc76 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,5 +2,5 @@ resolvers ++= Seq( Resolver.sonatypeRepo("snapshots") ) -addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.4.0-SNAPSHOT", "0.13", "2.10") -addSbtPlugin("com.47deg" % "sbt-org-policies" % "0.5.13") +addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.5.0-SNAPSHOT") +addSbtPlugin("com.47deg" % "sbt-org-policies" % "0.12.0-M3") \ No newline at end of file diff --git a/src/main/scala/scalatutorial/ScalaTutorial.scala b/src/main/scala/scalatutorial/ScalaTutorial.scala index 359c663e..377deb45 100644 --- a/src/main/scala/scalatutorial/ScalaTutorial.scala +++ b/src/main/scala/scalatutorial/ScalaTutorial.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial diff --git a/src/main/scala/scalatutorial/sections/ClassesVsCaseClasses.scala b/src/main/scala/scalatutorial/sections/ClassesVsCaseClasses.scala index 69d9511a..df0bc58d 100644 --- a/src/main/scala/scalatutorial/sections/ClassesVsCaseClasses.scala +++ b/src/main/scala/scalatutorial/sections/ClassesVsCaseClasses.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/DefinitionsAndEvaluation.scala b/src/main/scala/scalatutorial/sections/DefinitionsAndEvaluation.scala index db841cdb..34258e5d 100644 --- a/src/main/scala/scalatutorial/sections/DefinitionsAndEvaluation.scala +++ b/src/main/scala/scalatutorial/sections/DefinitionsAndEvaluation.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/FunctionalLoops.scala b/src/main/scala/scalatutorial/sections/FunctionalLoops.scala index 75695760..496650f4 100644 --- a/src/main/scala/scalatutorial/sections/FunctionalLoops.scala +++ b/src/main/scala/scalatutorial/sections/FunctionalLoops.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/HigherOrderFunctions.scala b/src/main/scala/scalatutorial/sections/HigherOrderFunctions.scala index 74a08a9a..f738c269 100644 --- a/src/main/scala/scalatutorial/sections/HigherOrderFunctions.scala +++ b/src/main/scala/scalatutorial/sections/HigherOrderFunctions.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections @@ -158,10 +159,9 @@ object HigherOrderFunctions extends ScalaTutorialSection { */ def tailRecSum(res0: Int, res1: Int): Unit = { def sum(f: Int => Int, a: Int, b: Int): Int = { - def loop(x: Int, acc: Int): Int = { + def loop(x: Int, acc: Int): Int = if (x > b) acc else loop(x + res0, acc + f(x)) - } loop(a, res1) } sum(x => x, 1, 10) shouldBe 55 diff --git a/src/main/scala/scalatutorial/sections/ImperativeProgramming.scala b/src/main/scala/scalatutorial/sections/ImperativeProgramming.scala index aa273211..1323496f 100644 --- a/src/main/scala/scalatutorial/sections/ImperativeProgramming.scala +++ b/src/main/scala/scalatutorial/sections/ImperativeProgramming.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/LazyEvaluation.scala b/src/main/scala/scalatutorial/sections/LazyEvaluation.scala index b24398a5..10c0d10d 100644 --- a/src/main/scala/scalatutorial/sections/LazyEvaluation.scala +++ b/src/main/scala/scalatutorial/sections/LazyEvaluation.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/LexicalScopes.scala b/src/main/scala/scalatutorial/sections/LexicalScopes.scala index 14cfe50c..49e4d723 100644 --- a/src/main/scala/scalatutorial/sections/LexicalScopes.scala +++ b/src/main/scala/scalatutorial/sections/LexicalScopes.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/ObjectOrientedProgramming.scala b/src/main/scala/scalatutorial/sections/ObjectOrientedProgramming.scala index c9df0a2b..41c9cbd5 100644 --- a/src/main/scala/scalatutorial/sections/ObjectOrientedProgramming.scala +++ b/src/main/scala/scalatutorial/sections/ObjectOrientedProgramming.scala @@ -1,11 +1,12 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import scalatutorial.utils.{Empty, IntSet, NonEmpty} +import scalatutorial.utils.{Empty, NonEmpty} /** @param name object_oriented_programming */ object ObjectOrientedProgramming extends ScalaTutorialSection { diff --git a/src/main/scala/scalatutorial/sections/PolymorphicTypes.scala b/src/main/scala/scalatutorial/sections/PolymorphicTypes.scala index 2425d0b9..b6baf3e8 100644 --- a/src/main/scala/scalatutorial/sections/PolymorphicTypes.scala +++ b/src/main/scala/scalatutorial/sections/PolymorphicTypes.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/ScalaTutorialSection.scala b/src/main/scala/scalatutorial/sections/ScalaTutorialSection.scala index dc5d0a62..0627ef0d 100644 --- a/src/main/scala/scalatutorial/sections/ScalaTutorialSection.scala +++ b/src/main/scala/scalatutorial/sections/ScalaTutorialSection.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/StandardLibrary.scala b/src/main/scala/scalatutorial/sections/StandardLibrary.scala index 1b223ff0..49051252 100644 --- a/src/main/scala/scalatutorial/sections/StandardLibrary.scala +++ b/src/main/scala/scalatutorial/sections/StandardLibrary.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/StructuringInformation.scala b/src/main/scala/scalatutorial/sections/StructuringInformation.scala index d46703c6..69f8e8f7 100644 --- a/src/main/scala/scalatutorial/sections/StructuringInformation.scala +++ b/src/main/scala/scalatutorial/sections/StructuringInformation.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/SyntacticConveniences.scala b/src/main/scala/scalatutorial/sections/SyntacticConveniences.scala index 99cf0a24..c63bd0b5 100644 --- a/src/main/scala/scalatutorial/sections/SyntacticConveniences.scala +++ b/src/main/scala/scalatutorial/sections/SyntacticConveniences.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections @@ -49,7 +50,7 @@ object SyntacticConveniences extends ScalaTutorialSection { def tuples(res0: (Int, String)): Unit = { def pair(i: Int, s: String): (Int, String) = (i, s) - pair(42, "foo") shouldBe (42, "foo") + pair(42, "foo") shouldBe ((42, "foo")) pair(0, "bar") shouldBe res0 } diff --git a/src/main/scala/scalatutorial/sections/TailRecursion.scala b/src/main/scala/scalatutorial/sections/TailRecursion.scala index 1502f5e8..fe202ef1 100644 --- a/src/main/scala/scalatutorial/sections/TailRecursion.scala +++ b/src/main/scala/scalatutorial/sections/TailRecursion.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/TermsAndTypes.scala b/src/main/scala/scalatutorial/sections/TermsAndTypes.scala index f1ea4900..8b08ffc3 100644 --- a/src/main/scala/scalatutorial/sections/TermsAndTypes.scala +++ b/src/main/scala/scalatutorial/sections/TermsAndTypes.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/sections/TypeClasses.scala b/src/main/scala/scalatutorial/sections/TypeClasses.scala index b5bae96d..5b499c0b 100644 --- a/src/main/scala/scalatutorial/sections/TypeClasses.scala +++ b/src/main/scala/scalatutorial/sections/TypeClasses.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections diff --git a/src/main/scala/scalatutorial/utils/BankAccount.scala b/src/main/scala/scalatutorial/utils/BankAccount.scala index 48370fb7..1201d538 100644 --- a/src/main/scala/scalatutorial/utils/BankAccount.scala +++ b/src/main/scala/scalatutorial/utils/BankAccount.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/main/scala/scalatutorial/utils/IntSet.scala b/src/main/scala/scalatutorial/utils/IntSet.scala index 14219fda..9cbb8dbb 100644 --- a/src/main/scala/scalatutorial/utils/IntSet.scala +++ b/src/main/scala/scalatutorial/utils/IntSet.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/main/scala/scalatutorial/utils/Note.scala b/src/main/scala/scalatutorial/utils/Note.scala index 9ad2914a..a4475457 100644 --- a/src/main/scala/scalatutorial/utils/Note.scala +++ b/src/main/scala/scalatutorial/utils/Note.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/main/scala/scalatutorial/utils/Rational.scala b/src/main/scala/scalatutorial/utils/Rational.scala index f1fbb2ae..bb652ee1 100644 --- a/src/main/scala/scalatutorial/utils/Rational.scala +++ b/src/main/scala/scalatutorial/utils/Rational.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/main/scala/scalatutorial/utils/animals.scala b/src/main/scala/scalatutorial/utils/animals.scala index d1c4593d..73df5032 100644 --- a/src/main/scala/scalatutorial/utils/animals.scala +++ b/src/main/scala/scalatutorial/utils/animals.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/main/scala/scalatutorial/utils/sorting.scala b/src/main/scala/scalatutorial/utils/sorting.scala index 1abc5ebf..68375190 100644 --- a/src/main/scala/scalatutorial/utils/sorting.scala +++ b/src/main/scala/scalatutorial/utils/sorting.scala @@ -1,6 +1,7 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.utils diff --git a/src/test/scala/scalatutorial/sections/ClassesVsCaseClassesSpec.scala b/src/test/scala/scalatutorial/sections/ClassesVsCaseClassesSpec.scala index 46d4ed29..0fa35d77 100644 --- a/src/test/scala/scalatutorial/sections/ClassesVsCaseClassesSpec.scala +++ b/src/test/scala/scalatutorial/sections/ClassesVsCaseClassesSpec.scala @@ -1,25 +1,26 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class ClassesVsCaseClassesSpec extends Spec with Checkers { +class ClassesVsCaseClassesSpec extends RefSpec with Checkers { - def `check creation and manipulation`: Unit = + def `check creation and manipulation`(): Unit = check(Test.testSuccess(ClassesVsCaseClasses.creationAndManipulation _, "C" :: HNil)) - def `check equality`: Unit = + def `check equality`(): Unit = check(Test.testSuccess(ClassesVsCaseClasses.equality _, false :: true :: HNil)) - def `check encoding`: Unit = + def `check encoding`(): Unit = check( Test.testSuccess( ClassesVsCaseClasses.encoding _, diff --git a/src/test/scala/scalatutorial/sections/DefinitionsAndEvaluationSpec.scala b/src/test/scala/scalatutorial/sections/DefinitionsAndEvaluationSpec.scala index 40c1d518..32d24532 100644 --- a/src/test/scala/scalatutorial/sections/DefinitionsAndEvaluationSpec.scala +++ b/src/test/scala/scalatutorial/sections/DefinitionsAndEvaluationSpec.scala @@ -1,25 +1,26 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class DefinitionsAndEvaluationSpec extends Spec with Checkers { +class DefinitionsAndEvaluationSpec extends RefSpec with Checkers { - def `check using square`: Unit = + def `check using square`(): Unit = check(Test.testSuccess(DefinitionsAndEvaluation.usingSquare _, 9.0 :: HNil)) - def `check area exercise`: Unit = + def `check area exercise`(): Unit = check(Test.testSuccess(DefinitionsAndEvaluation.areaExercise _, 314.159 :: HNil)) - def `check triangle area`: Unit = + def `check triangle area`(): Unit = check(Test.testSuccess(DefinitionsAndEvaluation.triangleAreaExercise _, 2.0 :: 15.0 :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/FunctionalLoopsSpec.scala b/src/test/scala/scalatutorial/sections/FunctionalLoopsSpec.scala deleted file mode 100644 index 45aa9cac..00000000 --- a/src/test/scala/scalatutorial/sections/FunctionalLoopsSpec.scala +++ /dev/null @@ -1,21 +0,0 @@ -/* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. - */ - -package scalatutorial.sections - -import org.scalacheck.Shapeless._ -import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers -import shapeless.HNil - -class FunctionalLoopsSpec extends Spec with Checkers { - -// Commented because the implementation is not stack-safe -// def `check factorial`: Unit = { -// check(Test.testSuccess(FunctionalLoops.factorialExercise _, 0 :: 1 :: 1 :: HNil)) -// } - -} diff --git a/src/test/scala/scalatutorial/sections/HigherOrderFunctionsSpec.scala b/src/test/scala/scalatutorial/sections/HigherOrderFunctionsSpec.scala deleted file mode 100644 index 00bf6c03..00000000 --- a/src/test/scala/scalatutorial/sections/HigherOrderFunctionsSpec.scala +++ /dev/null @@ -1,20 +0,0 @@ -/* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. - */ - -package scalatutorial.sections - -import org.scalacheck.Shapeless._ -import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers -import shapeless.HNil - -class HigherOrderFunctionsSpec extends Spec with Checkers { - -// def `check tail rec sum`: Unit = { -// check(Test.testSuccess(HigherOrderFunctions.tailRecSum _, 1 :: 0 :: HNil)) -// } - -} diff --git a/src/test/scala/scalatutorial/sections/ImperativeProgrammingSpec.scala b/src/test/scala/scalatutorial/sections/ImperativeProgrammingSpec.scala index a3ae7b66..50c765a0 100644 --- a/src/test/scala/scalatutorial/sections/ImperativeProgrammingSpec.scala +++ b/src/test/scala/scalatutorial/sections/ImperativeProgrammingSpec.scala @@ -1,24 +1,20 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class ImperativeProgrammingSpec extends Spec with Checkers { +class ImperativeProgrammingSpec extends RefSpec with Checkers { - def `check observational equivalence`: Unit = + def `check observational equivalence`(): Unit = check(Test.testSuccess(ImperativeProgramming.observationalEquivalence _, 10 :: HNil)) -// Disabled because property based testing generates numbers that are too expensive too compute -// def `check factorial`: Unit = { -// check(Test.testSuccess(ImperativeProgramming.factorialExercise _, 1 :: 2 :: 1 :: HNil)) -// } - } diff --git a/src/test/scala/scalatutorial/sections/LazyEvaluationSpec.scala b/src/test/scala/scalatutorial/sections/LazyEvaluationSpec.scala index 8dc78969..98207f1d 100644 --- a/src/test/scala/scalatutorial/sections/LazyEvaluationSpec.scala +++ b/src/test/scala/scalatutorial/sections/LazyEvaluationSpec.scala @@ -1,22 +1,23 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class LazyEvaluationSpec extends Spec with Checkers { +class LazyEvaluationSpec extends RefSpec with Checkers { - def `check stream range`: Unit = + def `check stream range`(): Unit = check(Test.testSuccess(LazyEvaluation.streamRangeExercise _, 3 :: HNil)) - def `check lazy val`: Unit = + def `check lazy val`(): Unit = check(Test.testSuccess(LazyEvaluation.lazyVal _, "xzyz" :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/LexicalScopesSpec.scala b/src/test/scala/scalatutorial/sections/LexicalScopesSpec.scala index f97f12e3..84c4630e 100644 --- a/src/test/scala/scalatutorial/sections/LexicalScopesSpec.scala +++ b/src/test/scala/scalatutorial/sections/LexicalScopesSpec.scala @@ -1,22 +1,23 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class LexicalScopesSpec extends Spec with Checkers { +class LexicalScopesSpec extends RefSpec with Checkers { - def `check scope rules`: Unit = + def `check scope rules`(): Unit = check(Test.testSuccess(LexicalScopes.scopeRules _, 16 :: HNil)) - def `check objects scopes`: Unit = + def `check objects scopes`(): Unit = check(Test.testSuccess(LexicalScopes.objectScopes _, 3 :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/ObjectOrientedProgrammingSpec.scala b/src/test/scala/scalatutorial/sections/ObjectOrientedProgrammingSpec.scala index 932fd84c..99e4b801 100644 --- a/src/test/scala/scalatutorial/sections/ObjectOrientedProgrammingSpec.scala +++ b/src/test/scala/scalatutorial/sections/ObjectOrientedProgrammingSpec.scala @@ -1,22 +1,23 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class ObjectOrientedProgrammingSpec extends Spec with Checkers { +class ObjectOrientedProgrammingSpec extends RefSpec with Checkers { - def `check dynamic binding`: Unit = + def `check dynamic binding`(): Unit = check(Test.testSuccess(ObjectOrientedProgramming.dynamicBinding _, false :: true :: HNil)) - def `check reducer`: Unit = + def `check reducer`(): Unit = check(Test.testSuccess(ObjectOrientedProgramming.reducer _, 24 :: 10 :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/PolymorphicTypesSpec.scala b/src/test/scala/scalatutorial/sections/PolymorphicTypesSpec.scala index e67be119..ad8d222b 100644 --- a/src/test/scala/scalatutorial/sections/PolymorphicTypesSpec.scala +++ b/src/test/scala/scalatutorial/sections/PolymorphicTypesSpec.scala @@ -1,19 +1,20 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class PolymorphicTypesSpec extends Spec with Checkers { +class PolymorphicTypesSpec extends RefSpec with Checkers { - def `check size`: Unit = + def `check size`(): Unit = check(Test.testSuccess(PolymorphicTypes.sizeExercise _, 0 :: 1 :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/StandardLibrarySpec.scala b/src/test/scala/scalatutorial/sections/StandardLibrarySpec.scala index ac1ac73d..67df8e6c 100644 --- a/src/test/scala/scalatutorial/sections/StandardLibrarySpec.scala +++ b/src/test/scala/scalatutorial/sections/StandardLibrarySpec.scala @@ -1,25 +1,26 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class StandardLibrarySpec extends Spec with Checkers { +class StandardLibrarySpec extends RefSpec with Checkers { - def `check insertion sort`: Unit = + def `check insertion sort`(): Unit = check( Test.testSuccess( StandardLibrary.insertionSort _, ((_: Int) < (_: Int)) :: List.empty[Int] :: HNil)) - def `check either`: Unit = + def `check either`(): Unit = check( Test.testSuccess( StandardLibrary.either _, diff --git a/src/test/scala/scalatutorial/sections/StructuringInformationSpec.scala b/src/test/scala/scalatutorial/sections/StructuringInformationSpec.scala index f3b85cbf..b906279e 100644 --- a/src/test/scala/scalatutorial/sections/StructuringInformationSpec.scala +++ b/src/test/scala/scalatutorial/sections/StructuringInformationSpec.scala @@ -1,25 +1,26 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class StructuringInformationSpec extends Spec with Checkers { +class StructuringInformationSpec extends RefSpec with Checkers { - def `check case class projection`: Unit = + def `check case class projection`(): Unit = check(Test.testSuccess(StructuringInformation.caseClassProjection _, "Quarter" :: 3 :: HNil)) - def `check case class equals`: Unit = + def `check case class equals`(): Unit = check(Test.testSuccess(StructuringInformation.caseClassEquals _, true :: false :: HNil)) - def `check adts`: Unit = + def `check adts`(): Unit = check(Test.testSuccess(StructuringInformation.adts _, 0.5 :: 0.25 :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/SyntacticConveniencesSpec.scala b/src/test/scala/scalatutorial/sections/SyntacticConveniencesSpec.scala index 367bb70d..fb1110d5 100644 --- a/src/test/scala/scalatutorial/sections/SyntacticConveniencesSpec.scala +++ b/src/test/scala/scalatutorial/sections/SyntacticConveniencesSpec.scala @@ -1,43 +1,44 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class SyntacticConveniencesSpec extends Spec with Checkers { +class SyntacticConveniencesSpec extends RefSpec with Checkers { - def `check string interpolation`: Unit = + def `check string interpolation`(): Unit = check( Test.testSuccess( SyntacticConveniences.stringInterpolation _, "Hello, Functional Programming!" :: HNil)) - def `check string interpolation2`: Unit = + def `check string interpolation2`(): Unit = check(Test.testSuccess(SyntacticConveniences.stringInterpolation2 _, "Hello, SCALA!" :: HNil)) - def `check tuples`: Unit = + def `check tuples`(): Unit = check(Test.testSuccess(SyntacticConveniences.tupleExtraction _, "foo" :: HNil)) - def `check tuples2`: Unit = + def `check tuples2`(): Unit = check(Test.testSuccess(SyntacticConveniences.tupleExtraction2 _, "foo" :: HNil)) - def `check tuples manipulation`: Unit = + def `check tuples manipulation`(): Unit = check(Test.testSuccess(SyntacticConveniences.tupleManipulation _, "foo" :: HNil)) - def `check default parameters`: Unit = + def `check default parameters`(): Unit = check(Test.testSuccess(SyntacticConveniences.defaultParameters _, 1 :: HNil)) - def `check repeated parameters`: Unit = + def `check repeated parameters`(): Unit = check(Test.testSuccess(SyntacticConveniences.repeatedParameters _, 2.0 :: HNil)) - def `check type alias`: Unit = + def `check type alias`(): Unit = check( Test.testSuccess( SyntacticConveniences.typeAlias _, diff --git a/src/test/scala/scalatutorial/sections/TailRecursionSpec.scala b/src/test/scala/scalatutorial/sections/TailRecursionSpec.scala deleted file mode 100644 index 7276de38..00000000 --- a/src/test/scala/scalatutorial/sections/TailRecursionSpec.scala +++ /dev/null @@ -1,20 +0,0 @@ -/* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. - */ - -package scalatutorial.sections - -import org.scalacheck.Shapeless._ -import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers -import shapeless.HNil - -class TailRecursionSpec extends Spec with Checkers { - -// def `check tail recursive factorial`: Unit = { -// check(Test.testSuccess(TailRecursion.tailRecFactorial _, 0 :: 1 :: 1 :: HNil)) -// } - -} diff --git a/src/test/scala/scalatutorial/sections/TermsAndTypesSpec.scala b/src/test/scala/scalatutorial/sections/TermsAndTypesSpec.scala index 28bcb724..3655f927 100644 --- a/src/test/scala/scalatutorial/sections/TermsAndTypesSpec.scala +++ b/src/test/scala/scalatutorial/sections/TermsAndTypesSpec.scala @@ -1,29 +1,26 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ +import org.scalacheck.ScalacheckShapeless._ import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import shapeless.HNil -class TermsAndTypesSpec extends Spec with Checkers { +class TermsAndTypesSpec extends RefSpec with Checkers { - def `check evaluation`: Unit = + def `check evaluation`(): Unit = check(Test.testSuccess(TermsAndTypes.evaluation _, 3 :: "Hello, Scala!" :: HNil)) - def `check methods`: Unit = + def `check methods`(): Unit = check(Test.testSuccess(TermsAndTypes.methods _, "HELLO, SCALA!" :: 42 :: HNil)) -// def `static typing`: Unit = { -// check(Test.testSuccess(TermsAndTypes.staticTyping _, 10 :: HNil)) -// } - - def `check more methods`: Unit = + def `check more methods`(): Unit = check(Test.testSuccess(TermsAndTypes.moreMethods _, "10" :: false :: "ba" :: HNil)) } diff --git a/src/test/scala/scalatutorial/sections/TypeClassesSpec.scala b/src/test/scala/scalatutorial/sections/TypeClassesSpec.scala index 12a5b576..e00f55c9 100644 --- a/src/test/scala/scalatutorial/sections/TypeClassesSpec.scala +++ b/src/test/scala/scalatutorial/sections/TypeClassesSpec.scala @@ -1,21 +1,19 @@ /* - * scala-exercises - exercises-scalatutorial - * Copyright (C) 2015-2016 47 Degrees, LLC. + * scala-exercises - exercises-scalatutorial + * Copyright (C) 2015-2019 47 Degrees, LLC. + * */ package scalatutorial.sections -import org.scalacheck.Shapeless._ -import org.scalaexercises.Test -import org.scalatest.Spec -import org.scalatest.prop.Checkers -import shapeless.HNil +import org.scalatest.refspec.RefSpec +import org.scalatestplus.scalacheck.Checkers import scalatutorial.utils.Rational -class TypeClassesSpec extends Spec with Checkers { +class TypeClassesSpec extends RefSpec with Checkers { - def `check rational ordering`: Unit = { + def `check rational ordering`(): Unit = { val ordering = (x: Rational, y: Rational) => x.numer * y.denom - y.numer * x.denom diff --git a/version.sbt b/version.sbt index 11c590d8..404aa03e 100644 --- a/version.sbt +++ b/version.sbt @@ -1 +1 @@ -version in ThisBuild := "0.4.2-SNAPSHOT" +version in ThisBuild := "0.5.0-SNAPSHOT"