public void MatchWithAVariable()
{
List list = new List(1, new Variable("X"));
List list2 = new List(1, new List(2, 3));
Context context = new Context();
Assert.IsTrue(list.Match(list2, context));
Assert.AreEqual(list2.Tail, context.GetValue("X"));
Assert.IsTrue(list2.Match(list, context));
Assert.AreEqual(list2.Tail, context.GetValue("X"));
}