|
Akka/Scala example source code file (DurationSpec.scala)
The DurationSpec.scala Akka example source code
/**
* Copyright (C) 2009-2014 Typesafe Inc. <http://www.typesafe.com>
*/
package akka.util
import language.postfixOps
import scala.concurrent.duration._
import akka.testkit.AkkaSpec
class DurationSpec extends AkkaSpec {
"Duration" must {
"form a one-dimensional vector field" in {
val zero = 0 seconds
val one = 1 second
val two = one + one
val three = 3 * one
(0 * one) should be(zero)
(2 * one) should be(two)
(three - two) should be(one)
(three / 3) should be(one)
(two / one) should be(2)
(one + zero) should be(one)
(one / 1000000) should be(1.micro)
}
"respect correct treatment of infinities" in {
val one = 1.second
val inf = Duration.Inf
val minf = Duration.MinusInf
val undefined = Duration.Undefined
(-inf) should be(minf)
(minf + inf) should be(undefined)
(inf - inf) should be(undefined)
(inf + minf) should be(undefined)
(minf - minf) should be(undefined)
(inf + inf) should be(inf)
(inf - minf) should be(inf)
(minf - inf) should be(minf)
(minf + minf) should be(minf)
assert(inf == inf)
assert(minf == minf)
inf.compareTo(inf) should be(0)
inf.compareTo(one) should be(1)
minf.compareTo(minf) should be(0)
minf.compareTo(one) should be(-1)
assert(inf != minf)
assert(minf != inf)
assert(one != inf)
assert(minf != one)
}
/*"check its range" in {
for (unit ← Seq(DAYS, HOURS, MINUTES, SECONDS, MILLISECONDS, MICROSECONDS, NANOSECONDS)) {
val x = unit.convert(Long.MaxValue, NANOSECONDS)
val dur = Duration(x, unit)
val mdur = Duration(-x, unit)
-mdur should be(dur)
intercept[IllegalArgumentException] { Duration(x + 10000000d, unit) }
intercept[IllegalArgumentException] { Duration(-x - 10000000d, unit) }
if (unit != NANOSECONDS) {
intercept[IllegalArgumentException] { Duration(x + 1, unit) }
intercept[IllegalArgumentException] { Duration(-x - 1, unit) }
}
intercept[IllegalArgumentException] { dur + 1.day }
intercept[IllegalArgumentException] { mdur - 1.day }
intercept[IllegalArgumentException] { dur * 1.1 }
intercept[IllegalArgumentException] { mdur * 1.1 }
intercept[IllegalArgumentException] { dur * 2.1 }
intercept[IllegalArgumentException] { mdur * 2.1 }
intercept[IllegalArgumentException] { dur / 0.9 }
intercept[IllegalArgumentException] { mdur / 0.9 }
intercept[IllegalArgumentException] { dur / 0.4 }
intercept[IllegalArgumentException] { mdur / 0.4 }
Duration(x + unit.toString.toLowerCase)
Duration("-" + x + unit.toString.toLowerCase)
intercept[IllegalArgumentException] { Duration("%.0f".format(x + 10000000d) + unit.toString.toLowerCase) }
intercept[IllegalArgumentException] { Duration("-%.0f".format(x + 10000000d) + unit.toString.toLowerCase) }
}
}*/
"support fromNow" in {
val dead = 2.seconds.fromNow
val dead2 = 2 seconds fromNow
// view bounds vs. very local type inference vs. operator precedence: sigh
dead.timeLeft should be > (1 second: Duration)
dead2.timeLeft should be > (1 second: Duration)
Thread.sleep(1.second.toMillis)
dead.timeLeft should be < (1 second: Duration)
dead2.timeLeft should be < (1 second: Duration)
}
}
}
Other Akka source code examplesHere is a short list of links related to this Akka DurationSpec.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.