summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests
diff options
context:
space:
mode:
authorducky2016-11-16 15:23:36 -0800
committerducky2016-11-21 12:48:10 -0800
commit876bc32feca6bd0a2aaec7019fd3d29675ce0255 (patch)
tree9598426ff507c096340e37fcf9cd1e75f41e5318 /src/test/scala/chiselTests
parent2db9bc81015000b5ee4581dc57c0f339ae9f9329 (diff)
Fix open-open range specifier, remove dead code, restyle tests
Diffstat (limited to 'src/test/scala/chiselTests')
-rw-r--r--src/test/scala/chiselTests/RangeSpec.scala58
1 files changed, 28 insertions, 30 deletions
diff --git a/src/test/scala/chiselTests/RangeSpec.scala b/src/test/scala/chiselTests/RangeSpec.scala
index cbac4d4c..565d304d 100644
--- a/src/test/scala/chiselTests/RangeSpec.scala
+++ b/src/test/scala/chiselTests/RangeSpec.scala
@@ -8,40 +8,52 @@ import org.scalatest.{Matchers, FreeSpec}
class RangeSpec extends FreeSpec with Matchers {
"Ranges can be specified for UInt, SInt, and FixedPoint" - {
+ "invalid range specifiers should fail at compile time" in {
+ assertDoesNotCompile(""" range"" """)
+ assertDoesNotCompile(""" range"[]" """)
+ assertDoesNotCompile(""" range"0" """)
+ assertDoesNotCompile(""" range"[0]" """)
+ assertDoesNotCompile(""" range"[0, 1" """)
+ assertDoesNotCompile(""" range"0, 1]" """)
+ assertDoesNotCompile(""" range"[0, 1, 2]" """)
+ assertDoesNotCompile(""" range"[a]" """)
+ assertDoesNotCompile(""" range"[a, b]" """)
+ assertCompiles(""" range"[0, 1]" """) // syntax sanity check
+ }
+
"range macros should allow open and closed bounds" in {
range"[-1, 1)" should be( (Closed(-1), Open(1)) )
-
range"[-1, 1]" should be( (Closed(-1), Closed(1)) )
-
range"(-1, 1]" should be( (Open(-1), Closed(1)) )
-
range"(-1, 1)" should be( (Open(-1), Open(1)) )
}
+
+ "range specifiers should be whitespace tolerant" in {
+ range"[-1,1)" should be( (Closed(-1), Open(1)) )
+ range" [-1,1) " should be( (Closed(-1), Open(1)) )
+ range" [ -1 , 1 ) " should be( (Closed(-1), Open(1)) )
+ range" [ -1 , 1 ) " should be( (Closed(-1), Open(1)) )
+ }
+
"range macros should work with interpolated variables" in {
val a = 10
val b = -3
range"[$b, $a)" should be( (Closed(b), Open(a)) )
-
range"[${a + b}, $a)" should be( (Closed(a + b), Open(a)) )
-
range"[${-3 - 7}, ${-3 + a})" should be( (Closed(-10), Open(-3 + a)) )
}
+
"UInt should get the correct width from a range" in {
UInt(range"[0, 8)").getWidth should be (3)
-
UInt(range"[0, 8]").getWidth should be (4)
-
UInt(range"[0, 0]").getWidth should be (1)
}
"SInt should get the correct width from a range" 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)
-
SInt(range"[0, 0]").getWidth should be (1)
}
@@ -49,53 +61,39 @@ class RangeSpec extends FreeSpec with Matchers {
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)")
}
+ an [IllegalArgumentException] should be thrownBy {
+ UInt(range"(0,1)")
+ }
}
"SInt should check that the range is valid" 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)")
}
- }
-
- "Invalid range specifiers should fail at compile time" in {
- assertDoesNotCompile(""" range"" """)
- assertDoesNotCompile(""" range"[]" """)
- assertDoesNotCompile(""" range"0" """)
- assertDoesNotCompile(""" range"[0]" """)
- assertDoesNotCompile(""" range"[0, 1" """)
- assertDoesNotCompile(""" range"0, 1]" """)
- assertDoesNotCompile(""" range"[0, 1, 2]" """)
- assertDoesNotCompile(""" range"[a]" """)
- assertDoesNotCompile(""" range"[a, b]" """)
- assertCompiles(""" range"[0, 1]" """) // syntax sanity check
+ an [IllegalArgumentException] should be thrownBy {
+ SInt(range"(0,1)")
+ }
}
}
}