コード例 #1
0
def test_drone_dps(DB, Saveddata, RifterFit):
    """
    Tests applied drone damage
    """

    # set pilot
    char0 = Saveddata['Character'].getAll0()
    RifterFit.character = char0

    # configure DPS analysis to include as many factors as possible
    # (damage type reistance)
    graph = FitDpsGraph(RifterFit)
    data = graph.defaults.copy()
    data['emRes'] = 10.0

    # add a drone
    drone = Saveddata['Drone'](DB['db'].getItem("Acolyte II"))
    drone.amount = 1
    drone.amountActive = 1
    RifterFit.drones.append(drone)

    # calculate applied DPS
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    dps = graph.calcDps(data)
    assert abs(dps - 7.6) < 0.05
コード例 #2
0
def test_multiply_stacking_penalties(DB, Saveddata, RifterFit):
    """
    Tests the stacking penalties under multiply
    """
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    starting_em_resist = RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance")

    mod = Saveddata['Module'](DB['db'].getItem("EM Ward Amplifier II"))
    item_modifer = mod.item.getAttribute("emDamageResistanceBonus")

    RifterFit.calculateModifiedAttributes()

    for _ in range(10):
        if _ == 0:
            # First run we have no modules, se don't try and calculate them.
            calculated_resist = RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance")
        else:
            # Calculate what our next resist should be
            # Denominator: [math.exp((i / 2.67) ** 2.0) for i in xrange(8)]
            current_effectiveness = 1 / math.exp(((_ - 1) / 2.67) ** 2.0)
            new_item_modifier = 1 + ((item_modifer * current_effectiveness) / 100)
            calculated_resist = (em_resist * new_item_modifier)

            # Add another resist module to our fit.
            RifterFit.modules.append(mod)

        # Modify our fit so that Eos generates new numbers for us.
        RifterFit.clear()
        RifterFit.calculateModifiedAttributes()

        em_resist = RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance")

        assert em_resist == calculated_resist
コード例 #3
0
ファイル: test_fit_2.py プロジェクト: w9jds/Pyfa
def test_calculateModifiedAttributes(DB, RifterFit, KeepstarFit):
    rifter_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy': 26,
        '_ModifiedAttributeDict__forced': 0,
        '_ModifiedAttributeDict__intermediary': 0,
        '_ModifiedAttributeDict__modified': 26,
        '_ModifiedAttributeDict__multipliers': 22,
        '_ModifiedAttributeDict__overrides': 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases': 0,
        '_ModifiedAttributeDict__preAssigns': 0,
        '_ModifiedAttributeDict__preIncreases': 4,
    }

    # Test before calculating attributes
    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes,
                           test_dict)) == 0

    RifterFit.calculateModifiedAttributes()

    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes,
                           test_dict)) == rifter_modifier_dicts[test_dict]

    # Keepstars don't have any basic skills that would change their attributes
    keepstar_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy': 0,
        '_ModifiedAttributeDict__forced': 0,
        '_ModifiedAttributeDict__intermediary': 0,
        '_ModifiedAttributeDict__modified': 0,
        '_ModifiedAttributeDict__multipliers': 0,
        '_ModifiedAttributeDict__overrides': 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases': 0,
        '_ModifiedAttributeDict__preAssigns': 0,
        '_ModifiedAttributeDict__preIncreases': 0,
    }

    # Test before calculating attributes
    for test_dict in keepstar_modifier_dicts:
        assert len(getattr(KeepstarFit.ship.itemModifiedAttributes,
                           test_dict)) == 0

    KeepstarFit.calculateModifiedAttributes()

    for test_dict in keepstar_modifier_dicts:
        assert len(getattr(KeepstarFit.ship.itemModifiedAttributes,
                           test_dict)) == keepstar_modifier_dicts[test_dict]
