Beispiel #1
0
 def test_updateAbility(self):
     cat_test = CatTest()
     cat_test.name = "short"
     cat_test.max_items = 10
     cat_test.save()
     user = User.objects.create_user("john", "*****@*****.**", "johnpassword")
     user.save()
     domain = Domain()
     domain.name = "Number"
     domain.create_date = datetime.datetime(2012, 03, 06)
     domain.save()
     item_bank = ItemBank()
     item_bank.name = "Fractions"
     item_bank.topic = "Addition"
     item_bank.domain = domain
     item_bank.create_date = datetime.datetime(2012, 03, 06)
     item_bank.save()
     user_item_bank = UserItemBank()
     user_item_bank.user = user
     user_item_bank.item_bank = item_bank
     user_item_bank.save()
     ibq = ItemBankQuestion()
     ibq.item_bank = item_bank
     ibq.save()
     user_cat_test = UserCatTest()
     user_cat_test.user = user
     user_cat_test.item_bank = item_bank
     user_cat_test.cat_test = cat_test
     user_cat_test.save()
     # First question right
     test_pattern = [1, 1, 0]
     test_ability = [0, 0, math.log(2)]
     test_difficulty = [2, 1, -2.0 / 3.0]
     test_stand_err = [2, 2, 1.5]
     test_items = [1, 2, 3]
     test_hardness = [0, 0, 0]
     test_right = [1, 2, 2]
     # Make three questions
     for i in range(1, 4):
         ibq = ItemBankQuestion()
         ibq.item_bank = item_bank
         ibq.save()
     # Find first question
     user_cat_test.nextQuestion()
     user_cat_test.updateAbility(1)
     self.assertEquals(user_cat_test.right, 1)
     self.assertEquals(user_cat_test.items, 1)
     self.assertEquals(user_cat_test.difficulty, 2)
     self.assertEquals(user_cat_test.hardness, 0)
     self.assertEquals(user_cat_test.ability, 0)
     # Second question right
     user_cat_test.nextQuestion()
     user_cat_test.updateAbility(1)
     self.assertEquals(user_cat_test.right, 2)
     self.assertEquals(user_cat_test.items, 2)
     self.assertEquals(user_cat_test.difficulty, 1)
     self.assertEquals(user_cat_test.hardness, 0)
     self.assertEquals(user_cat_test.ability, 0)
     # Third question wrong
     user_cat_test.nextQuestion()
     user_cat_test.updateAbility(0)
     self.assertEquals(user_cat_test.right, 2)
     self.assertEquals(user_cat_test.items, 3)
     self.assertEquals(user_cat_test.difficulty, -2.0 / 3.0)
     self.assertEquals(user_cat_test.hardness, 0)
     self.assertEquals(user_cat_test.ability, math.log(2))