Exemple #1
0
    def test_add_coaches(self):
        one = User(0)
        two = User(0)

        one.add_coaches(two)

        self.assertIn(two, one.coaches)
        self.assertIn(one, two.coached_by)
    def test_one_classroom_two_users_chain(self):
        a = User()
        b = User()

        a.add_coaches(b)

        infected_classrooms = total_infection(a)

        self.assertEqual(infected_classrooms.infected, set([a, b]))
    def test_spread_via_coaches_relationship(self):
        a = User()
        b = User()

        a.add_coaches(b)

        infected_classrooms = total_infection(a)

        self.assertEqual(infected_classrooms.infected, set([a, b]))
    def test_limit_1_two_users_chain(self):
        a = User()
        b = User()

        a.add_coaches(b)

        infection = LimitedInfection()
        infected_classrooms = infection.limited_infection(a, 1)

        self.assertEqual(infected_classrooms.infected, set([a]))
    def test_one_classroom_three_users_hierarchical(self):
        a = User()
        b = User()
        c = User()

        a.add_coaches(b)
        a.add_coaches(c)

        infected_classrooms = total_infection(a)

        self.assertEqual(infected_classrooms.infected, set([a, b, c]))
    def test_limit_2_two_users_cyclical(self):
        a = User()
        b = User()

        a.add_coaches(b)
        b.add_coaches(a)

        infection = LimitedInfection()
        infected_classrooms = infection.limited_infection(a, 2)

        self.assertEqual(infected_classrooms.infected, set([a, b]))
    def test_limit_1_three_users_hierarchical(self):
        a = User()
        b = User()
        c = User()

        a.add_coaches(b)
        a.add_coaches(c)

        infection = LimitedInfection()
        infected_classrooms = infection.limited_infection(a, 1)

        self.assertEqual(infected_classrooms.infected, set([a]))
    def test_limit_3_three_users_chain(self):
        a = User()
        b = User()
        c = User()

        a.add_coaches(b)
        b.add_coaches(c)

        infection = LimitedInfection()
        infected_classrooms = infection.limited_infection(a, 3)

        self.assertEqual(infected_classrooms.infected, set([a, b, c]))
    def test_multiple_classrooms(self):
        a = User()
        b = User()
        c = User()
        d = User()
        e = User()

        a.add_coaches(b)
        a.add_coaches(c)
        d.add_coaches(e)

        infected_classrooms = total_infection(d)

        self.assertEqual(infected_classrooms.infected, set([d, e]))
    def test_multiple_classrooms(self):
        a = User()
        b = User()
        c = User()
        d = User()
        e = User()

        a.add_coaches(b)
        a.add_coaches(c)
        d.add_coaches(e)

        infection = LimitedInfection()
        infected_classrooms = infection.limited_infection(b, 2)

        self.assertEqual(infected_classrooms.infected, set([b, a]))
    def test_count_0_one_classroom(self):
        a = User()
        b = User()
        c = User()

        a.add_coaches(b)
        a.add_coaches(c)

        classrooms = Classrooms()

        classrooms.add_user(a)
        classrooms.add_user(b)
        classrooms.add_user(c)

        infection = LargestInfection()
        largest_infections = infection.find_largest_infection(classrooms, 0)

        self.assertEqual(largest_infections, [])
    def test_count_2_two_classrooms(self):
        a = User()
        b = User()
        c = User()
        d = User()
        e = User()

        a.add_coaches(b)
        a.add_coaches(c)
        d.add_coaches(e)

        classrooms = Classrooms()

        classrooms.add_user(a)
        classrooms.add_user(b)
        classrooms.add_user(c)
        classrooms.add_user(d)
        classrooms.add_user(e)

        infection = LargestInfection()
        largest_infections = infection.find_largest_infection(classrooms, 2)

        self.assertEqual(largest_infections, [(3, set([a, b, c])), (2, set([d, e]))])