コード例 #4
0
ファイル: test_fit_2.py プロジェクト: Sectoid/Pyfa
def test_calculateModifiedAttributes(DB, RifterFit, KeepstarFit):
    rifter_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy'          : 26,
        '_ModifiedAttributeDict__forced'              : 0,
        '_ModifiedAttributeDict__intermediary'        : 0,
        '_ModifiedAttributeDict__modified'            : 26,
        '_ModifiedAttributeDict__multipliers'         : 22,
        '_ModifiedAttributeDict__overrides'           : 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases'       : 0,
        '_ModifiedAttributeDict__preAssigns'          : 0,
        '_ModifiedAttributeDict__preIncreases'        : 4,
    }

    # Test before calculating attributes
    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == 0

    RifterFit.calculateModifiedAttributes()

    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == rifter_modifier_dicts[test_dict]

    # Keepstars don't have any basic skills that would change their attributes
    keepstar_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy'          : 0,
        '_ModifiedAttributeDict__forced'              : 0,
        '_ModifiedAttributeDict__intermediary'        : 0,
        '_ModifiedAttributeDict__modified'            : 0,
        '_ModifiedAttributeDict__multipliers'         : 0,
        '_ModifiedAttributeDict__overrides'           : 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases'       : 0,
        '_ModifiedAttributeDict__preAssigns'          : 0,
        '_ModifiedAttributeDict__preIncreases'        : 0,
    }

    # quick hack to disable test. Need to rewrite ttests to not point to the DB
    assert 1==1
    return
    # Test before calculating attributes
    for test_dict in keepstar_modifier_dicts:
        assert len(getattr(KeepstarFit.ship.itemModifiedAttributes, test_dict)) == 0

    KeepstarFit.calculateModifiedAttributes()

    for test_dict in keepstar_modifier_dicts:
        assert len(getattr(KeepstarFit.ship.itemModifiedAttributes, test_dict)) == keepstar_modifier_dicts[test_dict]
コード例 #5
0
def test_multiply_stacking_penalties(DB, Saveddata, RifterFit):
    """
    Tests the stacking penalties under multiply
    """
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    starting_em_resist = RifterFit.ship.getModifiedItemAttr(
        "shieldEmDamageResonance")

    mod = Saveddata['Module'](DB['db'].getItem("EM Ward Amplifier II"))
    item_modifer = mod.item.getAttribute("emDamageResistanceBonus")

    RifterFit.calculateModifiedAttributes()

    for _ in range(10):
        if _ == 0:
            # First run we have no modules, se don't try and calculate them.
            calculated_resist = RifterFit.ship.getModifiedItemAttr(
                "shieldEmDamageResonance")
        else:
            # Calculate what our next resist should be
            # Denominator: [math.exp((i / 2.67) ** 2.0) for i in xrange(8)]
            current_effectiveness = 1 / math.exp(((_ - 1) / 2.67)**2.0)
            new_item_modifier = 1 + (
                (item_modifer * current_effectiveness) / 100)
            calculated_resist = (em_resist * new_item_modifier)

            # Add another resist module to our fit.
            RifterFit.modules.append(mod)

        # Modify our fit so that Eos generates new numbers for us.
        RifterFit.clear()
        RifterFit.calculateModifiedAttributes()

        em_resist = RifterFit.ship.getModifiedItemAttr(
            "shieldEmDamageResonance")

        assert em_resist == calculated_resist
コード例 #6
0
def test_turret_dps(DB, Saveddata, RifterFit):
    """
    Tests applied turret damage
    """

    # set pilot
    char0 = Saveddata['Character'].getAll0()
    RifterFit.character = char0

    # configure DPS analysis to include as many factors as possible
    # (damage type reistance, distance past turret optimal, sig/speed/angle to incur turret tracking penalty)
    graph = FitDpsGraph(RifterFit)
    data = graph.defaults.copy()
    data['emRes'] = 10.0
    data['distance'] = 7.0
    data['signatureRadius'] = 100.0
    data['tgtAngle'] = 90.0
    data['tgtSpeed'] = 100.0

    # add a turret
    mod = Saveddata['Module'](DB['db'].getItem("280mm Howitzer Artillery II"))
    mod.owner = RifterFit
    mod.state = Saveddata['State'].ACTIVE
    # there must be a better way to fetch this ammo directly, but I couldn't figure out the appropriate Gamedata voodoo;
    # this, for example, did not work:
    # mod.charge = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "EMP S").first()
    for charge in mod.getValidCharges():
        if charge.name == "EMP S":
            mod.charge = charge
            break
    RifterFit.modules.append(mod)

    # calculate applied DPS
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    dps = graph.calcDps(data)
    assert abs(dps - 8.8) < 0.05
