more parsing tests
diff --git a/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java b/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
index a1b30ea..046b906 100644
--- a/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
+++ b/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
@@ -83,6 +83,44 @@
 		assertRequirement(new NotRequirement(new RequiredCapability("x", VersionRange.emptyRange)), iu.getRequiredCapabilities());
 	}
 
+	public void testmergeDepends1() {
+		InstallableUnit iu = getIU("mergeDepends1");
+		assertEquals(false, iu.isSingleton());
+		assertEquals(1, iu.getRequiredCapabilities().length);
+		assertRequirement(new RequiredCapability("a", new VersionRange(new Version(1), false, new Version(3), true)), iu.getRequiredCapabilities());
+	}
+
+	public void testmergeDepends2() {
+		InstallableUnit iu = getIU("mergeDepends2");
+		assertEquals(false, iu.isSingleton());
+		assertEquals(1, iu.getRequiredCapabilities().length);
+		assertRequirement(new RequiredCapability("a", new VersionRange(new Version(1), false, new Version(3), true)), iu.getRequiredCapabilities());
+	}
+
+	public void testmergeDepends3() {
+		InstallableUnit iu = getIU("mergeDepends3");
+		assertEquals(false, iu.isSingleton());
+		assertEquals(2, iu.getRequiredCapabilities().length);
+		assertRequirement(new RequiredCapability("a", new VersionRange(Version.emptyVersion, true, new Version(1), false)), iu.getRequiredCapabilities());
+		assertRequirement(new RequiredCapability("a", new VersionRange(new Version(3), true, Version.maxVersion, true)), iu.getRequiredCapabilities());
+	}
+
+	public void testmergeDepends4() {
+		InstallableUnit iu = getIU("mergeDepends4");
+		assertEquals(false, iu.isSingleton());
+		assertEquals(3, iu.getRequiredCapabilities().length);
+		assertRequirement(new RequiredCapability("a", new VersionRange(new Version(1), false, Version.maxVersion, true)), iu.getRequiredCapabilities());
+		assertRequirement(new RequiredCapability("a", new VersionRange(Version.emptyVersion, true, new Version(3), true)), iu.getRequiredCapabilities());
+		assertRequirement(new RequiredCapability("b", new VersionRange(new Version(2))), iu.getRequiredCapabilities());
+	}
+
+	public void testmergeDepends5() {
+		InstallableUnit iu = getIU("mergeDepends5");
+		assertEquals(false, iu.isSingleton());
+		assertEquals(1, iu.getRequiredCapabilities().length);
+		assertRequirement(new RequiredCapability("a", new VersionRange(new Version(1), true, new Version(3), false)), iu.getRequiredCapabilities());
+	}
+
 	private void assertNotRequirement(IRequiredCapability asserted, IRequiredCapability[] reqs) {
 		for (int i = 0; i < reqs.length; i++) {
 			if (asserted.getName().equals(reqs[i].getName())) {
@@ -93,12 +131,11 @@
 	}
 
 	private void assertRequirement(IRequiredCapability asserted, IRequiredCapability[] reqs) {
-		boolean found = true;
+		boolean found = false;
 		for (int i = 0; i < reqs.length; i++) {
 			if (asserted.getName().equals(reqs[i].getName())) {
-				assertEquals(asserted.getRange(), reqs[i].getRange());
-				assertEquals(asserted.getArity(), reqs[i].getArity());
-				assertEquals(asserted.isNegation(), reqs[i].isNegation());
+				if (asserted.getRange().equals(reqs[i].getRange()) && asserted.getArity() == reqs[i].getArity() && asserted.isNegation() == reqs[i].isNegation())
+					found = true;
 			}
 		}
 		assertEquals(true, found);
diff --git a/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf b/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
index 9c71663..ead36a1 100644
--- a/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
+++ b/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
@@ -52,6 +52,26 @@
 conflicts: x
 provides: x
 
+package: mergeDepends1
+version: 1
+depends: a > 1, a <= 3
+
+package: mergeDepends2
+version: 1
+depends: a <= 3, a > 1
+
+package: mergeDepends3
+version: 1
+depends: a < 1, a >= 3
+
+package: mergeDepends4
+version: 1
+depends: a > 1, b = 2, a <= 3
+
+package: mergeDepends5
+version: 1
+depends: a >= 1, a < 3
+
 request: SAMPLE-DATA
 install: a