Exemple #1
0
        private void TestSimpleState(Gates.TruthTable.StatefulTruthTable stt)
        {
            Assert.AreEqual(2, stt.NumberOfInputs);
            Assert.AreEqual(1, stt.Output.Length);
            Assert.AreEqual(8, stt.Table.GetLength(0));    // 3 bits total (2 inp, 1 state)
            Assert.AreEqual(2, stt.Table[0].GetLength(0)); // 2 bits total (1 out, 1 state)


            // try it out several sequences
            for (int i = 0; i < 2; i++)
            {
                // RESET
                stt[0] = false;
                stt[1] = true;

                Assert.AreEqual(stt.Output[0], false);
                // HOLD
                stt[0] = false;
                stt[1] = false;

                Assert.AreEqual(stt.Output[0], false);

                // SET
                stt[0] = true;
                stt[1] = false;
                Assert.AreEqual(stt.Output[0], true);

                // HOLD
                stt[0] = false;
                stt[1] = false;

                Assert.AreEqual(stt.Output[0], true);
            }
        }
Exemple #2
0
        private Gates.TruthTable.StatefulTruthTable CreateSimpleState()
        {
            Gates.TruthTable.StatefulTruthTable stt = new Gates.TruthTable.StatefulTruthTable(2, 1, 1);

            // inputs first, state at end

            // 0 0 is keep state
            stt[new bool[] { false, false, false }, 0] = false;
            stt[new bool[] { false, false, false }, 1] = false;
            stt[new bool[] { false, false, true }, 0]  = true;
            stt[new bool[] { false, false, true }, 1]  = true;

            // 0 1 is reset
            stt[new bool[] { false, true, false }, 0] = false;
            stt[new bool[] { false, true, false }, 1] = false;
            stt[new bool[] { false, true, true }, 0]  = false;
            stt[new bool[] { false, true, true }, 1]  = false;


            // 1 0 is set
            stt[new bool[] { true, false, false }, 0] = true;
            stt[new bool[] { true, false, false }, 1] = true;
            stt[new bool[] { true, false, true }, 0]  = true;
            stt[new bool[] { true, false, true }, 1]  = true;

            return(stt);
        }
Exemple #3
0
        public void CloneTT()
        {
            Gates.TruthTable.TruthTable tt  = CreateLines();
            Gates.TruthTable.TruthTable tt2 = (Gates.TruthTable.TruthTable)tt.Clone();
            TestLines(tt2);

            Gates.TruthTable.StatefulTruthTable stt  = CreateSimpleState();
            Gates.TruthTable.StatefulTruthTable stt2 = (Gates.TruthTable.StatefulTruthTable)stt.Clone();
            TestSimpleState(stt2);
        }
Exemple #4
0
        private void TestToggleState(Gates.TruthTable.StatefulTruthTable stt)
        {
            Assert.AreEqual(1, stt.NumberOfInputs);
            Assert.AreEqual(1, stt.Output.Length);
            Assert.AreEqual(4, stt.Table.GetLength(0));    // 4 bits total (1 inp, 1 state)
            Assert.AreEqual(2, stt.Table[0].GetLength(0)); // 2 bits total (1 out, 1 state)


            bool st = true;

            for (int i = 0; i < 10; i++)
            {
                stt[0] = false;
                Assert.AreEqual(st, stt.Output[0]);

                stt[0] = true;
                st     = !st;
                Assert.AreEqual(st, stt.Output[0]);
            }
        }
Exemple #5
0
        private Gates.TruthTable.StatefulTruthTable CreateToggleState()
        {
            Gates.TruthTable.StatefulTruthTable stt = new Gates.TruthTable.StatefulTruthTable(1, 1, 1);

            // inputs first, state at end


            // !!! FOR TEST PURPOSES INVERT OUTPUT STATE

            // 0 is keep state
            stt[new bool[] { false, false }, 0] = true;
            stt[new bool[] { false, false }, 1] = false;
            stt[new bool[] { false, true }, 0]  = false;
            stt[new bool[] { false, true }, 1]  = true;

            // 1 is toggle
            stt[new bool[] { true, false }, 0] = false;
            stt[new bool[] { true, false }, 1] = true;
            stt[new bool[] { true, true }, 0]  = true;
            stt[new bool[] { true, true }, 1]  = false;

            return(stt);
        }
Exemple #6
0
 public void ToggleStateTTTest()
 {
     Gates.TruthTable.StatefulTruthTable stt = CreateToggleState();
     TestToggleState(stt);
 }
Exemple #7
0
 public void SimpleStateTTTest()
 {
     Gates.TruthTable.StatefulTruthTable stt = CreateSimpleState();
     TestSimpleState(stt);
 }