Exemple #1
0
    def test_2_TypeCountHutWith_1_JokerResources(self):
        hut = CountHut(4,2)
        resources = [Resource.joker]
        
        self.assertTrue(hut.tooFewDifferentTypes([0,0,0,0], resources.count(Resource.joker)))

        self.assertEqual([Resource.wood,Resource.wood,Resource.wood], hut.missing(resources))
Exemple #2
0
 def test_4_TypesCountHutWithOnlyJokerResources(self):
     hut = CountHut(5,4)
     resources = [Resource.joker]
     
     self.assertTrue(hut.tooFewDifferentTypes([0,0,0,0], resources.count(Resource.joker)))
     
     self.assertListEqual([Resource.wood,Resource.wood,Resource.clay,Resource.stone], sorted(hut.missing(resources)))
Exemple #3
0
 def testCountHutWithEnoughResources(self):
     hut = CountHut(4,2)
     resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone,Resource.stone,Resource.stone]
     
     self.assertEqual([], hut.missing(resources))
     
     hut = CountHut(5,3)
     resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone,Resource.stone,Resource.stone,Resource.gold]
     
     self.assertEqual([], hut.missing(resources))
Exemple #4
0
 def testCountHutWithEnoughResources(self):
     hut = CountHut(4,2)
     resources = [2,2,3,3,5,5,5]
     
     self.assertEqual([], hut.missing(resources))
     
     hut = CountHut(5,3)
     resources = [2,2,3,3,5,5,5,6]
     
     self.assertEqual([], hut.missing(resources))
Exemple #5
0
    def testCountHutCostsWithOnePossiblePayment(self):
        hut = CountHut(4,2)
        resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone,Resource.stone]
        self.assertEqual(0, hut.value(), "value should be 0 before cost is calculated")

        self.assertEqual([Resource.wood,Resource.wood,Resource.stone,Resource.stone], sorted(hut.costs(resources)))
        self.assertEqual(16, hut.value(), "value should be 16")
        
        hut = CountHut(5,3)
        resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone,Resource.stone,Resource.gold]
        self.assertEqual([Resource.wood,Resource.wood,Resource.stone,Resource.stone,Resource.gold], sorted(hut.costs(resources)))
        self.assertEqual(22, hut.value(), "value should be 22")
Exemple #6
0
 def testCountHutWithNoResources(self):
     hut = CountHut(4,1)
     resources = []
     
     self.assertEqual([Resource.wood,Resource.wood,Resource.wood,Resource.wood], hut.missing(resources))
     
     hut = CountHut(4,3)
     resources = []
     self.assertListEqual([Resource.wood,Resource.wood,Resource.clay,Resource.stone], sorted(hut.missing(resources)))
     
     hut = CountHut(5,4)
     resources = []
     self.assertListEqual([Resource.wood,Resource.wood,Resource.clay,Resource.stone,Resource.gold], sorted(hut.missing(resources)))
Exemple #7
0
 def _defaultHuts(self):
     return [SimpleHut(3, 3, 4),
             SimpleHut(3, 3, 5),
             SimpleHut(3, 3, 6),
             SimpleHut(3, 4, 5),
             SimpleHut(3, 4, 4),
             SimpleHut(3, 5, 5),
             SimpleHut(3, 4, 6),
             SimpleHut(3, 4, 6),
             SimpleHut(3, 4, 5),
             SimpleHut(3, 5, 6),
             SimpleHut(3, 5, 6),
             SimpleHut(4, 4, 5),
             SimpleHut(4, 4, 6),
             SimpleHut(4, 5, 5),
             SimpleHut(4, 5, 6),
             SimpleHut(4, 5, 6),
             SimpleHut(5, 5, 6),
             AnyHut(),
             AnyHut(),
             AnyHut(),
             CountHut(4,1),
             CountHut(4,2),
             CountHut(4,3),
             CountHut(4,4),
             CountHut(5,1),
             CountHut(5,2),
             CountHut(5,3),
             CountHut(5,4),
             ]
Exemple #8
0
    def testCountHutWithNoResources(self):
        hut = CountHut(4, 1)
        resources = []

        self.assertEqual([3, 3, 3, 3], hut.missing(resources))

        hut = CountHut(4, 3)
        resources = []
        self.assertListEqual([3, 3, 4, 5], sorted(hut.missing(resources)))

        hut = CountHut(5, 4)
        resources = []
        self.assertListEqual([3, 3, 4, 5, 6], sorted(hut.missing(resources)))
Exemple #9
0
    def testCountHutCostsWithOnePossiblePayment(self):
        hut = CountHut(4, 2)
        resources = [2, 2, 3, 3, 5, 5]
        self.assertEqual(0, hut.value(),
                         "value should be 0 before cost is calculated")

        self.assertEqual([3, 3, 5, 5], sorted(hut.costs(resources)))
        self.assertEqual(16, hut.value(), "value should be 16")

        hut = CountHut(5, 3)
        resources = [2, 2, 3, 3, 5, 5, 6]
        self.assertEqual([3, 3, 5, 5, 6], sorted(hut.costs(resources)))
        self.assertEqual(22, hut.value(), "value should be 22")
Exemple #10
0
    def testCountHutWithToFewResources(self):
        hut = CountHut(4, 2)
        resources = [2, 2, 3, 3, 5]

        self.assertEqual([3], hut.missing(resources))

        hut = CountHut(4, 4)
        resources = [2, 2, 3, 3, 5]
        self.assertEqual([4, 6], hut.missing(resources))

        hut = CountHut(5, 2)
        resources = [4, 4, 4, 5]
        self.assertEqual([4], hut.missing(resources))