コード例 #7
0
ファイル: test_rifter.py プロジェクト: PaulKPetersonCO/Pyfa
def test_rifter_coprocessor(DB, Saveddata, RifterFit):
    char5 = Saveddata['Character'].getAll5()
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    mod = Saveddata['Module'](DB['db'].getItem("Co-Processor II"))
    mod.state = Saveddata['State'].OFFLINE
    RifterFit.modules.append(mod)

    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130

    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130

    mod.state = Saveddata['State'].ONLINE
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 143

    RifterFit.character = char5
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 178.75
コード例 #8
0
ファイル: test_rifter.py プロジェクト: w9jds/Pyfa
def test_rifter_coprocessor(DB, Saveddata, RifterFit):
    char5 = Saveddata['Character'].getAll5()
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    mod = Saveddata['Module'](DB['db'].getItem("Co-Processor II"))
    mod.state = Saveddata['State'].OFFLINE
    RifterFit.modules.append(mod)

    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130

    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130

    mod.state = Saveddata['State'].ONLINE
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 143

    RifterFit.character = char5
    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 178.75
コード例 #9
0
ファイル: test_rifter.py プロジェクト: PaulKPetersonCO/Pyfa
def test_rifter_empty_char0(DB, Saveddata, RifterFit):
    """
    We test an empty ship because if we use this as a base for testing our V skills,
    and CCP ever f***s with the base states, all our derived stats will be wrong.
    """
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    RifterFit.calculateModifiedAttributes()

    assert RifterFit.ship.getModifiedItemAttr("agility") == 3.2
    assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4
    assert RifterFit.ship.getModifiedItemAttr("armorExplosiveDamageResonance") == 0.9
    assert RifterFit.ship.getModifiedItemAttr("armorHP") == 450.0
    assert RifterFit.ship.getModifiedItemAttr("armorKineticDamageResonance") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("armorThermalDamageResonance") == 0.65
    assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 250.0
    assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0
    assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130.0
    assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("explosiveDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0
    assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatGenerationMultiplier") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("hp") == 350.0
    assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullExplosiveDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullKineticDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullThermalDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0
    assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0
    assert RifterFit.ship.getModifiedItemAttr("maxDirectionalVelocity") == 3000.0
    assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 22500.0
    assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 365.0
    assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("minTargetVelDmgMultiplier") == 0.05
    assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 41.0
    assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0
    assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 125000.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 8.0
    assert RifterFit.ship.getModifiedItemAttr("scanMagnetometricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 660.0
    assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0
    assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 450.0
    assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("shieldExplosiveDamageResonance") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("shieldKineticDamageResonance") == 0.6
    assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 625000.0
    assert RifterFit.ship.getModifiedItemAttr("shieldThermalDamageResonance") == 0.8
    assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0
    assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0
    assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0
    assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0
    assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 2.24e-06
    assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0
コード例 #10
0
ファイル: test_rifter.py プロジェクト: PaulKPetersonCO/Pyfa
def test_rifter_empty_char5(DB, Saveddata, RifterFit):
    """
    Test char skills applying to a ship
    """
    char5 = Saveddata['Character'].getAll5()

    RifterFit.character = char5
    RifterFit.calculateModifiedAttributes()

    assert RifterFit.ship.getModifiedItemAttr("agility") == 2.16
    assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4
    assert RifterFit.ship.getModifiedItemAttr("armorExplosiveDamageResonance") == 0.9
    assert RifterFit.ship.getModifiedItemAttr("armorHP") == 562.5
    assert RifterFit.ship.getModifiedItemAttr("armorKineticDamageResonance") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("armorThermalDamageResonance") == 0.65
    assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 312.5
    assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0
    assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 162.5
    assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("explosiveDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0
    assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatGenerationMultiplier") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("hp") == 437.5
    assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullExplosiveDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullKineticDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hullThermalDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0
    assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0
    assert RifterFit.ship.getModifiedItemAttr("maxDirectionalVelocity") == 3000.0
    assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 28125.0
    assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 456.25
    assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("minTargetVelDmgMultiplier") == 0.05
    assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 51.25
    assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0
    assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 93750.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 9.6
    assert RifterFit.ship.getModifiedItemAttr("scanMagnetometricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 825.0
    assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0
    assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 562.5
    assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("shieldExplosiveDamageResonance") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("shieldKineticDamageResonance") == 0.6
    assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 468750.0
    assert RifterFit.ship.getModifiedItemAttr("shieldThermalDamageResonance") == 0.8
    assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 1
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0
    assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0
    assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0
    assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0
    assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 1.12e-06
    assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0
コード例 #11
0
ファイル: test_fit_2.py プロジェクト: PaulKPetersonCO/Pyfa
def test_calculateModifiedAttributes_withProjected(DB, RifterFit, HeronFit):
    # TODO: This test is not currently functional or meaningful as projections are not happening correctly.
    # This is true for all tested branches (master, dev, etc)
    rifter_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy'          : 26,
        '_ModifiedAttributeDict__forced'              : 0,
        '_ModifiedAttributeDict__intermediary'        : 0,
        '_ModifiedAttributeDict__modified'            : 26,
        '_ModifiedAttributeDict__multipliers'         : 22,
        '_ModifiedAttributeDict__overrides'           : 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases'       : 0,
        '_ModifiedAttributeDict__preAssigns'          : 0,
        '_ModifiedAttributeDict__preIncreases'        : 4,
    }

    # Test before calculating attributes
    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == 0

    # Get base stats
    max_target_range_1 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_1 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()

    # Get self calculated stats
    max_target_range_2 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_2 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    # Project Heron fit onto Rifter
    RifterFit._Fit__projectedFits[HeronFit.ID] = HeronFit

    # DB['saveddata_session'].commit()
    # DB['saveddata_session'].flush()
    # DB['saveddata_session'].refresh(HeronFit)

    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_3 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_3 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_4 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_4 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    HeronFit.calculateModifiedAttributes(targetFit=RifterFit)
    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_5 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_5 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == rifter_modifier_dicts[test_dict]
コード例 #12
0
ファイル: test_rifter.py プロジェクト: w9jds/Pyfa
def test_rifter_empty_char0(DB, Saveddata, RifterFit):
    """
    We test an empty ship because if we use this as a base for testing our V skills,
    and CCP ever f***s with the base states, all our derived stats will be wrong.
    """
    char0 = Saveddata['Character'].getAll0()

    RifterFit.character = char0
    RifterFit.calculateModifiedAttributes()

    assert RifterFit.ship.getModifiedItemAttr("agility") == 3.2
    assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4
    assert RifterFit.ship.getModifiedItemAttr(
        "armorExplosiveDamageResonance") == 0.9
    assert RifterFit.ship.getModifiedItemAttr("armorHP") == 450.0
    assert RifterFit.ship.getModifiedItemAttr(
        "armorKineticDamageResonance") == 0.75
    assert RifterFit.ship.getModifiedItemAttr(
        "armorThermalDamageResonance") == 0.65
    assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 250.0
    assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0
    assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 130.0
    assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr(
        "explosiveDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0
    assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01
    assert RifterFit.ship.getModifiedItemAttr(
        "heatGenerationMultiplier") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("hp") == 350.0
    assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullExplosiveDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullKineticDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullThermalDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0
    assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0
    assert RifterFit.ship.getModifiedItemAttr(
        "maxDirectionalVelocity") == 3000.0
    assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 22500.0
    assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 365.0
    assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0
    assert RifterFit.ship.getModifiedItemAttr(
        "minTargetVelDmgMultiplier") == 0.05
    assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 41.0
    assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0
    assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 125000.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 8.0
    assert RifterFit.ship.getModifiedItemAttr(
        "scanMagnetometricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 660.0
    assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0
    assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 450.0
    assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldExplosiveDamageResonance") == 0.5
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldKineticDamageResonance") == 0.6
    assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 625000.0
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldThermalDamageResonance") == 0.8
    assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0
    assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0
    assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0
    assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0
    assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 2.24e-06
    assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0
コード例 #13
0
ファイル: test_rifter.py プロジェクト: w9jds/Pyfa
def test_rifter_empty_char5(DB, Saveddata, RifterFit):
    """
    Test char skills applying to a ship
    """
    char5 = Saveddata['Character'].getAll5()

    RifterFit.character = char5
    RifterFit.calculateModifiedAttributes()

    assert RifterFit.ship.getModifiedItemAttr("agility") == 2.16
    assert RifterFit.ship.getModifiedItemAttr("armorEmDamageResonance") == 0.4
    assert RifterFit.ship.getModifiedItemAttr(
        "armorExplosiveDamageResonance") == 0.9
    assert RifterFit.ship.getModifiedItemAttr("armorHP") == 562.5
    assert RifterFit.ship.getModifiedItemAttr(
        "armorKineticDamageResonance") == 0.75
    assert RifterFit.ship.getModifiedItemAttr(
        "armorThermalDamageResonance") == 0.65
    assert RifterFit.ship.getModifiedItemAttr("armorUniformity") == 0.75
    assert RifterFit.ship.getModifiedItemAttr("baseWarpSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("capacitorCapacity") == 312.5
    assert RifterFit.ship.getModifiedItemAttr("capacity") == 140.0
    assert RifterFit.ship.getModifiedItemAttr("cpuLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("cpuOutput") == 162.5
    assert RifterFit.ship.getModifiedItemAttr("damage") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneBandwidth") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("droneCapacity") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("emDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr(
        "explosiveDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("fwLpKill") == 25.0
    assert RifterFit.ship.getModifiedItemAttr("gfxBoosterID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationHi") == 0.63
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationLow") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatAttenuationMed") == 0.5
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityHi") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityLow") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatCapacityMed") == 100.0
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateHi") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateLow") == 0.01
    assert RifterFit.ship.getModifiedItemAttr("heatDissipationRateMed") == 0.01
    assert RifterFit.ship.getModifiedItemAttr(
        "heatGenerationMultiplier") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("hiSlots") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("hp") == 437.5
    assert RifterFit.ship.getModifiedItemAttr("hullEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullExplosiveDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullKineticDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "hullThermalDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("kineticDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("launcherSlotsLeft") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("lowSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("mainColor") == 16777215.0
    assert RifterFit.ship.getModifiedItemAttr("mass") == 1067000.0
    assert RifterFit.ship.getModifiedItemAttr(
        "maxDirectionalVelocity") == 3000.0
    assert RifterFit.ship.getModifiedItemAttr("maxLockedTargets") == 4.0
    assert RifterFit.ship.getModifiedItemAttr("maxPassengers") == 2.0
    assert RifterFit.ship.getModifiedItemAttr("maxTargetRange") == 28125.0
    assert RifterFit.ship.getModifiedItemAttr("maxVelocity") == 456.25
    assert RifterFit.ship.getModifiedItemAttr("medSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("metaLevel") == 0.0
    assert RifterFit.ship.getModifiedItemAttr(
        "minTargetVelDmgMultiplier") == 0.05
    assert RifterFit.ship.getModifiedItemAttr("powerLoad") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("powerOutput") == 51.25
    assert RifterFit.ship.getModifiedItemAttr("powerToSpeed") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("propulsionGraphicID") == 397.0
    assert RifterFit.ship.getModifiedItemAttr("radius") == 31.0
    assert RifterFit.ship.getModifiedItemAttr("rechargeRate") == 93750.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1") == 3329.0
    assert RifterFit.ship.getModifiedItemAttr("requiredSkill1Level") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSize") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("rigSlots") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("scanGravimetricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanLadarStrength") == 9.6
    assert RifterFit.ship.getModifiedItemAttr(
        "scanMagnetometricStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanRadarStrength") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("scanResolution") == 825.0
    assert RifterFit.ship.getModifiedItemAttr("scanSpeed") == 1500.0
    assert RifterFit.ship.getModifiedItemAttr("shieldCapacity") == 562.5
    assert RifterFit.ship.getModifiedItemAttr("shieldEmDamageResonance") == 1.0
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldExplosiveDamageResonance") == 0.5
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldKineticDamageResonance") == 0.6
    assert RifterFit.ship.getModifiedItemAttr("shieldRechargeRate") == 468750.0
    assert RifterFit.ship.getModifiedItemAttr(
        "shieldThermalDamageResonance") == 0.8
    assert RifterFit.ship.getModifiedItemAttr("shieldUniformity") == 1
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF") == 5.0
    assert RifterFit.ship.getModifiedItemAttr("shipBonusMF2") == 10.0
    assert RifterFit.ship.getModifiedItemAttr("shipScanResistance") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("signatureRadius") == 35.0
    assert RifterFit.ship.getModifiedItemAttr("structureUniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("techLevel") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("thermalDamageResonance") == 0.67
    assert RifterFit.ship.getModifiedItemAttr("turretSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("typeColorScheme") == 11342.0
    assert RifterFit.ship.getModifiedItemAttr("uniformity") == 1.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeCapacity") == 400.0
    assert RifterFit.ship.getModifiedItemAttr("upgradeSlotsLeft") == 3.0
    assert RifterFit.ship.getModifiedItemAttr("volume") == 27289.0
    assert RifterFit.ship.getModifiedItemAttr("warpCapacitorNeed") == 1.12e-06
    assert RifterFit.ship.getModifiedItemAttr("warpFactor") == 0.0
    assert RifterFit.ship.getModifiedItemAttr("warpSpeedMultiplier") == 5.0
コード例 #14
0
def test_calculateModifiedAttributes_withProjected(DB, RifterFit, HeronFit):
    # TODO: This test is not currently functional or meaningful as projections are not happening correctly.
    # This is true for all tested branches (master, dev, etc)
    rifter_modifier_dicts = {
        '_ModifiedAttributeDict__affectedBy'          : 26,
        '_ModifiedAttributeDict__forced'              : 0,
        '_ModifiedAttributeDict__intermediary'        : 0,
        '_ModifiedAttributeDict__modified'            : 26,
        '_ModifiedAttributeDict__multipliers'         : 22,
        '_ModifiedAttributeDict__overrides'           : 0,
        '_ModifiedAttributeDict__penalizedMultipliers': 0,
        '_ModifiedAttributeDict__postIncreases'       : 0,
        '_ModifiedAttributeDict__preAssigns'          : 0,
        '_ModifiedAttributeDict__preIncreases'        : 4,
    }

    # quick hack to disable test. Need to rewrite ttests to not point to the DB
    assert 1==1
    return

    # Test before calculating attributes
    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == 0

    # Get base stats
    max_target_range_1 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_1 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()

    # Get self calculated stats
    max_target_range_2 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_2 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    # Project Heron fit onto Rifter
    RifterFit._Fit__projectedFits[HeronFit.ID] = HeronFit

    # DB['saveddata_session'].commit()
    # DB['saveddata_session'].flush()
    # DB['saveddata_session'].refresh(HeronFit)

    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_3 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_3 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_4 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_4 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    RifterFit.clear()
    HeronFit.calculateModifiedAttributes(targetFit=RifterFit)
    RifterFit.calculateModifiedAttributes()

    # Get stats with projections
    max_target_range_5 = RifterFit.ship.getModifiedItemAttr('maxTargetRange')
    scan_resolution_5 = RifterFit.ship.getModifiedItemAttr('scanResolution')

    for test_dict in rifter_modifier_dicts:
        assert len(getattr(RifterFit.ship.itemModifiedAttributes, test_dict)) == rifter_modifier_dicts[test_dict]