summaryrefslogtreecommitdiff
path: root/test/files/scalacheck/primitive-eqeq.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-28 00:51:25 +0000
committerPaul Phillips <paulp@improving.org>2010-09-28 00:51:25 +0000
commit9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f (patch)
tree857d48a844aa0479863f79c2a991984ac6a0104f /test/files/scalacheck/primitive-eqeq.scala
parenta56c33b6a470939a1396015972f09e19dc493245 (diff)
downloadscala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.tar.gz
scala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.tar.bz2
scala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.zip
Cleaning up the contents of test.
including "CheckEither", written against scalacheck 1.2 in the year 471 AD. Removed all the duplicates I could find, mostly between pending and files. Renamed a bunch of tests so they wouldn't look like likely duplicates next time around. Nominated somebody else to do this once in a while. No review.
Diffstat (limited to 'test/files/scalacheck/primitive-eqeq.scala')
-rw-r--r--test/files/scalacheck/primitive-eqeq.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/files/scalacheck/primitive-eqeq.scala b/test/files/scalacheck/primitive-eqeq.scala
new file mode 100644
index 0000000000..60fe63c207
--- /dev/null
+++ b/test/files/scalacheck/primitive-eqeq.scala
@@ -0,0 +1,37 @@
+import org.scalacheck._
+import Prop._
+import Gen._
+
+object Test extends Properties("==") {
+ def equalObjectsEqualHashcodes(x: Any, y: Any) = (x != y) || (x == y && x.## == y.##)
+
+ // ticket #2087
+ property("short/char") = forAll { (x: Short) => {
+ val ch: Char = x.toChar
+ (x == ch) == (ch == x)
+ }
+ }
+
+ property("symmetry") = forAll { (x: AnyVal, y: AnyVal) => (x == y) == (y == x) }
+ property("transitivity") = forAll { (x: AnyVal, y: AnyVal, z: AnyVal) => x != y || y != z || x == z }
+
+ property("##") = forAll {
+ (x: Short) => {
+ val anyvals = List(x.toByte, x.toChar, x, x.toInt, x.toLong, x.toFloat, x.toDouble, BigInt(x), BigDecimal(x))
+ val shortAndLarger = anyvals drop 2
+
+ val result = (
+ ((anyvals, anyvals).zipped forall equalObjectsEqualHashcodes) &&
+ ((shortAndLarger, shortAndLarger).zipped forall (_ == _)) &&
+ ((shortAndLarger, shortAndLarger).zipped forall ((x, y) => (x: Any) == (y: Any)))
+ )
+ result
+ }
+ }
+ property("## 2") = forAll {
+ (dv: Double) => {
+ val fv = dv.toFloat
+ (fv != dv) || (fv.## == dv.##)
+ }
+ }
+}