Пример #1
0
class CalcTest(unittest.TestCase):
    def setUp(self):
        self.myCalc = Calc()

    def test_add(self):
        self.assertEqual(4, self.myCalc.add(2, 2))

    def test_sub(self):
        self.assertEqual(3, self.myCalc.sub(6, 3))
Пример #2
0
    def test__calc_size(self):
        """
		Überprüft die Berechnung der Größen-Eigenschaft.
		"""

        for age in range(Config.AGE_ADULT - 1, Config.AGE_ADULT + 1):
            results_expected = tuple(
                range(Config.SIZE_DEFAULT["Adult"] - 1,
                      Config.SIZE_DEFAULT["Adult"] + 2))
            if age < Config.AGE_ADULT:
                results_expected = tuple(
                    range(Config.SIZE_DEFAULT["Kid"] - 1,
                          Config.SIZE_DEFAULT["Kid"] + 2))

            for large in (
                    False,
                    True,
            ):
                for small in (
                        False,
                        True,
                ):
                    self.assertIn(
                        Calc.calc_size(age, is_giant=large, is_small=small),
                        results_expected)
Пример #3
0
    def test__calc_initiative_monster(self):
        """
		Überprüft die Berechnung der Initiative bei Monstren (Power, Finesse & Resistance).
		"""

        for fin in range(1, ATTRIBUTE_MAX + 1):
            for res in range(1, ATTRIBUTE_MAX + 1):
                self.assertEqual(Calc.calc_initiative(fin, res), fin + res)
Пример #4
0
    def test__calc_health(self):
        """
		Überprüft die Berechnung der Gesundheit.
		"""

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(3, 7):
                self.assertEqual(Calc.calc_health(val_1, val_2), val_1 + val_2)
Пример #5
0
	def test__calc_willpower(self):
		"""
		Überprüft die Berechnung der Willenskraft.
		"""

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				self.assertEqual( Calc.calc_willpower( val_1, val_2 ), val_1 + val_2 )
Пример #6
0
	def test__calc_health(self):
		"""
		Überprüft die Berechnung der Gesundheit.
		"""

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 3, 7 ):
				self.assertEqual( Calc.calc_health( val_1, val_2 ), val_1 + val_2 )
Пример #7
0
	def test__calc_initiative_monster(self):
		"""
		Überprüft die Berechnung der Initiative bei Monstren (Power, Finesse & Resistance).
		"""

		for fin in range( 1, ATTRIBUTE_MAX + 1 ):
			for res in range( 1, ATTRIBUTE_MAX + 1 ):
				self.assertEqual( Calc.calc_initiative( fin, res ), fin + res )
Пример #8
0
    def test__calc_willpower(self):
        """
		Überprüft die Berechnung der Willenskraft.
		"""

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                self.assertEqual(Calc.calc_willpower(val_1, val_2),
                                 val_1 + val_2)
Пример #9
0
	def test__calc_rank_spirit(self):
		"""
		Überprüft die Berechnung des Ranges von Geistern.
		"""

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				for val_3 in range( 1, ATTRIBUTE_MAX + 1 ):
					self.assertIn( Calc.calc_rank_spirit( val_1, val_2, val_3 ), ( 1, 2, 3, 4, 5, ) )
Пример #10
0
	def test__calc_speed_monster(self):
		"""
		Überprüft die Berechnung der Geschwindigkeit bei Monstren (Power, Finesse & Resistance).
		"""

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				for val_3 in range( ATTRIBUTE_MAX + 1 ):
					self.assertEqual( Calc.calc_speed( val_1, val_2, val_3, monster=True ), val_1 + val_2 + val_3 )
Пример #11
0
	def test__calc_speed_humanoid(self):
		"""
		Überprüft die Berechnung der Geschwindigkeit bei Humanoiden (normale Attribute).
		"""

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				for val_3 in range( 4 ):
					self.assertEqual( Calc.calc_speed( val_1, val_2, val_3 ), val_1 + val_2 + val_3 + Config.SPEED_BASE_VALUE_HUMAN )
