def test_set_with_three_elements(self):
     s = {'a', 'b', 'c'}
     self.assertSetEqual(
         set(subsets(s)),
         self.to_frozenset([
             set(), {'a'}, {'b'}, {'a', 'b'}, {'c'}, {'b', 'c'}, {'a', 'c'},
             {'a', 'b', 'c'}
         ]))
 def test_set_with_twelve_elements(self):
     s = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l'}
     self.assertEqual(len(list(subsets(s))), 2**12)
 def test_singleton_set(self):
     self.assertSetEqual(set(subsets({'a'})),
                         self.to_frozenset([set(), {'a'}]))
 def test_set_with_two_elements(self):
     self.assertSetEqual(
         set(subsets({'a', 'b'})),
         self.to_frozenset([set(), {'a'}, {'b'}, {'a', 'b'}]))
 def test_empty_set(self):
     self.assertSetEqual(set(subsets(set())), self.to_frozenset([set()]))