public static bool Do(bool s, bool d1, bool d0) { var nand1 = Gates.Nand(s, d1); var nand2 = Gates.Nand(Gates.Invert(s), d0); return(Gates.Nand(nand1, nand2)); }
public static Bit2 HalfAdder(bool a, bool b) { var nandAb = Gates.Nand(a, b); var nand1 = Gates.Nand(a, nandAb); var nand2 = Gates.Nand(b, nandAb); var nand3 = Gates.Nand(nand1, nand2); var nand5 = Gates.Nand(nandAb, nandAb); return(new Bit2(nand5, nand3)); }
public void False_false_should_return_true() { var res = Gates.Nand(false, false); res.Should().BeTrue(); }
public void True_true_should_return_false() { var res = Gates.Nand(true, true); res.Should().BeFalse(); }