diff --git a/.scalafmt.conf b/.scalafmt.conf index 9759510..c67bf5c 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,4 +1,4 @@ -version=2.4.2 +version=2.6.0 style = defaultWithAlign maxColumn = 100 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e43afda..1d5b8d3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,7 @@ the code. Pull requests are also welcome. People are expected to follow the [Code of Conduct](CODE_OF_CONDUCT.md) when discussing _exercises-scalacheck_ on the Github page or other venues. -If you are being harassed, please contact one of [us](AUTHORS.md#maintainers) immediately so that we can support you. In case you cannot get in touch with us please write an email to [47 Degrees](mailto:scala-exercises@47deg.com). +If you are being harassed, please contact one of [us](AUTHORS.md#maintainers) immediately so that we can support you. In case you cannot get in touch with us please write an email to [47 Degrees Open Source](mailto:hello@47deg.com). ## How can I help? diff --git a/LICENSE.md b/LICENSE.md index fef1c3a..c21be17 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright (C) 2016-2020 47 Degrees + Copyright (C) 2016-2020 47 Degrees Open Source Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/NOTICE.md b/NOTICE.md index f8c7050..58242a4 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -4,6 +4,6 @@ exercises-scalacheck -Copyright (c) 2016-2020 47 Degrees. All rights reserved. +Copyright (c) 2016-2020 47 Degrees Open Source. All rights reserved. Licensed under Apache-2.0. See [LICENSE](LICENSE.md) for terms. \ No newline at end of file diff --git a/build.sbt b/build.sbt index f46b53c..f19bc55 100755 --- a/build.sbt +++ b/build.sbt @@ -1,21 +1,37 @@ import com.jsuereth.sbtpgp.PgpKeys.publishSigned +ThisBuild / organization := "org.scala-exercises" +ThisBuild / githubOrganization := "47degrees" +ThisBuild / scalaVersion := "2.13.2" + +publish / skip := true + +// This is required by the exercises compiler: publishLocal := (publishLocal dependsOn compile).value publishSigned := (publishSigned dependsOn compile).value addCommandAlias("ci-test", "scalafmtCheckAll; scalafmtSbtCheck; test") -addCommandAlias("ci-docs", "github; project-docs/mdoc; headerCreateAll") +addCommandAlias("ci-docs", "github; documentation/mdoc; headerCreateAll") +addCommandAlias("ci-publish", "github; ci-release") lazy val exercises = (project in file(".")) - .settings(moduleName := "exercises-scalacheck") - .settings(exercisesSettings) + .settings(name := "exercises-scalacheck") + .settings( + libraryDependencies ++= Seq( + "org.scala-exercises" %% "exercise-compiler" % "0.6.1", + "org.scala-exercises" %% "definitions" % "0.6.1", + "joda-time" % "joda-time" % "2.10.6", + "com.47deg" %% "scalacheck-toolbox-datetime" % "0.3.5", + "com.chuusai" %% "shapeless" % "2.3.3", + "org.scalatest" %% "scalatest" % "3.1.2", + "org.scalacheck" %% "scalacheck" % "1.14.3", + "org.scalatestplus" %% "scalacheck-1-14" % "3.1.2.0", + "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % "1.2.5" + ) + ) .enablePlugins(ExerciseCompilerPlugin) -lazy val `project-docs` = (project in file(".docs")) - .aggregate(exercises) - .dependsOn(exercises) - .settings(moduleName := "exercises-project-docs") - .settings(mdocIn := file(".docs")) +lazy val documentation = project .settings(mdocOut := file(".")) - .settings(skip in publish := true) + .settings(publish / skip := true) .enablePlugins(MdocPlugin) diff --git a/.docs/AUTHORS.md b/docs/AUTHORS.md similarity index 100% rename from .docs/AUTHORS.md rename to docs/AUTHORS.md diff --git a/.docs/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md similarity index 100% rename from .docs/CODE_OF_CONDUCT.md rename to docs/CODE_OF_CONDUCT.md diff --git a/.docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md similarity index 100% rename from .docs/CONTRIBUTING.md rename to docs/CONTRIBUTING.md diff --git a/.docs/LICENSE.md b/docs/LICENSE.md similarity index 100% rename from .docs/LICENSE.md rename to docs/LICENSE.md diff --git a/.docs/NOTICE.md b/docs/NOTICE.md similarity index 100% rename from .docs/NOTICE.md rename to docs/NOTICE.md diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala deleted file mode 100644 index 3286c2b..0000000 --- a/project/ProjectPlugin.scala +++ /dev/null @@ -1,53 +0,0 @@ -import sbt.Keys._ -import sbt._ -import com.alejandrohdezma.sbt.github.SbtGithubPlugin - -object ProjectPlugin extends AutoPlugin { - - override def trigger: PluginTrigger = allRequirements - - override def requires: Plugins = plugins.JvmPlugin && SbtGithubPlugin - - object autoImport { - - lazy val V = new { - val jodaTime: String = "2.10.6" - val shapeless: String = "2.3.3" - val scala: String = "2.13.2" - val scalaExercises: String = "0.6.0" - val scalacheck: String = "1.14.3" - val scalacheckDatetime: String = "0.3.5" - val scalacheckShapeless: String = "1.2.5" - val scalatest: String = "3.1.2" - val scalatestplusScheck: String = "3.1.1.1" - } - - def dep(artifactId: String) = "org.scala-exercises" %% artifactId % V.scalaExercises - - lazy val exercisesSettings = Seq( - libraryDependencies ++= Seq( - dep("exercise-compiler"), - dep("definitions"), - "joda-time" % "joda-time" % V.jodaTime, - "com.47deg" %% "scalacheck-toolbox-datetime" % V.scalacheckDatetime, - "com.chuusai" %% "shapeless" % V.shapeless, - "org.scalatest" %% "scalatest" % V.scalatest, - "org.scalacheck" %% "scalacheck" % V.scalacheck, - "org.scalatestplus" %% "scalacheck-1-14" % V.scalatestplusScheck, - "com.github.alexarchambault" %% "scalacheck-shapeless_1.14" % V.scalacheckShapeless - ) - ) - } - - override def projectSettings: Seq[Def.Setting[_]] = - Seq( - organization := "org.scala-exercises", - organizationName := "47 Degrees", - organizationHomepage := Some(url("https://47deg.com")), - scalaVersion := autoImport.V.scala, - resolvers ++= Seq( - Resolver.sonatypeRepo("snapshots"), - Resolver.sonatypeRepo("releases") - ) - ) -} diff --git a/project/build.properties b/project/build.properties index 2cc552f..0caa33f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.3.11 \ No newline at end of file +sbt.version=1.3.12 \ No newline at end of file diff --git a/project/plugins.sbt b/project/plugins.sbt index bf4cca4..729558c 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,10 +1,9 @@ -resolvers += Resolver.sonatypeRepo("snapshots") -addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.6.0") -addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3") -addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.1.5") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.4") -addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.6.0") -addSbtPlugin("com.alejandrohdezma" %% "sbt-github" % "0.8.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-github-header" % "0.8.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-github-mdoc" % "0.8.0") -addSbtPlugin("com.alejandrohdezma" % "sbt-mdoc-toc" % "0.2") +addSbtPlugin("org.scala-exercises" % "sbt-exercise" % "0.6.1") +addSbtPlugin("com.geirsson" % "sbt-ci-release" % "1.5.3") +addSbtPlugin("org.scalameta" % "sbt-mdoc" % "2.1.5") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.0") +addSbtPlugin("de.heikoseeberger" % "sbt-header" % "5.6.0") +addSbtPlugin("com.alejandrohdezma" % "sbt-github" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-header" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-github-mdoc" % "0.8.2") +addSbtPlugin("com.alejandrohdezma" % "sbt-remove-test-from-pom" % "0.1.0") diff --git a/src/main/scala/scalachecklib/ArbitrarySection.scala b/src/main/scala/scalachecklib/ArbitrarySection.scala index a434b14..af6a2ed 100644 --- a/src/main/scala/scalachecklib/ArbitrarySection.scala +++ b/src/main/scala/scalachecklib/ArbitrarySection.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ package scalachecklib import org.scalatest.matchers.should.Matchers import org.scalatestplus.scalacheck.Checkers -/** ==The `arbitrary` Generator== +/** + * ==The `arbitrary` Generator== * * There is a special generator, `org.scalacheck.Arbitrary.arbitrary`, which generates arbitrary values of any * supported type. @@ -48,7 +49,8 @@ object ArbitrarySection extends Checkers with Matchers with org.scalaexercises.d import GeneratorsHelper._ - /** Let's see an example where we're defining an `implicit` `arbitrary` instance for `Char` + /** + * Let's see an example where we're defining an `implicit` `arbitrary` instance for `Char` */ def implicitArbitraryChar(res0: Seq[Char]) = { @@ -63,7 +65,8 @@ object ArbitrarySection extends Checkers with Matchers with org.scalaexercises.d check(forAll { c: Char => validChars.contains(c) }) } - /** This becomes more useful when we're dealing with our own data types. + /** + * This becomes more useful when we're dealing with our own data types. * We'll use the case class defined in the ''Generators Section'': * * {{{ @@ -89,7 +92,8 @@ object ArbitrarySection extends Checkers with Matchers with org.scalaexercises.d check(forAll { foo: Foo => (foo.intValue < 0) == res0 && !foo.charValue.isDigit }) } - /** The `Arbitrary.arbitrary` method also returns a `Gen` object. + /** + * The `Arbitrary.arbitrary` method also returns a `Gen` object. */ def useArbitraryOnGen(res0: Int) = { diff --git a/src/main/scala/scalachecklib/GeneratorsHelper.scala b/src/main/scala/scalachecklib/GeneratorsHelper.scala index 2c675df..d494cec 100644 --- a/src/main/scala/scalachecklib/GeneratorsHelper.scala +++ b/src/main/scala/scalachecklib/GeneratorsHelper.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/main/scala/scalachecklib/GeneratorsSection.scala b/src/main/scala/scalachecklib/GeneratorsSection.scala index f5fc1f6..5c2824c 100644 --- a/src/main/scala/scalachecklib/GeneratorsSection.scala +++ b/src/main/scala/scalachecklib/GeneratorsSection.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,14 +19,14 @@ package scalachecklib import org.scalatest.matchers.should.Matchers import org.scalatestplus.scalacheck.Checkers -/** Generators are responsible for generating test data in ScalaCheck, and are represented by the `org.scalacheck.Gen` +/** + * Generators are responsible for generating test data in ScalaCheck, and are represented by the `org.scalacheck.Gen` * class. ou need to know how to use this class if you want ScalaCheck to generate data of types that are not supported * by default, or if you want to use the `forAll` method mentioned above, to state properties about a specific subset of * a type. In the `Gen` object, there are several methods for creating new and modifying existing generators. * We will show how to use some of them in this section. For a more complete reference of what is available, * please see the API scaladoc. * - * * A generator can be seen simply as a function that takes some generation parameters, and (maybe) returns a * generated value. That is, the type `Gen[T]` may be thought of as a function of type `Gen.Params => Option[T]`. * However, the `Gen` class contains additional methods to make it possible to map generators, use them in @@ -42,7 +42,8 @@ object GeneratorsSection import GeneratorsHelper._ - /** Let's see how to create a new generator. The best way to do it is to use the generator combinators that exist + /** + * Let's see how to create a new generator. The best way to do it is to use the generator combinators that exist * in the `org.scalacheck.Gen` module. These can be combined using a for-comprehension. Suppose you need a generator * which generates a tuple that contains two random integer values, one of them being at least twice as big as the * other. The following definition does this: @@ -65,11 +66,11 @@ object GeneratorsSection } - /** You can create generators that pick one value out of a selection of values. + /** + * You can create generators that pick one value out of a selection of values. * The `oneOf` method creates a generator that randomly picks one of its parameters each time it generates a value. * Notice that plain values are implicitly converted to generators (which always generate that value) if needed. * - * * The following generator generates a vowel: */ def genOf(res0: Seq[Char]) = { @@ -86,7 +87,8 @@ object GeneratorsSection } } - /** The distribution is uniform, but if you want to control it you can use the frequency combinator: + /** + * The distribution is uniform, but if you want to control it you can use the frequency combinator: * * {{{ * val vowel = Gen.frequency( @@ -132,7 +134,8 @@ object GeneratorsSection } } - /** ==Conditional Generators== + /** + * ==Conditional Generators== * * Conditional generators can be defined using `Gen.suchThat`. * @@ -153,7 +156,8 @@ object GeneratorsSection } } - /** ==Case class Generators== + /** + * ==Case class Generators== * * On the basis of the above we can create a generator for the following case class: * @@ -176,7 +180,8 @@ object GeneratorsSection } } - /** ==Sized Generators== + /** + * ==Sized Generators== * * When ScalaCheck uses a generator to generate a value, it feeds it with some parameters. One of the parameters * the generator is given is a size value, which some generators use to generate their values. @@ -212,7 +217,8 @@ object GeneratorsSection } } - /** ==Generating Containers== + /** + * ==Generating Containers== * * There is a special generator, `Gen.containerOf`, that generates containers such as lists and arrays. * It takes another generator as argument which is responsible for generating the individual items. diff --git a/src/main/scala/scalachecklib/PropertiesSection.scala b/src/main/scala/scalachecklib/PropertiesSection.scala index 2bac2b2..732e918 100644 --- a/src/main/scala/scalachecklib/PropertiesSection.scala +++ b/src/main/scala/scalachecklib/PropertiesSection.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ package scalachecklib import org.scalatest.matchers.should.Matchers import org.scalatestplus.scalacheck.Checkers -/** A ''property'' is the testable unit in ScalaCheck, and is represented by the `org.scalacheck.Prop` class. +/** + * A ''property'' is the testable unit in ScalaCheck, and is represented by the `org.scalacheck.Prop` class. * There are several ways to create properties in ScalaCheck, one of them is to use the `org.scalacheck.Prop.forAll` * method like in the example below. * @@ -28,7 +29,6 @@ import org.scalatestplus.scalacheck.Checkers * l1.size + l2.size == (l1 ::: l2).size } * }}} * - * * We can use the `check` method to test it: * * {{{ @@ -36,14 +36,12 @@ import org.scalatestplus.scalacheck.Checkers * + OK, passed 100 tests. * }}} * - * * OK, that seemed alright. Now, we'll define another property. * * {{{ * scala> val propSqrt = forAll { (n: Int) => scala.math.sqrt(n*n) == n } * }}} * - * * And check it: * * {{{ @@ -58,7 +56,6 @@ import org.scalatestplus.scalacheck.Checkers * [[https://github.com/rickynils/scalacheck/blob/master/doc/UserGuide.md#test-case-minimisation simplified]] to * `-1`. * - * * The `forAll` method creates universally quantified properties directly, but it is also * possible to create new properties by combining other properties, or to use any of the specialised * methods in the `org.scalacheck.Prop` object. @@ -70,13 +67,13 @@ object PropertiesSection with Matchers with org.scalaexercises.definitions.Section { - /** ==Universally quantified properties== + /** + * ==Universally quantified properties== * * As mentioned before, `org.scalacheck.Prop.forAll` creates universally quantified properties. * `forAll` takes a function as parameter, and creates a property out of it that can be tested with the `check` * method or with Scalatest (using Checkers trait), like in these examples. * - * * The function passed to `forAll` should return `Boolean` or another property, and can take parameters of any types, * as long as there exist implicit `Arbitrary` instances for the types. * By default, ScalaCheck has instances for common types like `Int`, `String`, `List`, etc, but it is also possible @@ -94,7 +91,8 @@ object PropertiesSection } - /** When you run `check` on the properties, ScalaCheck generates random instances of the function parameters and + /** + * When you run `check` on the properties, ScalaCheck generates random instances of the function parameters and * evaluates the results, reporting any failing cases. * * You can also give `forAll` a specific data generator. In the following example `smallInteger` defines a generator @@ -116,7 +114,8 @@ object PropertiesSection } - /** ==Conditional properties== + /** + * ==Conditional properties== * * Sometimes, a specification takes the form of an implication. In ScalaCheck, you can use the implication * operator `==>` to filter the generated values. @@ -153,7 +152,8 @@ object PropertiesSection } - /** ==Combining Properties== + /** + * ==Combining Properties== * * A third way of creating properties, is to combine existing properties into new ones. * @@ -186,7 +186,8 @@ object PropertiesSection } - /** ==Grouping Properties== + /** + * ==Grouping Properties== * * Often you want to specify several related properties, perhaps for all methods in a class. * ScalaCheck provides a simple way of doing this, through the `Properties` trait. @@ -197,7 +198,6 @@ object PropertiesSection * so you can use it just as if it was a single property. * * That single property holds if and only if all of the contained properties hold. - * */ def groupingProperties(res0: Int, res1: Int, res2: Int) = { import org.scalacheck.{Prop, Properties} diff --git a/src/main/scala/scalachecklib/ScalacheckDatetimeSection.scala b/src/main/scala/scalachecklib/ScalacheckDatetimeSection.scala index 968e7fb..7beb98a 100644 --- a/src/main/scala/scalachecklib/ScalacheckDatetimeSection.scala +++ b/src/main/scala/scalachecklib/ScalacheckDatetimeSection.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,7 +19,8 @@ package scalachecklib import org.scalatest.matchers.should.Matchers import org.scalatestplus.scalacheck.Checkers -/** scalacheck-datetime is a library for helping use datetime libraries with ScalaCheck +/** + * scalacheck-datetime is a library for helping use datetime libraries with ScalaCheck * * The motivation behind this library is to provide a simple, easy way to provide generated date and time instances * that are useful to your own domain. @@ -41,7 +42,8 @@ object ScalacheckDatetimeSection with Matchers with org.scalaexercises.definitions.Section { - /** ==Usage== + /** + * ==Usage== * * To arbitrarily generate dates and times, you need to have the `Arbitrary` in scope for your date/time class. * Assuming Joda Time: @@ -57,7 +59,8 @@ object ScalacheckDatetimeSection } } - /** ==A note on imports== + /** + * ==A note on imports== * * For all of the examples given in this document, you can substitute `jdk8` for `joda` and vice-versa, * depending on which library you would like to generate instances for. @@ -114,7 +117,8 @@ object ScalacheckDatetimeSection } - /** ==Creating Ranges== + /** + * ==Creating Ranges== * * You can generate date/time instances only within a certain range, using the `genDateTimeWithinRange` in the * `GenDateTime` class. The function takes two parameters, the date/time instances as a base from which to generate @@ -139,7 +143,8 @@ object ScalacheckDatetimeSection } } - /** ==Using Granularity and Ranges Together== + /** + * ==Using Granularity and Ranges Together== * * As you would expect, it is possible to use the granularity and range concepts together. * This example should not show anything surprising by now: diff --git a/src/main/scala/scalachecklib/ScalacheckLibrary.scala b/src/main/scala/scalachecklib/ScalacheckLibrary.scala index b9c60b1..59fb1d8 100644 --- a/src/main/scala/scalachecklib/ScalacheckLibrary.scala +++ b/src/main/scala/scalachecklib/ScalacheckLibrary.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,7 +16,8 @@ package scalachecklib -/** ScalaCheck is a tool for testing Scala and Java programs, based on property specifications and automatic test data generation. +/** + * ScalaCheck is a tool for testing Scala and Java programs, based on property specifications and automatic test data generation. * * @param name scalacheck */ @@ -26,12 +27,13 @@ object ScalacheckLibrary extends org.scalaexercises.definitions.Library { override def color = Some("#EBC477") - override def sections = List( - PropertiesSection, - GeneratorsSection, - ArbitrarySection, - ScalacheckDatetimeSection - ) + override def sections = + List( + PropertiesSection, + GeneratorsSection, + ArbitrarySection, + ScalacheckDatetimeSection + ) override def logoPath = "scalacheck" } diff --git a/src/test/scala/scalachecklib/ArbitrarySpec.scala b/src/test/scala/scalachecklib/ArbitrarySpec.scala index e0807f2..d5a34e8 100644 --- a/src/test/scala/scalachecklib/ArbitrarySpec.scala +++ b/src/test/scala/scalachecklib/ArbitrarySpec.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/test/scala/scalachecklib/GeneratorsSpec.scala b/src/test/scala/scalachecklib/GeneratorsSpec.scala index 130f063..2b7cd14 100644 --- a/src/test/scala/scalachecklib/GeneratorsSpec.scala +++ b/src/test/scala/scalachecklib/GeneratorsSpec.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/test/scala/scalachecklib/PropertiesSpec.scala b/src/test/scala/scalachecklib/PropertiesSpec.scala index 40524fc..226021c 100644 --- a/src/test/scala/scalachecklib/PropertiesSpec.scala +++ b/src/test/scala/scalachecklib/PropertiesSpec.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/test/scala/scalachecklib/ScalacheckDatetimeSpec.scala b/src/test/scala/scalachecklib/ScalacheckDatetimeSpec.scala index 4fe526e..26a1b2a 100644 --- a/src/test/scala/scalachecklib/ScalacheckDatetimeSpec.scala +++ b/src/test/scala/scalachecklib/ScalacheckDatetimeSpec.scala @@ -1,5 +1,5 @@ /* - * Copyright 2016-2020 47 Degrees + * Copyright 2016-2020 47 Degrees Open Source * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.