public void MatchTwoVariablesWithList()
{
Context context = new Context();
Variable headvar = new Variable("H");
Variable tailvar = new Variable("T");
var list = new List(headvar, tailvar);
var list2 = new List(1, new List(2, new List(3, null)));
MatchExpression expr = new MatchExpression(new ConstantExpression(list), new ConstantExpression(list2));
expr.Evaluate(context);
var result1 = context.GetValue("H");
var result2 = context.GetValue("T");
Assert.IsNotNull(result1);
Assert.AreEqual(1, result1);
Assert.IsNotNull(result2);
Assert.IsInstanceOfType(result2, typeof(List));
Assert.AreEqual("[2,3]", result2.ToString());
}