示例#1
0
 def test_07(self):
     sizes = {
         'Taylor': 3,
         'Kendall': 4,
         'Jordan': 1,
         'Drew': 3,
         'Avery': 4,
         'Kelsey': 3,
         'Dakota': 3,
         'Logan': 4,
         'Sydney': 4,
         'Pat': 4,
         'Casey': 4,
         'Jesse': 4,
         'Corey': 4,
         'Rowan': 2,
         'Devin': 3,
         'Shawn': 4,
         'Madison': 4,
         'Jamie': 3,
         'Addison': 2,
         'Cameron': 4,
         'Peyton': 4,
         'Carson': 4
     }
     school = lab.School(self.data)
     school.add_student(["Pat", "c++", "python"])
     for s in school:
         ind_set = school.find_independent_set(s)
         self.assertEqual(len(ind_set), sizes[s])
         self.assertTrue(self.is_independent_set(school, ind_set, s))
示例#2
0
 def test_03(self):
     school = lab.School(self.data)
     sizes = {2: 1, 11: 3, 10: 1, 13: 2}
     for i in range(2, 22):
         cliques = school.get_cliques_size_n(i)
         self.assertEqual(len(cliques), sizes.get(i, 0))
         for c in cliques:
             self.assertTrue(self.is_clique(school, c))
             self.assertEqual(len(c), i)
     self.assertEqual(set(school), {i[0] for i in self.data})
     self.assertEqual(sorted(set(school)), sorted(list(school)))
     school.remove_student("Jordan")
     school.add_student(["Pat", "scheme", "haskell", "python", "c++"])
     school.remove_student("Kelsey")
     school.remove_student("Corey")
     school.update_student("Cameron", ['c++', 'scheme', 'javascript'])
     sizes = {9: 1, 10: 2, 12: 3}
     for i in range(2, 22):
         cliques = school.get_cliques_size_n(i)
         self.assertEqual(len(cliques), sizes.get(i, 0))
         for c in cliques:
             self.assertTrue(self.is_clique(school, c))
             self.assertEqual(len(c), i)
     removed = {'Jordan', 'Kelsey', 'Corey'}
     self.assertEqual(set(school),
                      {i[0]
                       for i in self.data if i[0] not in removed} | {'Pat'})
     self.assertEqual(sorted(set(school)), sorted(list(school)))
示例#3
0
 def test_06(self):
     school = lab.School(self.data)
     cliques_7 = school.get_cliques_size_n(11)
     self.assertEqual(3, len(cliques_7))
     cliques_8 = school.get_cliques_size_n(13)
     self.assertEqual(2, len(cliques_8))
     for i in range(2, 14):
         for c in school.get_cliques_size_n(i):
             self.assertEqual(len(c), i)
             self.assertTrue(self.is_clique(school, c))
示例#4
0
 def test_05(self):
     school = lab.School(self.data)
     jesse_cliques = school.get_cliques_for_student("Jesse")
     for c in jesse_cliques:
         self.assertTrue(self.is_clique(school, c))
         self.assertIn('Jesse', c)
     self.assertEqual(4, len(jesse_cliques))
     rowan_cliques = school.get_cliques_for_student("Rowan")
     for c in rowan_cliques:
         self.assertTrue(self.is_clique(school, c))
         self.assertIn('Rowan', c)
     self.assertEqual(6, len(rowan_cliques))
示例#5
0
 def test_02(self):
     school = lab.School([])
     for i in self.data:
         school.add_student(i)
     school2 = lab.School(self.data)
     school.remove_student("Rowan")
     self.assertTrue(self.is_removed(school, "Rowan"))
     self.assertTrue(self.in_school(school, "Casey"))
     school.add_student(["Sandy", "outdoors", "fitness", "sports"])
     self.assertTrue(self.in_school(school, "Casey"))
     self.assertTrue(self.in_school(school, "Sandy"))
     school.remove_student("Sandy")
     self.assertTrue(self.in_school(school, "Casey"))
     school2.remove_student("Rowan")
     self.assertTrue(self.is_removed(school2, "Rowan"))
     self.assertTrue(self.in_school(school2, "Casey"))
     school2.add_student(["Sandy", "outdoors", "fitness", "sports"])
     self.assertTrue(self.in_school(school2, "Casey"))
     self.assertTrue(self.in_school(school2, "Sandy"))
     school2.remove_student("Sandy")
     self.assertTrue(self.in_school(school2, "Casey"))
     self.assertEqual(sorted(list(school)), sorted(list(school2)))