Exemple #11
0
    def testIsPayableBug(self):
        self.player.addResources([3, 3, 3, 3, 3, 4, 4, 5, 6,])
        firstHut = CountHut(4, 2)

        self.player.strategy.adjustResources(firstHut, self.player.resources)
        
        self.assertDictEqual({firstHut : [3,4,3,3]}, self.player.strategy.plannedCosts)
        
        secondHut = CountHut(4, 3)
        self.assertTrue(self.player.isPayable(secondHut))
        self.player.strategy.adjustResources(secondHut, self.player.resources)

        self.assertDictEqual({firstHut : [3,4,3,3], secondHut : [3,4,5,3]}, self.player.strategy.plannedCosts)
        
        thirdHut = SimpleHut(5, 5, 6)
        self.assertFalse(self.player.isPayable(thirdHut))
        
        fourthHut = CountHut(5, 2)
        self.assertFalse(self.player.isPayable(fourthHut))
Exemple #12
0
    def testCountHutCostsWithOnePossiblePayment(self):
        hut = CountHut(4,2)
        resources = [2,2,3,3,5,5]
        self.assertEqual(0, hut.value(), "value should be 0 before cost is calculated")

        self.assertEqual([3,3,5,5], sorted(hut.costs(resources)))
        self.assertEqual(16, hut.value(), "value should be 16")
        
        hut = CountHut(5,3)
        resources = [2,2,3,3,5,5,6]
        self.assertEqual([3,3,5,5,6], sorted(hut.costs(resources)))
        self.assertEqual(22, hut.value(), "value should be 22")
Exemple #13
0
    def testCountHutWithEnoughResources(self):
        hut = CountHut(4, 2)
        resources = [2, 2, 3, 3, 5, 5, 5]

        self.assertEqual([], hut.missing(resources))

        hut = CountHut(5, 3)
        resources = [2, 2, 3, 3, 5, 5, 5, 6]

        self.assertEqual([], hut.missing(resources))
Exemple #14
0
    def testCountHutWithToFewResources(self):
        hut = CountHut(4,2)
        resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone]
        
        self.assertEqual([Resource.wood], hut.missing(resources))
        
        hut = CountHut(4,4)
        resources = [Resource.food,Resource.food,Resource.wood,Resource.wood,Resource.stone]
        self.assertEqual([Resource.clay,Resource.gold], hut.missing(resources))

        hut = CountHut(5,2)
        resources = [Resource.clay,Resource.clay,Resource.clay,Resource.stone]        
        self.assertEqual([Resource.clay], hut.missing(resources))
Exemple #15
0
    def testCountHutWithToFewResources(self):
        hut = CountHut(4,2)
        resources = [2,2,3,3,5]
        
        self.assertEqual([3], hut.missing(resources))
        
        hut = CountHut(4,4)
        resources = [2,2,3,3,5]
        self.assertEqual([4,6], hut.missing(resources))

        hut = CountHut(5,2)
        resources = [4,4,4,5]        
        self.assertEqual([4], hut.missing(resources))
Exemple #16
0
 def testCountHutWithNoResources(self):
     hut = CountHut(4,1)
     resources = []
     
     self.assertEqual([3,3,3,3], hut.missing(resources))
     
     hut = CountHut(4,3)
     resources = []
     self.assertListEqual([3,3,4,5], sorted(hut.missing(resources)))
     
     hut = CountHut(5,4)
     resources = []
     self.assertListEqual([3,3,4,5,6], sorted(hut.missing(resources)))
Exemple #17
0
 def testCountHutError2(self):
     hut = CountHut(5, 2)
     resources =  [Resource.clay, Resource.clay, Resource.stone, Resource.gold, Resource.gold]
     self.assertEqual([Resource.clay, Resource.clay], hut.missing(resources))
Exemple #18
0
 def testCountHutError(self):
     hut = CountHut(5, 1)
     resources =  [Resource.wood, Resource.wood, Resource.wood, Resource.gold, Resource.clay, Resource.clay, Resource.clay]
     self.assertEqual([Resource.wood,Resource.wood], hut.missing(resources))
Exemple #19
0
 def testCountHutCostsWithMorePossiblePayments3(self):
     hut = CountHut(4,2)
     resources = [Resource.wood,Resource.clay,Resource.stone,Resource.stone,Resource.stone]
     self.assertEqual([Resource.wood,Resource.stone,Resource.stone,Resource.stone], sorted(hut.costs(resources)))
Exemple #20
0
 def testCountHutError(self):
     hut = CountHut(5, 1)
     resources = [3, 3, 3, 6, 4, 4, 4]
     self.assertEqual([3, 3], hut.missing(resources))
Exemple #21
0
 def testCountHutError2(self):
     hut = CountHut(5, 2)
     resources = [4, 4, 5, 6, 6]
     self.assertEqual([4, 4], hut.missing(resources))
Exemple #22
0
 def testCountHutCostsWithMorePossiblePayments3(self):
     hut = CountHut(4,2)
     resources = [3,4,5,5,5]
     self.assertEqual([3,5,5,5], sorted(hut.costs(resources)))
Exemple #23
0
 def testCountHutCostsWithMorePossiblePayments3(self):
     hut = CountHut(4, 2)
     resources = [3, 4, 5, 5, 5]
     self.assertEqual([3, 5, 5, 5], sorted(hut.costs(resources)))
Exemple #24
0
 def testCountHutError2(self):
     hut = CountHut(5, 2)
     resources =  [4, 4, 5, 6, 6]
     self.assertEqual([4, 4], hut.missing(resources))
Exemple #25
0
 def testCountHutError(self):
     hut = CountHut(5, 1)
     resources =  [3, 3, 3, 6, 4, 4, 4]
     self.assertEqual([3,3], hut.missing(resources))