void testUnion() {
      EnumSet<SeaBird> procellariidae = mPetrelProcellariidae +
                                        mNonPetrelProcellariidae;
      MOZ_ASSERT(procellariidae.size() == 5);

      // Both procellariidae and mPetrels include GADFLY_PETREL and TRUE_PETREL
      EnumSet<SeaBird> procellariiformes = mDiomedeidae + procellariidae +
                                           mPetrels;
      MOZ_ASSERT(procellariiformes.size() == 8);
    }
    void testAddAll() {
      EnumSet<SeaBird> procellariidae;
      procellariidae += mPetrelProcellariidae;
      procellariidae += mNonPetrelProcellariidae;
      MOZ_ASSERT(procellariidae.size() == 5);

      // Both procellariidae and mPetrels include GADFLY_PERTEL and TRUE_PETREL
      EnumSet<SeaBird> procellariiformes;
      procellariiformes += mDiomedeidae;
      procellariiformes += procellariidae;
      procellariiformes += mPetrels;
      MOZ_ASSERT(procellariiformes.size() == 8);
    }
 void testIntersect() {
   EnumSet<SeaBird> likes = mPetrels;
   likes &= mPetrelProcellariidae;
   MOZ_ASSERT(likes.size() == 2);
   MOZ_ASSERT(likes.contains(GADFLY_PETREL));
   MOZ_ASSERT(likes.contains(TRUE_PETREL));
 }
 void testRemoveAllFrom() {
   EnumSet<SeaBird> likes = mPetrels;
   likes -= mPetrelProcellariidae;
   MOZ_ASSERT(likes.size() == 2);
   MOZ_ASSERT(likes.contains(DIVING_PETREL));
   MOZ_ASSERT(likes.contains(STORM_PETREL));
 }
 void testRemove() {
   EnumSet<SeaBird> likes = mPetrels - TRUE_PETREL -
                            DIVING_PETREL;
   MOZ_ASSERT(likes.size() == 2);
   MOZ_ASSERT(likes.contains(GADFLY_PETREL));
   MOZ_ASSERT(likes.contains(STORM_PETREL));
 }
 void testDuplicates() {
   EnumSet<SeaBird> likes = mPetrels;
   likes += GADFLY_PETREL;
   likes += TRUE_PETREL;
   likes += DIVING_PETREL;
   likes += STORM_PETREL;
   MOZ_ASSERT(likes.size() == 4);
   MOZ_ASSERT(likes == mPetrels);
 }
    void testCopy() {
      EnumSet<SeaBird> likes = mPetrels;
      likes -= TRUE_PETREL;
      MOZ_ASSERT(mPetrels.size() == 4);
      MOZ_ASSERT(mPetrels.contains(TRUE_PETREL));

      MOZ_ASSERT(likes.size() == 3);
      MOZ_ASSERT(likes.contains(GADFLY_PETREL));
      MOZ_ASSERT(likes.contains(DIVING_PETREL));
      MOZ_ASSERT(likes.contains(STORM_PETREL));
    }
 void testAdd() {
   EnumSet<SeaBird> seen = mPetrels + CORMORANT +
                                      STORM_PETREL;
   MOZ_ASSERT(mPetrels.size() == 4);
   MOZ_ASSERT(!mPetrels.contains(CORMORANT));
   MOZ_ASSERT(seen.size() == 5);
   MOZ_ASSERT(seen.contains(GADFLY_PETREL));
   MOZ_ASSERT(seen.contains(TRUE_PETREL));
   MOZ_ASSERT(seen.contains(DIVING_PETREL));
   MOZ_ASSERT(seen.contains(STORM_PETREL));
   MOZ_ASSERT(seen.contains(CORMORANT));
 }