OSDN Git Service

バージョン12.11の準備
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / BattleTest.cs
index 9137bd1..e4b4e0d 100644 (file)
@@ -14,8 +14,8 @@
 \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
@@ -97,7 +97,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "practice_001");\r
-            PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -108,7 +108,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "practice_002");\r
-            PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -130,7 +130,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "combined_battle_001");\r
-            PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -141,7 +141,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "combined_battle_002");\r
-            PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -152,7 +152,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "combined_battle_003");\r
-            PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -176,7 +176,8 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "sp_midnight_002");\r
-            PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
+            PAssert.That(() => sniffer.Battle.SupportType == 2);\r
         }\r
 \r
         /// <summary>\r
@@ -187,7 +188,7 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "nighttoday_001");\r
-            PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError && !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -211,7 +212,7 @@ namespace KancolleSniffer.Test
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "escape_002");\r
             PAssert.That(() => sniffer.Fleets[2].Ships[1].Escaped);\r
-            PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
         }\r
 \r
         /// <summary>\r
@@ -255,12 +256,181 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             SniffLogFile(sniffer, "nelsontouch_001");\r
-            PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError);\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
             PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
             PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
             // ship_deckでフラグを引き継ぐ\r
             SniffLogFile(sniffer, "nelsontouch_002");\r
             PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+            // 夜戦\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
+        /// </summary>\r
+        [TestMethod]\r
+        // ReSharper disable once IdentifierTypo\r
+        public void NagatoSpecial()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "nagatospecial_001");\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
+            PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+            PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 陸奥改二の一斉射に対応する\r
+        /// </summary>\r
+        [TestMethod]\r
+        // ReSharper disable once IdentifierTypo\r
+        public void MutsuSpecial()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            SniffLogFile(sniffer, "mutsuspecial_001");\r
+            PAssert.That(() => !sniffer.IsBattleResultError);\r
+            PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+            PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\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
+        public void LdShooting()\r
+        {\r
+            var sniffer = new Sniffer();\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