From 91969fbb8e1a846c21cdfe6dc7e2b20534d86119 Mon Sep 17 00:00:00 2001 From: Christian Femers Date: Mon, 26 Aug 2019 03:28:58 +0200 Subject: [PATCH] My proposal for resolving add92039f433cd315f2087da9c1a0de899927d96 The choice was made based on functionality (and a bit performance) and mostly readability. --- .../net/mograsim/logic/core/types/Bit.java | 5 ++ .../mograsim/logic/core/types/BitVector.java | 63 ++++++------------- .../logic/core/types/BitVectorTest.java | 37 +++-------- .../am2900/am2910/TestableAm2910Impl.java | 2 +- 4 files changed, 34 insertions(+), 73 deletions(-) diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java index 8bff357a..da7b8c91 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/Bit.java @@ -18,6 +18,11 @@ public enum Bit implements StrictLogicType this.symbol = symbol; } + /** + * Returns if the Bit is binary, this is only true for ZERO and ONE. + * + * @return true if and only if this == ONE || this == ZERO + */ public boolean isBinary() { return this == ONE || this == ZERO; diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java index 6a364034..e17ae6e1 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java @@ -57,43 +57,12 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable BitVector.parse("00X1").toBigInteger(false)); - } - @Test void testOfLongInt() { - assertEquals(BitVector.parse("101"), BitVector.of(0b101L, 3)); - assertEquals(BitVector.parse("01010"), BitVector.of(0b01010L, 5)); - assertEquals(BitVector.parse("10101"), BitVector.of(-11L, 5)); - assertEquals(BitVector.parse("0000"), BitVector.of(0L, 4)); + assertEquals(BitVector.parse("101"), BitVector.from(0b101L, 3)); + assertEquals(BitVector.parse("01010"), BitVector.from(0b01010L, 5)); + assertEquals(BitVector.parse("10101"), BitVector.from(-11L, 5)); + assertEquals(BitVector.parse("0000"), BitVector.from(0L, 4)); } @Test void testOfBigIntegerInt() { - assertEquals(BitVector.parse("101"), BitVector.of(BigInteger.valueOf(0b101), 3)); - assertEquals(BitVector.parse("01010"), BitVector.of(BigInteger.valueOf(0b01010), 5)); - assertEquals(BitVector.parse("10101"), BitVector.of(BigInteger.valueOf(-11), 5)); - assertEquals(BitVector.parse("0000"), BitVector.of(BigInteger.valueOf(0), 4)); + assertEquals(BitVector.parse("101"), BitVector.from(BigInteger.valueOf(0b101), 3)); + assertEquals(BitVector.parse("01010"), BitVector.from(BigInteger.valueOf(0b01010), 5)); + assertEquals(BitVector.parse("10101"), BitVector.from(BigInteger.valueOf(-11), 5)); + assertEquals(BitVector.parse("0000"), BitVector.from(BigInteger.valueOf(0), 4)); } @Test diff --git a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java index 1695eae3..f3686aa2 100644 --- a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java +++ b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/TestableAm2910Impl.java @@ -54,7 +54,7 @@ public class TestableAm2910Impl implements TestableAm2910 @Override public void setInstruction(Am2910_Inst inst) { - I.setState(BitVector.of(inst.ordinal(), 4)); + I.setState(BitVector.from(inst.ordinal(), 4)); } @Override -- 2.17.1