You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2016/06/02 10:27:22 UTC
[3/4] jena git commit: SetUtils.symmetricDifference
SetUtils.symmetricDifference
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/4918d7fa
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/4918d7fa
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/4918d7fa
Branch: refs/heads/master
Commit: 4918d7fa6ee5361351e04ed5c6ca168dbd09af7f
Parents: e0d6fd7
Author: Andy Seaborne <an...@apache.org>
Authored: Thu Jun 2 10:00:07 2016 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Thu Jun 2 10:00:07 2016 +0100
----------------------------------------------------------------------
.../org/apache/jena/atlas/lib/SetUtils.java | 15 ++++++
.../org/apache/jena/atlas/lib/TestSetUtils.java | 48 ++++++++++++++++----
2 files changed, 53 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/4918d7fa/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
index bcf825b..57db41e 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/SetUtils.java
@@ -48,6 +48,21 @@ public class SetUtils
return s3 ;
}
+ /** union difference intersection */
+ public static <T> Set<T> symmetricDifference(Set<? extends T> s1, Set<? extends T> s2)
+ {
+ Set<T> s3 = new HashSet<>() ;
+ s1.forEach(x -> {
+ if ( ! s2.contains(x) )
+ s3.add(x) ;
+ }) ;
+ s2.forEach(x -> {
+ if ( ! s1.contains(x) )
+ s3.add(x) ;
+ }) ;
+ return s3 ;
+ }
+
/** Return is s1 \ s2 */
public static <T> Set<T> difference(Set<? extends T> s1, Set<? extends T> s2)
http://git-wip-us.apache.org/repos/asf/jena/blob/4918d7fa/jena-base/src/test/java/org/apache/jena/atlas/lib/TestSetUtils.java
----------------------------------------------------------------------
diff --git a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestSetUtils.java b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestSetUtils.java
index 92c1b0d..689fb0f 100644
--- a/jena-base/src/test/java/org/apache/jena/atlas/lib/TestSetUtils.java
+++ b/jena-base/src/test/java/org/apache/jena/atlas/lib/TestSetUtils.java
@@ -36,7 +36,7 @@ public class TestSetUtils extends BaseTest
test(x,1,2,3) ;
}
- @Test public void set02()
+ @Test public void set_intersection_1()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(1,2,3) ;
@@ -46,7 +46,7 @@ public class TestSetUtils extends BaseTest
test(x3, 1,2,3) ;
}
- @Test public void set03()
+ @Test public void set_intersection_2()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(2,9) ;
@@ -56,7 +56,7 @@ public class TestSetUtils extends BaseTest
test(x3, 2) ;
}
- @Test public void set04()
+ @Test public void set_intersection_3()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(6,7,8) ;
@@ -66,7 +66,7 @@ public class TestSetUtils extends BaseTest
test(x3) ;
}
- @Test public void set05()
+ @Test public void set_union_1()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(1,2,3) ;
@@ -76,7 +76,7 @@ public class TestSetUtils extends BaseTest
test(x3, 1,2,3) ;
}
- @Test public void set06()
+ @Test public void set_union_2()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(2,9) ;
@@ -86,7 +86,7 @@ public class TestSetUtils extends BaseTest
test(x3, 1,2,3,9) ;
}
- @Test public void set07()
+ @Test public void set_union_3()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set() ;
@@ -96,7 +96,7 @@ public class TestSetUtils extends BaseTest
test(x3,1,2,3) ;
}
- @Test public void set08()
+ @Test public void set_difference_1()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set() ;
@@ -106,7 +106,7 @@ public class TestSetUtils extends BaseTest
test(x3) ;
}
- @Test public void set09()
+ @Test public void set_difference_2()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(3) ;
@@ -116,7 +116,7 @@ public class TestSetUtils extends BaseTest
test(x3) ;
}
- @Test public void set10()
+ @Test public void set_difference_3()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(4,5,6) ;
@@ -126,7 +126,7 @@ public class TestSetUtils extends BaseTest
test(x3,4,5,6) ;
}
- @Test public void set11()
+ @Test public void set_disjoint_1()
{
Set<Integer> x1 = set(1,2,3) ;
Set<Integer> x2 = set(5,6) ;
@@ -136,6 +136,34 @@ public class TestSetUtils extends BaseTest
assertFalse(SetUtils.disjoint(x1, x1)) ;
}
+ @Test public void set_symmetric_differnce_1() {
+ Set<Integer> x1 = set(1,2,3) ;
+ Set<Integer> x2 = set(4,3) ;
+ Set<Integer> expected = set(4,1,2) ;
+ assertEquals(expected, SetUtils.symmetricDifference(x1, x2)) ;
+ }
+
+ @Test public void set_symmetric_differnce_2() {
+ Set<Integer> x1 = set(1,2,3) ;
+ Set<Integer> x2 = set(9,8) ;
+ Set<Integer> expected = SetUtils.union(x1, x2) ;
+ assertEquals(expected, SetUtils.symmetricDifference(x1, x2)) ;
+ }
+
+ @Test public void set_symmetric_differnce_3() {
+ Set<Integer> x1 = set(1,2,3) ;
+ Set<Integer> x2 = set(2,3,1) ;
+ Set<Integer> expected = set() ;
+ assertEquals(expected, SetUtils.symmetricDifference(x1, x2)) ;
+ }
+
+ @Test public void set_symmetric_differnce_4() {
+ Set<Integer> x1 = set(1,2,3) ;
+ Set<Integer> x2 = set() ;
+ Set<Integer> expected = set(1,2,3) ;
+ assertEquals(expected, SetUtils.symmetricDifference(x1, x2)) ;
+ assertEquals(expected, SetUtils.symmetricDifference(x2, x1)) ;
+ }
// --------
private static Set<Integer> set(int... values)