@Test
 public void powerSet() {
   MutableSet<String> set =
       MultiReaderUnifiedSet.newSetWith("1", "2", "3", "4").asReadUntouchable();
   MutableSet<UnsortedSetIterable<String>> powerSet = set.powerSet();
   Verify.assertSize((int) StrictMath.pow(2, set.size()), powerSet);
   Verify.assertContains(UnifiedSet.<String>newSet(), powerSet);
   Verify.assertContains(set, powerSet);
 }
  @Test
  public void symmetricDifference() {
    MutableSet<String> set =
        MultiReaderUnifiedSet.newSetWith("1", "2", "3", "4").asReadUntouchable();
    MutableSet<String> difference =
        set.symmetricDifference(UnifiedSet.newSetWith("2", "3", "4", "5", "not present"));
    Verify.assertContains("1", difference);
    Assert.assertTrue(
        difference.containsAllIterable(
            Interval.fromTo(set.size() + 1, 5).transform(Functions.getToString())));
    for (int i = 2; i <= set.size(); i++) {
      Verify.assertNotContains(String.valueOf(i), difference);
    }

    Verify.assertSize(
        set.size() + 1, set.symmetricDifference(UnifiedSet.newSetWith("not present")));
  }