public void test_unify_dyna_object() { /* * assert unify_object(Foo(1, 2), Foo(1, 2), {}) == {} * assert unify_object(Foo(1, 2), Foo(1, 3), {}) == False * assert unify_object(Foo(1, 2), Foo(1, var(3)), {}) == {var(3): 2} */ dynamic foo = new DyLogicObject(); foo.a = 1; foo.b = 2; dynamic foo2 = new DyLogicObject(); foo2.a = 1; foo2.b = 2; var dict = new Dictionary <object, object>(); bool result = LogicSharp.Unify_Object(foo, foo2, dict); Assert.True(result); Assert.True(dict.Count == 0); dynamic foo3 = new DyLogicObject(); foo3.a = 1; foo3.b = 3; result = LogicSharp.Unify_Object(foo, foo3, dict); Assert.False(result); dynamic foo4 = new DyLogicObject(); foo4.a = 1; var variable = new Var(3); foo4.b = variable; result = LogicSharp.Unify_Object(foo, foo4, dict); Assert.True(result); Assert.True(dict.Count == 1); Assert.True(dict.ContainsKey(variable)); Assert.True(dict[variable].Equals(2)); }