Пример #12
0
	def test__calc_initiative_humanoid(self):
		"""
		Überprüft die Berechnung der Initiative bei Humanoiden (normale Attribute).
		"""

		for dex in range( 1, ATTRIBUTE_MAX + 1 ):
			for com in range( 1, ATTRIBUTE_MAX + 1 ):
				for fast in range( 4 ):
					self.assertEqual( Calc.calc_initiative( dex, com, fast ), dex + com + fast )
	def __calcAgeBecoming(self):
		"""
		Zur Berechnung des Alters zum Zeitpunkt der Veränderung (Erwachen, Kuß, erste Verwandlung etc.) werden Geburtsdatum und Datum der Veränderung genutzt.
		"""

		age = Calc.years(self.dateBirth, self.dateBecoming)

		if self.__ageBecoming != age:
			self.__ageBecoming = age
			self.ageBecomingChanged.emit(age)
Пример #14
0
	def test__calc_defense_monster(self):
		"""
		Überprüft die Berechnung der Defense.
		"""

		results_expected = tuple( range( 0, ATTRIBUTE_MAX + Config.SIZE_DEFAULT["Adult"] + 1 ) )

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				self.assertEqual( Calc.calc_defense( val_1, val_2, maximize=True ), max( val_1, val_2 ) )
Пример #15
0
    def __calcAgeBecoming(self):
        """
		Zur Berechnung des Alters zum Zeitpunkt der Veränderung (Erwachen, Kuß, erste Verwandlung etc.) werden Geburtsdatum und Datum der Veränderung genutzt.
		"""

        age = Calc.years(self.dateBirth, self.dateBecoming)

        if self.__ageBecoming != age:
            self.__ageBecoming = age
            self.ageBecomingChanged.emit(age)
Пример #16
0
    def test__calc_initiative_humanoid(self):
        """
		Überprüft die Berechnung der Initiative bei Humanoiden (normale Attribute).
		"""

        for dex in range(1, ATTRIBUTE_MAX + 1):
            for com in range(1, ATTRIBUTE_MAX + 1):
                for fast in range(4):
                    self.assertEqual(Calc.calc_initiative(dex, com, fast),
                                     dex + com + fast)
Пример #17
0
    def test__calc_speed_monster(self):
        """
		Überprüft die Berechnung der Geschwindigkeit bei Monstren (Power, Finesse & Resistance).
		"""

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                for val_3 in range(ATTRIBUTE_MAX + 1):
                    self.assertEqual(
                        Calc.calc_speed(val_1, val_2, val_3, monster=True),
                        val_1 + val_2 + val_3)
Пример #18
0
    def test__calc_speed_humanoid(self):
        """
		Überprüft die Berechnung der Geschwindigkeit bei Humanoiden (normale Attribute).
		"""

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                for val_3 in range(4):
                    self.assertEqual(
                        Calc.calc_speed(val_1, val_2, val_3),
                        val_1 + val_2 + val_3 + Config.SPEED_BASE_VALUE_HUMAN)
Пример #19
0
	def test__calc_defense_humanoid(self):
		"""
		Überprüft die Berechnung der Defense.
		"""

		results_expected = tuple( range( 0, ATTRIBUTE_MAX + Config.SIZE_DEFAULT["Adult"] + 1 ) )

		for val_1 in range( 1, ATTRIBUTE_MAX + 1 ):
			for val_2 in range( 1, ATTRIBUTE_MAX + 1 ):
				for age in range( Config.AGE_ADULT - 1, Config.AGE_ADULT + 1 ):
					for val_3 in range( 1, 6 ):
						self.assertIn( Calc.calc_defense( val_1, val_2, age=age, size=val_3 ), results_expected )
	def calcEssence(self):
		"""
		Berechnet die maximal zu verfügung stehende Essenz.
		"""

		rank = Calc.calc_rank_spirit(
			self.__character.companionPower,
			self.__character.companionFinesse,
			self.__character.companionResistance
		)

		self.__character.companionFuel = self.__storage.fuelMax("Spirit", rank)
Пример #21
0
    def test__calc_defense_monster(self):
        """
		Überprüft die Berechnung der Defense.
		"""

        results_expected = tuple(
            range(0, ATTRIBUTE_MAX + Config.SIZE_DEFAULT["Adult"] + 1))

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                self.assertEqual(
                    Calc.calc_defense(val_1, val_2, maximize=True),
                    max(val_1, val_2))
Пример #22
0
	def test__calc_size(self):
		"""
		Überprüft die Berechnung der Größen-Eigenschaft.
		"""

		for age in range( Config.AGE_ADULT - 1, Config.AGE_ADULT + 1 ):
			results_expected = tuple( range(Config.SIZE_DEFAULT["Adult"] - 1, Config.SIZE_DEFAULT["Adult"] + 2) )
			if age < Config.AGE_ADULT:
				results_expected = tuple( range(Config.SIZE_DEFAULT["Kid"] - 1, Config.SIZE_DEFAULT["Kid"] + 2) )

			for large in ( False, True, ):
				for small in ( False, True, ):
					self.assertIn( Calc.calc_size( age, is_giant=large, is_small=small ), results_expected )
