\r
using System.Collections.Generic;\r
using System.Linq;\r
-using KancolleSniffer.Model;\r
using ExpressionToCodeLib;\r
+using KancolleSniffer.Model;\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
\r
namespace KancolleSniffer.Test\r
var night = new Sniffer();\r
SniffLogFile(night, "nelsontouch_003");\r
PAssert.That(() => night.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ // 海戦をまたがってフラグを引き継ぐ\r
+ var fired = new Sniffer();\r
+ SniffLogFile(fired, "nelsontouch_004");\r
+ PAssert.That(() => fired.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
}\r
\r
/// <summary>\r
}\r
\r
/// <summary>\r
+ /// 連合艦隊時の僚艦夜戦突撃に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void KongoSpecial()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "kongospecial_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.Result.Friend.Guard[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ PAssert.That(() => sniffer.Fleets[1].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ }\r
+\r
+ /// <summary>\r
/// レーダー射撃戦に対応する\r
/// </summary>\r
[TestMethod]\r
SniffLogFile(sniffer, "ld_shooting_001");\r
PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
+\r
+ /// <summary>\r
+ /// 敵連合艦隊の護衛の装備を正しく読み取る\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void EnemyGuardSlot()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "enemy_combined_001");\r
+ PAssert.That(() => sniffer.Battle.Result.Enemy.Guard[0].Slot[0].Spec.Id == 506);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 敵艦隊の制空値を計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void EnemyFighterPower()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "enemy_combined_001");\r
+ var fp = sniffer.Battle.EnemyFighterPower;\r
+ PAssert.That(() => fp.AirCombat == 209 && fp.Interception == 212);\r
+ }\r
+\r
+ /// <summary>\r
+ /// ダメコン進撃する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedShipWithDamageControl()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "damecon_advance_001");\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Length == 0);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 迎撃機ありの基地空襲戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleWithInterceptor()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_001");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.AirRaid, battle.BattleState);\r
+ Assert.AreEqual(2, battle.AirControlLevel);\r
+ Assert.AreEqual(425, battle.FighterPower.Min);\r
+ Assert.AreEqual(231, battle.EnemyFighterPower.AirCombat);\r
+ Assert.AreEqual(BattleResultRank.S, battle.ResultRank);\r
+ var ships = battle.Result.Friend.Main;\r
+ Assert.IsTrue(new[] {200, 200, 200}.SequenceEqual(ships.Select(ship => ship.NowHp)));\r
+ Assert.IsTrue(new[] {"基地航空隊1", "基地航空隊2", "基地航空隊3"}.SequenceEqual(ships.Select(ship => ship.Name)));\r
+ Assert.IsTrue(\r
+ new[] {"烈風改(三五二空/熟練)", "雷電", "雷電", "烈風改"}.SequenceEqual(ships[2].Slot.Select(item => item.Spec.Name)));\r
+ Assert.IsTrue(new[]{18, 18, 18, 18}.SequenceEqual(ships[2].OnSlot));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 迎撃機なしの基地航空戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleWithoutInterceptor()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_002");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.AirRaid, battle.BattleState);\r
+ Assert.AreEqual(4, battle.AirControlLevel);\r
+ Assert.AreEqual(0, battle.FighterPower.Min);\r
+ Assert.AreEqual(231, battle.EnemyFighterPower.AirCombat);\r
+ Assert.AreEqual(BattleResultRank.B, battle.ResultRank);\r
+ var ships = battle.Result.Friend.Main;\r
+ Assert.IsTrue(new[] {82, 174, 147}.SequenceEqual(ships.Select(ship => ship.NowHp)));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 基地航空戦直後のボス戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleBeforeBoss()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_004");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.Result, battle.BattleState);\r
+ Assert.AreEqual(0, sniffer.BadlyDamagedShips.Length);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 緊急泊地修理\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AnchorageRepair()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "anchorage_repair_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 大破進撃しても平気なマスでの大破警告抑制\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void IgnoreDamagedShips()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "endpoint_001");\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Length == 0);\r
+ }\r
}\r
}
\ No newline at end of file