var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "battle_002");\r
AssertEqualBattleResult(sniffer, new[] {28, 1, 13});\r
- PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
}\r
\r
private void AssertEqualBattleResult(Sniffer sniffer, IEnumerable<int> expected, string msg = null)\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "combined_surface_001");\r
AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 51, 47}, new[] {39, 35, 11, 39, 37, 40});\r
- PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
\r
SniffLogFile(sniffer, "combined_surface_002");\r
AssertEauqlCombinedResult(sniffer, new[] {40, 77, 77, 33, 15, 6}, new[] {39, 35, 4, 3, 14, 40});\r
- PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
}\r
\r
private void AssertEauqlCombinedResult(Sniffer sniffer, IEnumerable<int> expected0, IEnumerable<int> expected1,\r
}\r
\r
/// <summary>\r
+ /// 敵連合艦隊への航空支援攻撃を反映させる\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void SupportAirAttackResultRank()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "support_002");\r
+ PAssert.That(() => sniffer.Battle.ResultRank == BattleResultRank.P);\r
+ }\r
+\r
+ /// <summary>\r
/// ダメコンの使用を戦闘結果に反映させる\r
/// </summary>\r
[TestMethod]\r
}\r
\r
/// <summary>\r
+ /// 轟沈した艦娘に大破警告を出さない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnToSunkShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "sunk_001");\r
+ AssertEqualBattleResult(sniffer, new[]{26, 0, 1, 3});\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.SequenceEqual(new[] {"菊月", "雪風"}));\r
+ }\r
+\r
+ /// <summary>\r
/// 連合艦隊(水上打撃部隊)で二回目の砲撃戦がない場合を正しく処理する\r
/// </summary>\r
[TestMethod]\r
[TestMethod]\r
public void ZeroValueEmptySlot()\r
{\r
- var sniffer = new Sniffer();\r
+ var sniffer = new Sniffer {UseOldEnemyId = true};\r
SniffLogFile(sniffer, "battle_006");\r
- PAssert.That(() => sniffer.Battle.EnemyFighterPower == "0");\r
+ PAssert.That(() => sniffer.Battle.EnemyFighterPower.AirCombat == 0);\r
+ }\r
+\r
+ /// <summary>\r
+ /// B勝利を正しく判定する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void JudgeResultRankB()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "battle_008");\r
+ PAssert.That(() => sniffer.Battle.ResultRank == BattleResultRank.B);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 最終セルで大破警告を出さない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedShipInLastCell()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "taiha_001");\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 2);\r
+ PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
+ }\r
+\r
+ /// <summary>\r
+ /// 道中で大破警告を出す\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void WarnDamagedShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "taiha_002");\r
+ PAssert.That(() => sniffer.GetShipStatuses(0)[2].NowHp == 1);\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Any());\r
+ }\r
+\r
+ /// <summary>\r
+ /// 連合艦隊の第二艦隊の旗艦の大破警告を出さない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedFlagshipInGuardFleet()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "taiha_003");\r
+ PAssert.That(() => sniffer.GetShipStatuses(1)[0].NowHp == 12);\r
+ PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "fighterpower_003");\r
- PAssert.That(() => sniffer.GetFighterPower(0).SequenceEqual(new [] {135, 135}));\r
+ PAssert.That(() => sniffer.GetFighterPower(0).SequenceEqual(new[] {135, 135}));\r
}\r
\r
/// <summary>\r
SniffLogFile(sniffer, "baseaircorps_001");\r
PAssert.That(() => sniffer.BaseAirCorps[0].AirCorps[0].FighterPower[1] == 301);\r
sniffer.BaseAirCorps[0].AirCorps[0].Action = 2; // 防空\r
- PAssert.That(()=>sniffer.BaseAirCorps[0].AirCorps[0].FighterPower[1] == 320);\r
+ PAssert.That(() => sniffer.BaseAirCorps[0].AirCorps[0].FighterPower[1] == 320);\r
}\r
\r
/// <summary>\r
}\r
\r
/// <summary>\r
+ /// 陸上攻撃機の熟練度を制空値に反映させる\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void FighterPowerOfLandBasedAttackAircraft()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "baseaircorps_003");\r
+ PAssert.That(() => sniffer.BaseAirCorps[1].AirCorps[0].FighterPower[0] == 121);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 敵艦隊の制空値を計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void EnemyFighterPower()\r
+ {\r
+ var sniffer1 = new Sniffer{UseOldEnemyId = true};\r
+ SniffLogFile(sniffer1, "airbattle_002");\r
+ PAssert.That(() => sniffer1.Battle.EnemyFighterPower.AirCombat == 28);\r
+\r
+ var sniffer2 = new Sniffer {UseOldEnemyId = true};\r
+ SniffLogFile(sniffer2, "both_combined_001");\r
+ PAssert.That(() => sniffer2.Battle.EnemyFighterPower.AirCombat == 389);\r
+ }\r
+\r
+ /// <summary>\r
/// マップ索敵の判定式(33)を正しく計算する\r
/// </summary>\r
[TestMethod]\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "lineofsight_001");\r
- PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0) - 39.45) < 0.01);\r
+ PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0, 1) - 39.45) < 0.01);\r
+ PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0, 3) - 115.19) < 0.01);\r
+ PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0, 4) - 153.06) < 0.01);\r
SniffLogFile(sniffer, "lineofsight_002");\r
- PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0) - -25.10) < 0.01, "艦隊に空きがある");\r
+ PAssert.That(() => Math.Abs(sniffer.GetFleetLineOfSights(0, 1) - -25.10) < 0.01, "艦隊に空きがある");\r
}\r
\r
/// <summary>\r
var sniffer2 = new Sniffer();\r
SniffLogFile(sniffer2, "both_combined_001");\r
PAssert.That(() => sniffer2.Battle.ResultRank == BattleResultRank.S);\r
+\r
+ // 護衛艦隊に雷撃を受ける場合\r
+ var sniffer3 = new Sniffer();\r
+ SniffLogFile(sniffer3, "both_combined_002");\r
+ PAssert.That(() => sniffer2.Battle.ResultRank == BattleResultRank.S);\r
+ PAssert.That(\r
+ () => sniffer3.GetShipStatuses(0).Select(s => s.NowHp).SequenceEqual(new[] {89, 86, 87, 78, 87, 57}));\r
+ PAssert.That(\r
+ () => sniffer3.GetShipStatuses(1).Select(s => s.NowHp).SequenceEqual(new[] {46, 37, 14, 59, 49, 63}));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 噴式強襲に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void Injection()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "injection_001");\r
+ PAssert.That(() => sniffer.Battle.ResultRank == BattleResultRank.P);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 基地航空隊噴式強襲でapi_stage3_combinedがnullの場合に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirbaseInjection()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airbase_injection_001");\r
+ PAssert.That(() => sniffer.Battle.ResultRank == BattleResultRank.P);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 対空砲火のパラメータを計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AntiAirFire()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "antiairfire_001");\r
+ var ships = sniffer.GetShipStatuses(0);\r
+ PAssert.That(() => ships.Sum(ship => ship.EffectiveAntiAirForFleet) == 88);\r
+ PAssert.That(\r
+ () =>\r
+ ships.Select(ship => ship.EffectiveAntiAirForShip)\r
+ .SequenceEqual(new[] {92, 90, 88, 228, 146, 226}));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 航空戦の結果を処理する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirBattleResult()\r
+ {\r
+ var sniffer1 = new Sniffer();\r
+ SniffLogFile(sniffer1, "battle_001");\r
+ PAssert.That(() => sniffer1.Battle.AirBattleResults.Count == 0);\r
+\r
+ var sniffer2 = new Sniffer();\r
+ SniffLogFile(sniffer2, "ec_battle_001");\r
+ PAssert.That(() => sniffer2.Battle.AirBattleResults.Count == 4);\r
+\r
+ var sniffer3 = new Sniffer();\r
+ SniffLogFile(sniffer3, "battle_007");\r
+ PAssert.That(() => sniffer3.Battle.AirBattleResults.Count == 1, "stage2がない場合");\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "powerup_001");\r
- PAssert.That(() => Math.Abs(sniffer.GetShipStatuses(0)[0].RealFirepower - 30) < 0.0001);\r
+ PAssert.That(() => Math.Abs(sniffer.GetShipStatuses(0)[0].EffectiveFirepower - 30) < 0.0001);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 近代化改修が二重に行われた場合に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void DuplicatedPowerup()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "powerup_002");\r
+ PAssert.That(() => sniffer.Item.NowShips == 218);\r
}\r
\r
/// <summary>\r