示例#6
0
    def test_03(self):
        school = lab.School(self.data)
        self.assertEqual(len(school.get_cliques()), 4)
        self.assertEqual(len(school.get_cliques_for_student("Cady")), 3)
        self.assertEqual(len(school.get_cliques_size_n(3)), 1)
        self.assertEqual(len(school.get_cliques_size_n(2)), 3)

        school.remove_student("Janis")
        school.add_student(["Bob", "sports"])
        school.update_student("Kevin", ["math", "python"])
        self.assertEqual(len(school.get_cliques()), 2)
        self.assertEqual(len(school.get_cliques_size_n(4)), 1)
        self.assertEqual(len(school.get_cliques_size_n(3)), 1)
示例#7
0
def ui_setup_school(test_case_name):
    global school
    global all_students
    students_data = data[test_case_name]
    # student names are unique
    all_students = set()
    try:
        # Create a new school
        school = lab.School(students_data)
        # Add all students
        for student_data in students_data:
            all_students.add(student_data[0])

        return get_friendships()
    except:
        print(traceback.format_exc(), flush=True)
        return {}
示例#8
0
    def test_08(self):
        school = lab.School(self.data)
        for i in range(100):
            for s in school:
                cliques = school.get_cliques_for_student(s)
                for c in cliques:
                    self.assertTrue(self.is_clique(school, c))
                    self.assertIn(s, c)

        for i in range(100):
            for j in range(10, 15):
                for c in school.get_cliques_size_n(j):
                    self.assertEqual(len(c), j)
                    self.assertTrue(self.is_clique(school, c))

        for i in range(100):
            for s in school:
                self.assertIn(s, school)
                self.assertIn(s, set(school))
            self.assertNotIn("she doesn't even go here", school)
            self.assertNotIn("she doesn't even go here", set(school))
示例#9
0
 def test_01(self):
     school = lab.School(self.data)
     self.assertEqual(school.are_they_friends("Rowan", "Cameron"), True)
     self.assertEqual(school.are_they_friends("Taylor", "Sydney"), False)
     self.assertEqual(school.are_they_friends("Avery", "Avery"), False)
     self.assertEqual(school.are_they_friends("Logan", "Rasputin"), False)
示例#10
0
 def test_04(self):
     school = lab.School(self.data)
     self.assertEqual(len(school.find_independent_set("Shane")), 4)
     self.assertEqual(len(school.find_independent_set("Cady")), 2)
示例#11
0
 def test_02(self):
     school = lab.School(self.data)
     school.update_student("Cady", ["sports", "math"])
     self.assertEqual(school.find_friends_for_student("Cady"),
                      ["Aaron", "Shane", "Kevin"])
示例#12
0
 def test_09(self):
     s = lab.School(self.data)
     for i in range(5):
         self.assertEqual(set(s), {i[0] for i in self.data})
         self.assertEqual(sorted(set(s)), sorted(list(s)))
示例#13
0
 def test_01(self):
     school = lab.School(self.data)
     self.assertTrue("Regina" in school)
     self.assertTrue("Gretchen" in school)
     self.assertTrue(school.are_they_friends("Regina", "Gretchen"))
     self.assertEqual(school.get_friendship_weight("Cady", "Gretchen"), 3)
示例#14
0
 def test_04(self):
     school = lab.School(self.data)
     cliques = school.get_cliques()
     self.assertEqual(len(cliques), 7)
     for clique in cliques:
         self.assertTrue(self.is_clique(school, clique))