Пример #23
0
	def calcWillpower(self):
		"""
		Berechnung der Willenskraft.
		"""

		result = Calc.calc_willpower(
			self.__character.traits["Attribute"]["Mental"]["Resolve"].totalvalue,
			self.__character.traits["Attribute"]["Social"]["Composure"].totalvalue,
		)

		if ( self.__willpower != result ):
			self.__willpower = result
			self.willpowerChanged.emit( result )

		return self.__willpower
Пример #24
0
    def test__calc_rank_spirit(self):
        """
		Überprüft die Berechnung des Ranges von Geistern.
		"""

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                for val_3 in range(1, ATTRIBUTE_MAX + 1):
                    self.assertIn(Calc.calc_rank_spirit(val_1, val_2, val_3), (
                        1,
                        2,
                        3,
                        4,
                        5,
                    ))
Пример #25
0
    def __calcAge(self):
        """
		Zur Berechnung des Alters werden Geburtstag und Datum im Spiel herangezogen.
		"""

        age = Calc.years(self.dateBirth, self.dateGame)

        if self.__age != age:
            ageCtagoryChanged = False
            if Config.getAge(self.__age) != Config.getAge(age):
                ageCtagoryChanged = True
            self.__age = age
            self.ageChanged.emit(age)
            if ageCtagoryChanged:
                self.ageChanged[str].emit(Config.getAge(age))
	def __calcAge(self):
		"""
		Zur Berechnung des Alters werden Geburtstag und Datum im Spiel herangezogen.
		"""

		age = Calc.years(self.dateBirth, self.dateGame)

		if self.__age != age:
			ageCtagoryChanged = False
			if Config.getAge(self.__age) != Config.getAge(age):
				ageCtagoryChanged = True
			self.__age = age
			self.ageChanged.emit(age)
			if ageCtagoryChanged:
				self.ageChanged[str].emit(Config.getAge(age))
Пример #27
0
    def calcWillpower(self):
        """
		Berechnung der Willenskraft.
		"""

        result = Calc.calc_willpower(
            self.__character.traits["Attribute"]["Mental"]
            ["Resolve"].totalvalue,
            self.__character.traits["Attribute"]["Social"]
            ["Composure"].totalvalue,
        )

        if (self.__willpower != result):
            self.__willpower = result
            self.willpowerChanged.emit(result)

        return self.__willpower
Пример #28
0
    def test__calc_defense_humanoid(self):
        """
		Überprüft die Berechnung der Defense.
		"""

        results_expected = tuple(
            range(0, ATTRIBUTE_MAX + Config.SIZE_DEFAULT["Adult"] + 1))

        for val_1 in range(1, ATTRIBUTE_MAX + 1):
            for val_2 in range(1, ATTRIBUTE_MAX + 1):
                for age in range(Config.AGE_ADULT - 1, Config.AGE_ADULT + 1):
                    for val_3 in range(1, 6):
                        self.assertIn(
                            Calc.calc_defense(val_1,
                                              val_2,
                                              age=age,
                                              size=val_3), results_expected)
Пример #29
0
	def calcInitiative(self):
		"""
		Berechnung der Initiative des Charakters.

		\todo Bislang nur von Dexterity, Composure und Fast Reflexes abhängig. Möglicherweise vorhandene Übernatürliche Eigenschaften werden nicht berücksichtigt.
		"""

		result = Calc.calc_initiative(
			self.__character.traits["Attribute"]["Physical"]["Dexterity"].totalvalue,
			self.__character.traits["Attribute"]["Social"]["Composure"].totalvalue,
			self.__character.traits["Merit"]["Physical"]["Fast Reflexes"].totalvalue,
		)

		if ( self.__initiative != result ):
			self.__initiative = result
			self.initiativeChanged.emit( result )

		return self.__initiative
