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