Files
nand2tetris/projects/JackCompiler/SymbolTableTest/MetaSymbolTableTest.cs

44 lines
1.2 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using JackAnalyzer;
namespace MetaSymbolTableTest
{
[TestClass]
public class MetaSymbolTableTest
{
[TestMethod]
public void CounterTest()
{
MetaSymbolTable st = new MetaSymbolTable();
st.Define("x", "int", SymbolKind.Var);
Assert.AreEqual(1, st.VarCount(SymbolKind.Var));
Assert.AreEqual(0, st.IndexOf("x"));
st.Define("y", "String", SymbolKind.Var);
Assert.AreEqual(2, st.VarCount(SymbolKind.Var));
Assert.AreEqual(1, st.IndexOf("y"));
st.Define("z", "String", SymbolKind.Field);
Assert.AreEqual(1, st.VarCount(SymbolKind.Field));
Assert.AreEqual(0, st.IndexOf("z"));
}
public void ResetTest()
{
MetaSymbolTable st = new MetaSymbolTable();
st.Define("x", "int", SymbolKind.Var);
Assert.AreEqual(1, st.VarCount(SymbolKind.Var));
Assert.AreEqual(0, st.IndexOf("x"));
st.ResetFunctionTable();
try
{
st.IndexOf("x");
Assert.Fail();
} catch { }
}
}
}