Esempio n. 1
0
        public void ClearTest()
        {
            var actual = _symbolTable.IsEmpty();

            Assert.IsFalse(actual);

            _symbolTable.Clear();
            actual = _symbolTable.IsEmpty();
            Assert.IsTrue(actual);
        }
        public void DeleteTest()
        {
            // clear all entries
            _symbolTable.Delete("she");
            _symbolTable.Delete("sells");
            _symbolTable.Delete("sea");
            _symbolTable.Delete("shells");
            _symbolTable.Delete("by");
            _symbolTable.Delete("the");
            _symbolTable.Delete("sea");
            _symbolTable.Delete("shore");
            _symbolTable.Delete("a");

            var    expected = 0;
            object actual   = _symbolTable.GetSize();

            Assert.AreEqual(expected, actual);

            InitSymbolTable();

            _symbolTable.Delete("by");
            Assert.ThrowsException <KeyNotFoundException>(() => _symbolTable.Get("by"));

            _symbolTable.Delete("shore");
            Assert.ThrowsException <KeyNotFoundException>(() => _symbolTable.Get("shore"));

            expected = 3;
            actual   = _symbolTable.Get("shells");
            Assert.AreEqual(expected, actual);

            expected = 6;
            actual   = _symbolTable.Get("sea");
            Assert.AreEqual(expected, actual);

            _symbolTable.Delete("sea");
            expected = 1;
            actual   = _symbolTable.Get("sells");
            Assert.AreEqual(expected, actual);

            // invalid entry
            _symbolTable.Delete("by");
            Assert.ThrowsException <KeyNotFoundException>(() => _symbolTable.Get("by"));

            // delete root
            _symbolTable.Clear();
            _symbolTable.Put("a", 0);
            _symbolTable.Delete("a");
            Assert.ThrowsException <KeyNotFoundException>(() => _symbolTable.Get("a"));
            expected = 0;
            actual   = _symbolTable.GetSize();
            Assert.AreEqual(expected, actual);
        }