Exemple #1
0
        public void TestCtwContextTreeNode()
        {
            var tree = new CTWContextTree(5);
            var n    = new CTWContextTreeNode(tree);

            Assert.AreEqual(0.0, n.LogKt, 0.001);
            Assert.AreEqual(0.0, n.LogProbability, 0.001);
            Assert.AreEqual(0, n.SymbolCount(0));
            Assert.AreEqual(0, n.SymbolCount(1));
            Assert.AreEqual(0, n.NumberOf0S);
            Assert.AreEqual(0, n.NumberOf1S);
            Assert.AreEqual(tree, n.Tree);
            Assert.AreEqual(0, n.Visits());
            Assert.AreEqual(true, n.IsLeaf());
            Assert.AreEqual(1, n.Size());

            n.Update(1);
            n.Update(0);
            n.Update(0);
            n.Update(0);
            n.Update(1);

            Assert.AreEqual(-4.4465, n.LogKt, 0.001);
            Assert.AreEqual(-4.44656, n.LogProbability, 0.001);
            Assert.AreEqual(3, n.SymbolCount(0));
            Assert.AreEqual(2, n.SymbolCount(1));
            Assert.AreEqual(3, n.NumberOf0S);
            Assert.AreEqual(2, n.NumberOf1S);
            Assert.AreEqual(tree, n.Tree);
            Assert.AreEqual(5, n.Visits());
            Assert.AreEqual(true, n.IsLeaf());
            Assert.AreEqual(1, n.Size());


            n.Revert(1);

            Assert.AreEqual(-3.2425, n.LogKt, 0.001);
            Assert.AreEqual(-3.24259, n.LogProbability, 0.001);
            Assert.AreEqual(3, n.SymbolCount(0));
            Assert.AreEqual(1, n.SymbolCount(1));
            Assert.AreEqual(3, n.NumberOf0S);
            Assert.AreEqual(1, n.NumberOf1S);
            Assert.AreEqual(tree, n.Tree);
            Assert.AreEqual(4, n.Visits());
            Assert.AreEqual(true, n.IsLeaf());
            Assert.AreEqual(1, n.Size());

            //Todo:test non-leaf
        }
Exemple #2
0
        public void TestMethod1()
        {
            //here we make instances of CTWContextTreeFast and CTWContextTree and test if they behave in same way
            var ctf = new CTWContextTreeFast(9);
            var ct  = new CTWContextTree(9);

            int[] input = { 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1 };
            ct.update_tree(input);
            ctf.update_tree(input);
            ct.revert_tree(4);
            ctf.revert_tree(4);
            int[] input2 = { 0, 0, 1 };
            ct.update_tree(input2);
            ctf.update_tree(input2);

            Assert.IsTrue(ctf.compare(ct));
        }