@Test public void testDistributeListWithSeveralBagsWithDifferentContents() { SubstitutionBag content1 = new SubstitutionBag(); content1.tryAddSubstitution(variableX, zero); Unification tmp1 = new Unification(); tmp1.add(content1); SubstitutionBag content2 = new SubstitutionBag(); content2.tryAddSubstitution(variableY, zero); Unification tmp2 = new Unification(); tmp2.add(content2); bags.add(new Unification()); bags.add(tmp1); bags.add(tmp2); SubstitutionBag res = new SubstitutionBag(); expectedResult.add(res); res.tryAddSubstitutions(content1); res.tryAddSubstitutions(content2); Unification result = Unification.distribute(bags); assertTrue(result.isSuccess()); assertEquals(result, expectedResult); }
@Test public void testDistributeListWithSeveralSetsWithDifferentMultiplicity() { SubstitutionBag content1a = new SubstitutionBag(); content1a.tryAddSubstitution(variableX, zero); Unification content = new Unification(); content.add(content1a); SubstitutionBag content2a = new SubstitutionBag(); content2a.tryAddSubstitution(variableY, zero); SubstitutionBag content2b = new SubstitutionBag(); content2b.tryAddSubstitution(variableY, one); Unification content2 = new Unification(); content2.add(content2a); content2.add(content2b); bags.add(new Unification()); bags.add(content); bags.add(content2); SubstitutionBag res1 = new SubstitutionBag(); expectedResult.add(res1); res1.tryAddSubstitutions(content1a); res1.tryAddSubstitution(variableY, zero); SubstitutionBag res2 = new SubstitutionBag(); expectedResult.add(res2); res2.tryAddSubstitutions(content1a); res2.tryAddSubstitution(variableY, one); Unification result = Unification.distribute(bags); assertTrue(result.isSuccess()); assertEquals(result, expectedResult); }