summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/scala/chiselTests/RangeSpec.scala58
1 files changed, 56 insertions, 2 deletions
diff --git a/src/test/scala/chiselTests/RangeSpec.scala b/src/test/scala/chiselTests/RangeSpec.scala
index edaff8aa..b18e9d2a 100644
--- a/src/test/scala/chiselTests/RangeSpec.scala
+++ b/src/test/scala/chiselTests/RangeSpec.scala
@@ -8,10 +8,64 @@ import org.scalatest.{Matchers, FreeSpec}
class RangeSpec extends FreeSpec with Matchers {
"Ranges can be specified for UInt, SInt, and FixedPoint" - {
"to specify a UInt" in {
- val x = UInt(range"[0, 7)")
+ val x = UInt(range"[0, 8)")
x.getWidth should be (3)
println(range"[4,32)")
+
+ UInt(range"[0, 8]").getWidth should be (4)
+ }
+
+ "to specify an SInt" in {
+ SInt(range"[0, 8)").getWidth should be (4)
+
+ SInt(range"[0, 8]").getWidth should be (5)
+
+ SInt(range"[-4, 4)").getWidth should be (3)
+ }
+
+ "it should check that the range is valid for UInt" in {
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"[1, 0]")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"[-1, 1]")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"(0,0]")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"[0,0)")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"(0,0)")
+ }
+
+ UInt(range"[0, 0]").getWidth should be (1)
+ }
+
+ "it should check that the range is valid for SInt" in {
+ an [IllegalArgumentException] should be thrownBy {
+ SInt(range"[1, 0]")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ SInt(range"(0,0]")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ SInt(range"[0,0)")
+ }
+
+ an [IllegalArgumentException] should be thrownBy {
+ SInt(range"(0,0)")
+ }
+
+ SInt(range"[0, 0]").getWidth should be (1)
}
- }
+ }
}