public void OnesComplement8_Constructor() { // arrange, act var ones = new OnesComplement8("test"); // assert Assert.AreEqual(VoltageSignal.LOW, ones.V.V, "Constructor: Voltage"); Assert.AreEqual(VoltageSignal.LOW, ones.Invert.V, "Constructor: Invert"); Assert.AreEqual(VoltageSignal.LOW, ones.I0.V, "Constructor: I0"); Assert.AreEqual(VoltageSignal.LOW, ones.I1.V, "Constructor: I1"); Assert.AreEqual(VoltageSignal.LOW, ones.I2.V, "Constructor: I2"); Assert.AreEqual(VoltageSignal.LOW, ones.I3.V, "Constructor: I3"); Assert.AreEqual(VoltageSignal.LOW, ones.I4.V, "Constructor: I4"); Assert.AreEqual(VoltageSignal.LOW, ones.I5.V, "Constructor: I5"); Assert.AreEqual(VoltageSignal.LOW, ones.I6.V, "Constructor: I6"); Assert.AreEqual(VoltageSignal.LOW, ones.I7.V, "Constructor: I7"); Assert.AreEqual(VoltageSignal.LOW, ones.O0.V, "Constructor: O0"); Assert.AreEqual(VoltageSignal.LOW, ones.O1.V, "Constructor: O1"); Assert.AreEqual(VoltageSignal.LOW, ones.O2.V, "Constructor: O2"); Assert.AreEqual(VoltageSignal.LOW, ones.O3.V, "Constructor: O3"); Assert.AreEqual(VoltageSignal.LOW, ones.O4.V, "Constructor: O4"); Assert.AreEqual(VoltageSignal.LOW, ones.O5.V, "Constructor: O5"); Assert.AreEqual(VoltageSignal.LOW, ones.O6.V, "Constructor: O6"); Assert.AreEqual(VoltageSignal.LOW, ones.O7.V, "Constructor: O7"); Assert.AreEqual("00000000", ones.ToString(), "Constructor: ToString()"); }
public void OnesComplement8() { // arrange var ones = new OnesComplement8("test"); ones.V.V = VoltageSignal.HIGH; for (ushort input = 0; input < 0x100; ++input) { // act, assert OnesComplement8_TestHelper(ones, (byte)input, false); OnesComplement8_TestHelper(ones, (byte)input, true); } }
private static void OnesComplement8_TestHelper(OnesComplement8 ones, byte input, bool invert) { ones.Invert.V = (invert ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I0.V = ((input & 0x01) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I1.V = ((input & 0x02) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I2.V = ((input & 0x04) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I3.V = ((input & 0x08) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I4.V = ((input & 0x10) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I5.V = ((input & 0x20) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I6.V = ((input & 0x40) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); ones.I7.V = ((input & 0x80) > 0 ? VoltageSignal.HIGH : VoltageSignal.LOW); byte output = (invert ? (byte)~input : input); Assert.IsTrue((output & 0x01) > 0 ? (ones.O0.V == VoltageSignal.HIGH) : (ones.O0.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x02) > 0 ? (ones.O1.V == VoltageSignal.HIGH) : (ones.O1.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x04) > 0 ? (ones.O2.V == VoltageSignal.HIGH) : (ones.O2.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x08) > 0 ? (ones.O3.V == VoltageSignal.HIGH) : (ones.O3.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x10) > 0 ? (ones.O4.V == VoltageSignal.HIGH) : (ones.O4.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x20) > 0 ? (ones.O5.V == VoltageSignal.HIGH) : (ones.O5.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x40) > 0 ? (ones.O6.V == VoltageSignal.HIGH) : (ones.O6.V == VoltageSignal.LOW)); Assert.IsTrue((output & 0x80) > 0 ? (ones.O7.V == VoltageSignal.HIGH) : (ones.O7.V == VoltageSignal.LOW)); }