Пример #30
0
	def calc_size(self):
		"""
		Berechnung der Größe des Charakters.
		"""

		is_large = self.__character.traits["Merit"]["Physical"]["Giant"].totalvalue > 0
		is_small = self.__character.traits["Flaw"]["Physical"]["Dwarf"].totalvalue > 0
		if self.__character.age < Config.AGE_ADULT:
			is_large = self.__character.traits["Merit"]["Physical"]["GiantKid"].totalvalue > 0
			is_small = self.__character.traits["Merit"]["Physical"]["Tiny"].totalvalue > 0

		result = Calc.calc_size( self.__character.age, is_giant=is_large, is_small=is_small )

		if ( self.__size != result ):
			self.__size = result
			self.sizeChanged.emit( result )

		return self.__size
Пример #31
0
	def calcHealth(self):
		"""
		Berechnung der Gesundheit.
		"""

		## Bevor ich die Gesundheit ausrechnen kann, muß erst die Größe feststehen.
		size = self.calc_size()

		result = Calc.calc_health(
			self.__character.traits["Attribute"]["Physical"]["Stamina"].totalvalue,
			size,
		)

		if ( self.__health != result ):
			self.__health = result
			self.healthChanged.emit( result )

		return self.__health
Пример #32
0
	def calcSpeed(self):
		"""
		Berechnung der Geschwindigkeit des Charakters.

		\todo Bislang nur von Strength und Dexterity abhängig. Möglicherweise vorhandene Übernatürliche Eigenschaften werden nicht berücksichtigt.
		"""

		result = Calc.calc_speed(
			self.__character.traits["Attribute"]["Physical"]["Strength"].totalvalue,
			self.__character.traits["Attribute"]["Physical"]["Dexterity"].totalvalue,
			self.__character.traits["Merit"]["Physical"]["Fleet of Foot"].totalvalue,
		)

		if ( self.__speed != result ):
			self.__speed = result
			self.speedChanged.emit( result )

		return self.__speed
	def calcMaxTrait(self):
		"""
		Berechnet die maximalen Attribute.
		"""

		rank = Calc.calc_rank_spirit(
			self.__character.companionPower,
			self.__character.companionFinesse,
			self.__character.companionResistance
		)

		maxValue = self.__storage.maxTrait("Spirit", rank)

		for widget in self.__influenceWidgets:
			widget[1].setMaximum(rank)
		
		self.ui.traitDots_power.maximum = maxValue
		self.ui.traitDots_finesse.maximum = maxValue
		self.ui.traitDots_resistance.maximum = maxValue
Пример #34
0
    def calcHealth(self):
        """
		Berechnung der Gesundheit.
		"""

        ## Bevor ich die Gesundheit ausrechnen kann, muß erst die Größe feststehen.
        size = self.calc_size()

        result = Calc.calc_health(
            self.__character.traits["Attribute"]["Physical"]
            ["Stamina"].totalvalue,
            size,
        )

        if (self.__health != result):
            self.__health = result
            self.healthChanged.emit(result)

        return self.__health
Пример #35
0
    def calcSpeed(self):
        """
		Berechnung der Geschwindigkeit des Charakters.

		\todo Bislang nur von Strength und Dexterity abhängig. Möglicherweise vorhandene Übernatürliche Eigenschaften werden nicht berücksichtigt.
		"""

        result = Calc.calc_speed(
            self.__character.traits["Attribute"]["Physical"]
            ["Strength"].totalvalue,
            self.__character.traits["Attribute"]["Physical"]
            ["Dexterity"].totalvalue,
            self.__character.traits["Merit"]["Physical"]
            ["Fleet of Foot"].totalvalue,
        )

        if (self.__speed != result):
            self.__speed = result
            self.speedChanged.emit(result)

        return self.__speed
Пример #36
0
    def calcInitiative(self):
        """
		Berechnung der Initiative des Charakters.

		\todo Bislang nur von Dexterity, Composure und Fast Reflexes abhängig. Möglicherweise vorhandene Übernatürliche Eigenschaften werden nicht berücksichtigt.
		"""

        result = Calc.calc_initiative(
            self.__character.traits["Attribute"]["Physical"]
            ["Dexterity"].totalvalue,
            self.__character.traits["Attribute"]["Social"]
            ["Composure"].totalvalue,
            self.__character.traits["Merit"]["Physical"]
            ["Fast Reflexes"].totalvalue,
        )

        if (self.__initiative != result):
            self.__initiative = result
            self.initiativeChanged.emit(result)

        return self.__initiative
