def test_difference_with_other_set_no_same_elements(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["D", "E", "F", "G"])
     union_set = st.difference(other_st)
     self.assertCountEqual(
         union_set.list,
         ["A", "B", "C", "D", "E", "F", "G"])  # Ignore item order
 def test_add(self):
     st = Set()
     st.add("A")
     assert st.size == 1
     st.add("B")
     assert st.size == 2
     st.add("C")
     assert st.size == 3
     with self.assertRaises(ValueError):
         st.add("A")
 def test_contains(self):
     st = Set()
     st.add("A")
     assert st.contains("A") is True
     st.add("B")
     assert st.contains("B") is True
     st.add("C")
     assert st.contains("C") is True
     st.remove("C")
     assert st.contains("C") is False
     st.remove("B")
     assert st.contains("B") is False
     st.remove("A")
     assert st.contains("A") is False
 def test_remove(self):
     st = Set()
     st.add("A")
     assert st.size == 1
     st.add("B")
     assert st.size == 2
     st.add("C")
     assert st.size == 3
     st.remove("C")
     assert st.size == 2
     st.remove("B")
     assert st.size == 1
     st.remove("A")
     assert st.size == 0
     with self.assertRaises(ValueError):
         st.remove("A")
 def test_intersection_with_other_set_no_same_elements(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["D", "E", "F", "G"])
     union_set = st.intersection(other_st)
     self.assertCountEqual(union_set.list, [])  # Ignore item order
 def test_init(self):
     st = Set()
     assert st.list == []
     assert st.size == 0
 def test_union_with_other_set_some_same_elements(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["A", "B", "D", "E"])
     union_set = st.union(other_st)
     self.assertCountEqual(union_set.list,
                           ["A", "B", "C", "D", "E"])  # Ignore item order
 def test_init_with_list(self):
     st = Set(["A", "B", "C"])
     assert st.list == ["A", "B", "C"]
     assert st.size == 3
 def test_is_subset_with_other_set_no_same_elements(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["D", "E", "F", "G"])
     assert st.is_subset(other_st) is False
 def test_is_subset_with_other_set_same_elements(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["A", "B", "C"])
     assert st.is_subset(other_st) is True
 def test_is_subset(self):
     st = Set(["A", "B", "C"])
     other_st = Set(["A", "B"])
     assert st.is_subset(other_st) is True