diff options
Diffstat (limited to 'src/test/scala/chiselTests/ScalaIntervalSimulatorTest.scala')
| -rw-r--r-- | src/test/scala/chiselTests/ScalaIntervalSimulatorTest.scala | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/ScalaIntervalSimulatorTest.scala b/src/test/scala/chiselTests/ScalaIntervalSimulatorTest.scala new file mode 100644 index 00000000..0bf8741e --- /dev/null +++ b/src/test/scala/chiselTests/ScalaIntervalSimulatorTest.scala @@ -0,0 +1,96 @@ +// See README.md for license details. + +package chiselTests + +import chisel3._ +import chisel3.experimental._ +import org.scalatest.{FreeSpec, Matchers} + +class ScalaIntervalSimulatorSpec extends FreeSpec with Matchers { + "clip tests" - { + "Should work for closed ranges" in { + val sim = ScalaIntervalSimulator(range"[2,4]") + sim.clip(BigDecimal(1.0)) should be (2.0) + sim.clip(BigDecimal(2.0)) should be (2.0) + sim.clip(BigDecimal(3.0)) should be (3.0) + sim.clip(BigDecimal(4.0)) should be (4.0) + sim.clip(BigDecimal(5.0)) should be (4.0) + } + "Should work for closed ranges with binary point" in { + val sim = ScalaIntervalSimulator(range"[2,6].2") + sim.clip(BigDecimal(1.75)) should be (2.0) + sim.clip(BigDecimal(2.0)) should be (2.0) + sim.clip(BigDecimal(2.25)) should be (2.25) + sim.clip(BigDecimal(2.5)) should be (2.5) + sim.clip(BigDecimal(5.75)) should be (5.75) + sim.clip(BigDecimal(6.0)) should be (6.0) + sim.clip(BigDecimal(6.25)) should be (6.0) + sim.clip(BigDecimal(6.5)) should be (6.0) + sim.clip(BigDecimal(8.5)) should be (6.0) + } + "Should work for open ranges" in { + val sim = ScalaIntervalSimulator(range"(2,4)") + sim.clip(BigDecimal(1.0)) should be (3.0) + sim.clip(BigDecimal(2.0)) should be (3.0) + sim.clip(BigDecimal(3.0)) should be (3.0) + sim.clip(BigDecimal(4.0)) should be (3.0) + sim.clip(BigDecimal(5.0)) should be (3.0) + } + "Should work for open ranges with binary point" in { + val sim = ScalaIntervalSimulator(range"(2,6).2") + sim.clip(BigDecimal(1.75)) should be (2.25) + sim.clip(BigDecimal(2.0)) should be (2.25) + sim.clip(BigDecimal(2.25)) should be (2.25) + sim.clip(BigDecimal(2.5)) should be (2.5) + sim.clip(BigDecimal(5.75)) should be (5.75) + sim.clip(BigDecimal(6.0)) should be (5.75) + sim.clip(BigDecimal(6.25)) should be (5.75) + sim.clip(BigDecimal(6.5)) should be (5.75) + sim.clip(BigDecimal(8.5)) should be (5.75) + } + } + "wrap tests" - { + "Should work for closed ranges" in { + val sim = ScalaIntervalSimulator(range"[2,6]") + sim.wrap(BigDecimal(1.0)) should be (6.0) + sim.wrap(BigDecimal(2.0)) should be (2.0) + sim.wrap(BigDecimal(3.0)) should be (3.0) + sim.wrap(BigDecimal(4.0)) should be (4.0) + sim.wrap(BigDecimal(5.0)) should be (5.0) + sim.wrap(BigDecimal(6.0)) should be (6.0) + sim.wrap(BigDecimal(7.0)) should be (2.0) + } + "Should work for closed ranges with binary point" in { + val sim = ScalaIntervalSimulator(range"[2,6].2") + sim.wrap(BigDecimal(1.75)) should be (6.0) + sim.wrap(BigDecimal(2.0)) should be (2.0) + sim.wrap(BigDecimal(2.25)) should be (2.25) + sim.wrap(BigDecimal(2.5)) should be (2.5) + sim.wrap(BigDecimal(5.75)) should be (5.75) + sim.wrap(BigDecimal(6.0)) should be (6.0) + sim.wrap(BigDecimal(6.25)) should be (2.0) + sim.wrap(BigDecimal(6.5)) should be (2.25) + } + "Should work for open ranges" in { + val sim = ScalaIntervalSimulator(range"(2,6)") + sim.wrap(BigDecimal(1.0)) should be (4.0) + sim.wrap(BigDecimal(2.0)) should be (5.0) + sim.wrap(BigDecimal(3.0)) should be (3.0) + sim.wrap(BigDecimal(4.0)) should be (4.0) + sim.wrap(BigDecimal(5.0)) should be (5.0) + sim.wrap(BigDecimal(6.0)) should be (3.0) + sim.wrap(BigDecimal(7.0)) should be (4.0) + } + "Should work for open ranges with binary point" in { + val sim = ScalaIntervalSimulator(range"(2,6).2") + sim.wrap(BigDecimal(1.75)) should be (5.5) + sim.wrap(BigDecimal(2.0)) should be (5.75) + sim.wrap(BigDecimal(2.25)) should be (2.25) + sim.wrap(BigDecimal(2.5)) should be (2.5) + sim.wrap(BigDecimal(5.75)) should be (5.75) + sim.wrap(BigDecimal(6.0)) should be (2.25) + sim.wrap(BigDecimal(6.25)) should be (2.5) + sim.wrap(BigDecimal(7.0)) should be (3.25) + } + } +} |