Пример #37
0
	def calcDefense(self):
		"""
		Berechnung der Defense

		\note Bei Kindern wird pro Punkt Size unter 5 ein weiterer Punkt zur Defense hinzugezählt.

		\todo Bislang nicht von der Spezies abhängig: Tiere sollten stets das größere von Dex und Wits als Defense haben.
		"""

		result = Calc.calc_defense(
			self.__character.traits["Attribute"]["Mental"]["Wits"].totalvalue,
			self.__character.traits["Attribute"]["Physical"]["Dexterity"].totalvalue,
			age=self.__character.age,
			size=self.__size,
		)

		if ( self.__defense != result ):
			self.__defense = result
			self.defenseChanged.emit( result )

		return self.__defense
Пример #38
0
    def calcDefense(self):
        """
		Berechnung der Defense

		\note Bei Kindern wird pro Punkt Size unter 5 ein weiterer Punkt zur Defense hinzugezählt.

		\todo Bislang nicht von der Spezies abhängig: Tiere sollten stets das größere von Dex und Wits als Defense haben.
		"""

        result = Calc.calc_defense(
            self.__character.traits["Attribute"]["Mental"]["Wits"].totalvalue,
            self.__character.traits["Attribute"]["Physical"]
            ["Dexterity"].totalvalue,
            age=self.__character.age,
            size=self.__size,
        )

        if (self.__defense != result):
            self.__defense = result
            self.defenseChanged.emit(result)

        return self.__defense
Пример #39
0
    def calc_size(self):
        """
		Berechnung der Größe des Charakters.
		"""

        is_large = self.__character.traits["Merit"]["Physical"][
            "Giant"].totalvalue > 0
        is_small = self.__character.traits["Flaw"]["Physical"][
            "Dwarf"].totalvalue > 0
        if self.__character.age < Config.AGE_ADULT:
            is_large = self.__character.traits["Merit"]["Physical"][
                "GiantKid"].totalvalue > 0
            is_small = self.__character.traits["Merit"]["Physical"][
                "Tiny"].totalvalue > 0

        result = Calc.calc_size(self.__character.age,
                                is_giant=is_large,
                                is_small=is_small)

        if (self.__size != result):
            self.__size = result
            self.sizeChanged.emit(result)

        return self.__size
Пример #40
0
    def test__years_QDate(self):
        """
		Überprüft, daß die Funktion der Berechnung der Jahre auch Ergebnisse im zu erwartenden Rahmen zurückgibt.
		"""

        DATE_STEP = 1
        DATE_YEAR = {
            "min": -1,
            "max": 2,
        }

        ## Eine Liste mit Daten anlegen
        dates_all = []

        ## Von ...
        year_min = DATE_YEAR["min"]
        ## ... bis
        year_max = DATE_YEAR["max"]

        ## Startdatum
        date_store = QDate(year_min, 1, 1)
        date_max = QDate(year_max, 1, 1)

        ## Die Listen tatsächlich anlegen
        while date_store < date_max:
            dates_all.append(date_store)
            date_store = date_store.addDays(DATE_STEP)

        ## Kopie erstellen
        dates_to_compare = dates_all[:]
        results_expected = tuple(range(year_max - year_min + 1))

        for date_1 in dates_all:
            dates_to_compare.remove(date_1)
            for date_2 in dates_to_compare:
                self.assertIn(Calc.years(date_1, date_2), results_expected)
Пример #41
0
	def test__years_QDate(self):
		"""
		Überprüft, daß die Funktion der Berechnung der Jahre auch Ergebnisse im zu erwartenden Rahmen zurückgibt.
		"""
		
		DATE_STEP = 1
		DATE_YEAR = {
			"min": -1,
			"max": 2,
		}

		## Eine Liste mit Daten anlegen
		dates_all = []

		## Von ...
		year_min = DATE_YEAR["min"]
		## ... bis
		year_max = DATE_YEAR["max"]

		## Startdatum
		date_store = QDate(year_min, 1, 1)
		date_max = QDate(year_max, 1, 1)

		## Die Listen tatsächlich anlegen
		while date_store < date_max:
			dates_all.append( date_store )
			date_store = date_store.addDays( DATE_STEP )

		## Kopie erstellen
		dates_to_compare = dates_all[:]
		results_expected = tuple( range( year_max - year_min + 1 ) )

		for date_1 in dates_all:
			dates_to_compare.remove( date_1 )
			for date_2 in dates_to_compare:
				self.assertIn( Calc.years(date_1, date_2), results_expected )
Пример #42
0
 def setUp(self):
     self.myCalc = Calc()