public void SumRegisterOutputsSumOfAAndB()
        {
            DataBus   bus     = new DataBus();
            SignalBus signals = new SignalBus();
            FlagBus   flagBus = new FlagBus();

            Register a   = new ARegister(bus, signals);
            Register b   = new BRegister(bus, signals);
            Register sum = new SumRegister(a, b, bus, signals, flagBus);

            a.Value = 200;
            b.Value = 100;

            signals.EO = true;
            sum.WriteToBus();

            Assert.AreEqual(44, bus.Value);
            Assert.IsTrue(flagBus.Carry);
        }
        public void SumRegisterOutputsSubstractionOfAAndB()
        {
            DataBus   bus     = new DataBus();
            SignalBus signals = new SignalBus();
            FlagBus   flagBus = new FlagBus();

            Register a   = new ARegister(bus, signals);
            Register b   = new BRegister(bus, signals);
            Register sum = new SumRegister(a, b, bus, signals, flagBus);

            a.Value = 166;
            b.Value = 166;

            signals.EO = true;
            signals.SU = true;
            sum.WriteToBus();

            Assert.AreEqual(0, bus.Value);
            Assert.IsTrue(flagBus.Zero);
        }