OSDN Git Service

兵站強化遠征任務【拡張作戦】でブルネイ泊地沖哨戒がカウントされないのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestCounterTest.cs
index c76fcd2..7033628 100644 (file)
@@ -14,9 +14,9 @@
 \r
 using System;\r
 using System.Linq;\r
+using DynaJson;\r
 using ExpressionToCodeLib;\r
 using KancolleSniffer.Model;\r
-using KancolleSniffer.Util;\r
 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
 \r
 namespace KancolleSniffer.Test\r
@@ -33,22 +33,22 @@ namespace KancolleSniffer.Test
                 Now = 3\r
             };\r
             count.AdjustCount(0);\r
-            Assert.IsTrue(count.Now == 3);\r
+            Assert.AreEqual(3, count.Now);\r
             count.AdjustCount(50);\r
-            Assert.IsTrue(count.Now == 4);\r
+            Assert.AreEqual(4, count.Now);\r
             count.AdjustCount(80);\r
-            Assert.IsTrue(count.Now == 6);\r
+            Assert.AreEqual(6, count.Now);\r
             count.AdjustCount(100);\r
-            Assert.IsTrue(count.Now == 7);\r
+            Assert.AreEqual(7, count.Now);\r
             count.Now = 14;\r
             count.AdjustCount(100);\r
-            Assert.IsTrue(count.Now == 14);\r
+            Assert.AreEqual(14, count.Now);\r
             count.AdjustCount(80);\r
-            Assert.IsTrue(count.Now == 6);\r
+            Assert.AreEqual(6, count.Now);\r
             count.AdjustCount(50);\r
-            Assert.IsTrue(count.Now == 5);\r
+            Assert.AreEqual(5, count.Now);\r
             count.AdjustCount(0);\r
-            Assert.IsTrue(count.Now == 3);\r
+            Assert.AreEqual(3, count.Now);\r
         }\r
 \r
         [TestMethod]\r
@@ -60,22 +60,49 @@ namespace KancolleSniffer.Test
                 Now = 3\r
             };\r
             count.AdjustCount(0);\r
-            Assert.IsTrue(count.Now == 2);\r
+            Assert.AreEqual(2, count.Now);\r
             count.AdjustCount(50);\r
-            Assert.IsTrue(count.Now == 3);\r
+            Assert.AreEqual(3, count.Now);\r
             count.AdjustCount(80);\r
-            Assert.IsTrue(count.Now == 6);\r
+            Assert.AreEqual(6, count.Now);\r
             count.AdjustCount(100);\r
-            Assert.IsTrue(count.Now == 7);\r
+            Assert.AreEqual(7, count.Now);\r
             count.Now = 14;\r
             count.AdjustCount(100);\r
-            Assert.IsTrue(count.Now == 14);\r
+            Assert.AreEqual(14, count.Now);\r
             count.AdjustCount(80);\r
-            Assert.IsTrue(count.Now == 6);\r
+            Assert.AreEqual(6, count.Now);\r
             count.AdjustCount(50);\r
-            Assert.IsTrue(count.Now == 5);\r
+            Assert.AreEqual(5, count.Now);\r
             count.AdjustCount(0);\r
-            Assert.IsTrue(count.Now == 2);\r
+            Assert.AreEqual(2, count.Now);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void AdjustCountMax3WithShift2()\r
+        {\r
+            var count = new QuestCount\r
+            {\r
+                Spec = new QuestSpec {Max = 3, Shift = 2},\r
+                Now = 0\r
+            };\r
+            count.AdjustCount(0);\r
+            Assert.AreEqual(0, count.Now);\r
+            count.AdjustCount(50);\r
+            Assert.AreEqual(1, count.Now);\r
+            count.AdjustCount(80);\r
+            Assert.AreEqual(2, count.Now);\r
+            count.AdjustCount(100);\r
+            Assert.AreEqual(3, count.Now);\r
+            count.Now = 4;\r
+            count.AdjustCount(100);\r
+            Assert.AreEqual(4, count.Now);\r
+            count.AdjustCount(80);\r
+            Assert.AreEqual(2, count.Now);\r
+            count.AdjustCount(50);\r
+            Assert.AreEqual(1, count.Now);\r
+            count.AdjustCount(0);\r
+            Assert.AreEqual(0, count.Now);\r
         }\r
 \r
         [TestMethod]\r
@@ -93,7 +120,7 @@ namespace KancolleSniffer.Test
                     count.Spec.Shift = shift;\r
                     count.Now = 1;\r
                     count.AdjustCount(80);\r
-                    Assert.IsTrue(count.Now == count.Spec.Max - 1);\r
+                    Assert.AreEqual(count.Spec.Max - 1, count.Now);\r
                 }\r
             }\r
         }\r
@@ -137,53 +164,100 @@ namespace KancolleSniffer.Test
                     new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},\r
                     new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}},\r
                     new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
-                    new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}}\r
+                    new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
+                    new QuestCount {Id = 226, Now = 2},\r
+                    new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
+                    new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}},\r
+                    new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}},\r
+                    new QuestCount {Id = 439, NowArray = new[] {1, 0, 1, 1}},\r
+                    new QuestCount {Id = 440, NowArray = new[] {1, 0, 1, 1, 1}}\r
                 }\r
             };\r
-            new QuestInfo().LoadState(status);\r
-            Assert.IsTrue(status.QuestCountList[0].ToString() == "2/3");\r
-            Assert.IsTrue(status.QuestCountList[1].ToString() == "20/36 7/6 10/24 8/12");\r
+            var countList = new QuestCountList();\r
+            countList.SetMissionNames(new JsonObject(new[]\r
+            {\r
+                new {api_id = 1, api_name = "練習航海"},\r
+                new {api_id = 2, api_name = "長距離練習航海"},\r
+                new {api_id = 3, api_name = "警備任務"},\r
+                new {api_id = 4, api_name = "対潜警戒任務"},\r
+                new {api_id = 5, api_name = "海上護衛任務"},\r
+                new {api_id = 9, api_name = "タンカー護衛任務"},\r
+                new {api_id = 10, api_name = "強行偵察任務"},\r
+                new {api_id = 11, api_name = "ボーキサイト輸送任務"},\r
+                new {api_id = 40, api_name = "水上機前線輸送"},\r
+                new {api_id = 41, api_name = "ブルネイ泊地沖哨戒"},\r
+                new {api_id = 46, api_name = "南西海域戦闘哨戒"},\r
+                new {api_id = 100, api_name = "兵站強化任務"},\r
+                new {api_id = 101, api_name = "海峡警備行動"},\r
+                new {api_id = 102, api_name = "長時間対潜警戒"},\r
+                new {api_id = 104, api_name = "小笠原沖哨戒線"},\r
+                new {api_id = 105, api_name = "小笠原沖戦闘哨戒"},\r
+                new {api_id = 110, api_name = "南西方面航空偵察作戦"},\r
+                new {api_id = 114, api_name = "南西諸島捜索撃滅戦"},\r
+                new {api_id = 142, api_name = "強行鼠輸送作戦"}\r
+            }));\r
+            new QuestInfo(countList).LoadState(status);\r
+            Assert.AreEqual("2/3", status.QuestCountList[0].ToString());\r
+            Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString());\r
             var z = status.QuestCountList[2];\r
-            Assert.IsTrue(z.ToString() == "4/4");\r
-            Assert.IsTrue(z.ToToolTip() == "2-4 6-1 6-3 6-4");\r
+            Assert.AreEqual("2\u200a1\u200a1\u200a1", z.ToString());\r
+            Assert.AreEqual("2-4:2 6-1:1 6-3:1 6-4:1", z.ToToolTip());\r
             z.NowArray = new[] {0, 0, 0, 0};\r
-            Assert.IsTrue(z.ToToolTip() == "");\r
+            Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip());\r
             var q426 = status.QuestCountList[3];\r
-            Assert.IsTrue(q426.ToString() == "4/4");\r
-            Assert.IsTrue(q426.ToToolTip() == "警備任務 対潜警戒任務 海上護衛任務 強硬偵察任務");\r
+            Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString());\r
+            Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強行偵察任務1", q426.ToToolTip());\r
             var q428 = status.QuestCountList[4];\r
-            Assert.IsTrue(q428.ToToolTip() == "対潜警戒任務1 海峡警備行動1 長時間対潜警戒1");\r
+            Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip());\r
             q428.NowArray = new[] {0, 1, 0};\r
-            Assert.IsTrue(q428.ToToolTip() == "海峡警備行動1");\r
+            Assert.AreEqual("対潜警戒任務0 海峡警備行動1 長時間対潜警戒0", q428.ToToolTip());\r
             var q873 = status.QuestCountList[5];\r
-            Assert.IsTrue(q873.ToString() == "3/3");\r
-            Assert.IsTrue(q873.ToToolTip() == "3-1 3-2 3-3");\r
+            Assert.AreEqual("1\u200a1\u200a1", q873.ToString());\r
+            Assert.AreEqual("3-1:1 3-2:1 3-3:1", q873.ToToolTip());\r
             var q888 = status.QuestCountList[6];\r
-            Assert.IsTrue(q888.ToString() == "3/3");\r
-            Assert.IsTrue(q888.ToToolTip() == "5-1 5-3 5-4");\r
+            Assert.AreEqual("1\u200a1\u200a1", q888.ToString());\r
+            Assert.AreEqual("5-1:1 5-3:1 5-4:1", q888.ToToolTip());\r
             var q688 = status.QuestCountList[7];\r
-            Assert.IsTrue(q688.ToToolTip() == "艦戦2 艦爆1 艦攻2 水偵1");\r
+            Assert.AreEqual("艦戦2 艦爆1 艦攻2 水偵1", q688.ToToolTip());\r
             var q893 = status.QuestCountList[8];\r
-            Assert.IsTrue(q893.ToToolTip() == "1-5:1 7-1:1 7-2G:1 7-2M:1");\r
+            Assert.AreEqual("1-5:1 7-1:1 7-2G:1 7-2M:1", q893.ToToolTip());\r
             var q894 = status.QuestCountList[9];\r
-            Assert.IsTrue(q894.ToString() == "5/5");\r
-            Assert.IsTrue(q894.ToToolTip() == "1-3 1-4 2-1 2-2 2-3");\r
+            Assert.AreEqual("1\u200a1\u200a1\u200a1\u200a1", q894.ToString());\r
+            Assert.AreEqual("1-3:1 1-4:1 2-1:1 2-2:1 2-3:1", q894.ToToolTip());\r
             var q280 = status.QuestCountList[10];\r
-            Assert.IsTrue(q280.ToString() == "4/4");\r
-            Assert.IsTrue(q280.ToToolTip() == "1-2 1-3 1-4 2-1");\r
+            Assert.AreEqual("1\u200a1\u200a1\u200a1", q280.ToString());\r
+            Assert.AreEqual("1-2:1 1-3:1 1-4:1 2-1:1", q280.ToToolTip());\r
             var q872 = status.QuestCountList.First(q => q.Id == 872);\r
-            Assert.IsTrue(q872.ToString() == "4/4");\r
-            Assert.IsTrue(q872.ToToolTip() == "7-2M 5-5 6-2 6-5");\r
+            Assert.AreEqual("1\u200a1\u200a1\u200a1", q872.ToString());\r
+            Assert.AreEqual("7-2M:1 5-5:1 6-2:1 6-5:1", q872.ToToolTip());\r
             var q284 = status.QuestCountList.First(q => q.Id == 284);\r
-            Assert.IsTrue(q284.ToString() == "4/4");\r
-            Assert.IsTrue(q284.ToToolTip() == "1-4 2-1 2-2 2-3");\r
+            Assert.AreEqual("1\u200a1\u200a1\u200a1", q284.ToString());\r
+            Assert.AreEqual("1-4:1 2-1:1 2-2:1 2-3:1", q284.ToToolTip());\r
+            var q226 = status.QuestCountList.First(q => q.Id == 226);\r
+            Assert.AreEqual("2/5", q226.ToString());\r
+            Assert.AreEqual("", q226.ToToolTip());\r
+            var q436 = status.QuestCountList.First(q => q.Id == 436);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
+            Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
+            var q437 = status.QuestCountList.First(q => q.Id == 437);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a1", q437.ToString());\r
+            Assert.AreEqual("対潜警戒任務1 小笠原沖哨戒線0 小笠原沖戦闘哨戒1 南西方面航空偵察作戦1", q437.ToToolTip());\r
+            var q438 = status.QuestCountList.First(q => q.Id == 438);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString());\r
+            Assert.AreEqual("対潜警戒任務1 兵站強化任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip());\r
+            var q439 = status.QuestCountList.First(q => q.Id == 439);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a1", q439.ToString());\r
+            Assert.AreEqual("海上護衛任務1 兵站強化任務0 ボーキサイト輸送任務1 南西方面航空偵察作戦1", q439.ToToolTip());\r
+            var q440 = status.QuestCountList.First(q => q.Id == 440);\r
+            Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q440.ToString());\r
+            Assert.AreEqual("海上護衛任務1 ブルネイ泊地沖哨戒0 南西海域戦闘哨戒1 水上機前線輸送1 強行鼠輸送作戦1", q440.ToToolTip());\r
         }\r
     }\r
 \r
     [TestClass]\r
     public class QuestCounterTest\r
     {\r
-        private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);\r
+        private JsonObject Js(object obj) => new JsonObject(obj);\r
 \r
         private object CreateQuestList(int[] ids) => Js(new\r
         {\r
@@ -201,10 +275,15 @@ namespace KancolleSniffer.Test
                 })\r
         });\r
 \r
-        private QuestStatus InjectQuest(int id)\r
+        private QuestCount InjectQuest(int id)\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {id}));\r
-            return _questInfo.Quests[0];\r
+            InjectQuestList(new[] {id});\r
+            return _questInfo.Quests[0].Count;\r
+        }\r
+\r
+        private void InjectQuestList(int[] ids)\r
+        {\r
+            _questInfo.InspectQuestList("api_tab_id=0", CreateQuestList(ids));\r
         }\r
 \r
         private void InjectMapStart(int map, int eventId)\r
@@ -237,26 +316,28 @@ namespace KancolleSniffer.Test
             _questCounter.InspectPracticeResult(Js(new {api_win_rank = result}));\r
         }\r
 \r
-        private bool CheckCount(QuestStatus quest, int number)\r
+        private ShipStatus[] ShipStatusList(params int[] shipTypes)\r
         {\r
-            return quest.Count.Now == number;\r
+            return shipTypes.Select(sType => ShipStatus(sType)).ToArray();\r
         }\r
 \r
-        private bool CheckCount(QuestStatus quest, int[] array)\r
+        private ShipStatus ShipStatus(int shipType, int specId = 0)\r
         {\r
-            return quest.Count.NowArray.SequenceEqual(array);\r
+            return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
         }\r
 \r
-        private ShipStatus[] ShipStatusList(params int[] shipTypes)\r
+        private ShipStatus ShipStatus(int shipType, int shipClass, int specId)\r
         {\r
-            return shipTypes.Select(sType => ShipStatus(sType)).ToArray();\r
+            return new ShipStatus\r
+                {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
         }\r
 \r
-        private ShipStatus ShipStatus(int shipType, int specId = 0)\r
+        private ShipStatus ShipStatus(string name)\r
         {\r
-            return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
+            return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Name = name}};\r
         }\r
 \r
+\r
         private BattleInfo _battleInfo;\r
         private ItemInfo _itemInfo;\r
         private QuestInfo _questInfo;\r
@@ -267,7 +348,7 @@ namespace KancolleSniffer.Test
         {\r
             _battleInfo = new BattleInfo(null, null, null);\r
             _itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
-            _questInfo = new QuestInfo(() => new DateTime(2015, 1, 1)) {AcceptMax = 10};\r
+            _questInfo = new QuestInfo(new QuestCountList(), () => new DateTime(2015, 1, 1));\r
             _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
         }\r
 \r
@@ -280,38 +361,43 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_201_216_210_214()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {201, 216, 210, 214}));\r
+            InjectQuestList(new[] {201, 216, 210, 214});\r
 \r
             InjectMapStart(11, 4);\r
-            var quests = _questInfo.Quests;\r
+            var counts = _questInfo.Quests.Select(q => q.Count).ToArray();\r
             // 出撃カウント\r
-            PAssert.That(() => quests[2].Id == 214 && quests[2].Count.NowArray[0] == 1);\r
+            Assert.AreEqual(214, counts[2].Id);\r
+            Assert.AreEqual(1, counts[2].NowArray[0]);\r
             InjectBattleResult("S");\r
             // 道中S勝利\r
-            PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
+            PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
             {\r
                 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},\r
                 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}\r
             }));\r
-            PAssert.That(() => quests[2].Id == 214 && CheckCount(quests[2], new[] {1, 1, 0, 0}));\r
+            PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 0, 0}));\r
 \r
             InjectMapNext(11, 5);\r
             // ボスB勝利\r
             InjectBattleResult("B");\r
-            PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
+            PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
             {\r
                 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},\r
                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
             }));\r
             // ボス敗北\r
-            PAssert.That(() => quests[2].Id == 214 && CheckCount(quests[2], new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
             InjectBattleResult("C");\r
-            PAssert.That(() => quests.Select(q => new {q.Id, q.Count.Now}).SequenceEqual(new[]\r
+            PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
             {\r
                 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},\r
                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
             }));\r
-            PAssert.That(() => quests[2].Id == 214 && CheckCount(quests[2], new[] {1, 1, 2, 1}));\r
+            PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
+\r
+            // 1-6 ゴール\r
+            InjectMapNext(16,8);\r
+            Assert.AreEqual(2, counts[0].Now);\r
         }\r
 \r
         /// <summary>\r
@@ -323,7 +409,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_211_212_213_218_220_221()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {211, 212, 213, 218, 220, 221}));\r
+            InjectQuestList(new[] {211, 212, 213, 218, 220, 221});\r
             // 補給艦1隻と空母2隻\r
             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
             {\r
@@ -351,7 +437,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_228_230()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {228, 230}));\r
+            InjectQuestList(new[] {228, 230});\r
             // 潜水艦3\r
             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
             {\r
@@ -374,17 +460,17 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_226()\r
         {\r
-            var quest = InjectQuest(226);\r
+            var count = InjectQuest(226);\r
 \r
             InjectMapStart(21, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(21, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
             InjectBattleResult("B");\r
-            Assert.IsTrue(CheckCount(quest, 2));\r
+            Assert.AreEqual(2, count.Now);\r
         }\r
 \r
         /// <summary>\r
@@ -393,17 +479,17 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_243()\r
         {\r
-            var quest = InjectQuest(243);\r
+            var count = InjectQuest(243);\r
 \r
             InjectMapNext(52, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(52, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
         }\r
 \r
         /// <summary>\r
@@ -412,28 +498,31 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_249()\r
         {\r
-            var quest = InjectQuest(249);\r
+            var count = InjectQuest(249);\r
 \r
             _battleInfo.InjectResultStatus(new[]\r
             {\r
-                ShipStatus(5, 319), ShipStatus(5, 192), ShipStatus(5, 194),\r
-                ShipStatus(5, 193), ShipStatus(6, 189), ShipStatus(6, 188)\r
+                ShipStatus("妙高改二"), ShipStatus("那智改二"), ShipStatus("羽黒改二"),\r
+                ShipStatus("足柄改二"), ShipStatus("筑摩改二"), ShipStatus("利根改二")\r
             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectMapNext(25, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(25, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
-            _questInfo.Quests[0].Count.Now = 0;\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3].NowHp = 0;\r
+            InjectBattleResult("S");\r
+            Assert.AreEqual(2, count.Now, "足柄改二轟沈");\r
 \r
             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "那智改二轟沈");\r
+            Assert.AreEqual(2, count.Now, "那智改二轟沈");\r
         }\r
 \r
         /// <summary>\r
@@ -442,7 +531,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_257()\r
         {\r
-            var quest = InjectQuest(257);\r
+            var count = InjectQuest(257);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
@@ -450,47 +539,44 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(14, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(14, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
             _questInfo.Quests[0].Count.Now = 0;\r
 \r
             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "軽巡轟沈");\r
+            Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
 \r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
             _battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "旗艦が駆逐");\r
+            Assert.AreEqual(0, count.Now, "旗艦が駆逐");\r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
 \r
             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "軽巡が4隻");\r
+            Assert.AreEqual(0, count.Now, "軽巡が4隻");\r
 \r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "駆逐軽巡以外");\r
+            Assert.AreEqual(0, count.Now, "駆逐軽巡以外");\r
         }\r
 \r
-        private ShipStatus ShipStatus(int shipType, int shipClass, int specId) =>\r
-            new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
-\r
         /// <summary>\r
         /// 257: 「水上打撃部隊」南方へ!\r
         /// </summary>\r
         [TestMethod]\r
         public void BattleResult_259()\r
         {\r
-            var quest = InjectQuest(259);\r
+            var count = InjectQuest(259);\r
 \r
             var org = new[]\r
             {\r
@@ -503,33 +589,33 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(51, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(51, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
             _questInfo.Quests[0].Count.Now = 0;\r
 \r
             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "軽巡轟沈");\r
+            Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
 \r
             _battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "戦艦4隻");\r
+            Assert.AreEqual(0, count.Now, "戦艦4隻");\r
             _battleInfo.Result.Friend.Main[4] = org[4];\r
 \r
             _battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0), "軽巡なし");\r
+            Assert.AreEqual(0, count.Now, "軽巡なし");\r
             _battleInfo.Result.Friend.Main[0] = org[0];\r
 \r
             _battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "伊勢改二");\r
+            Assert.AreEqual(1, count.Now, "伊勢改二");\r
         }\r
 \r
         /// <summary>\r
@@ -538,7 +624,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_264()\r
         {\r
-            var quest = InjectQuest(264);\r
+            var count = InjectQuest(264);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(7, 11, 3, 3, 2, 2), new ShipStatus[0],\r
@@ -546,17 +632,17 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(42, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(42, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
 \r
             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "轟沈あり");\r
+            Assert.AreEqual(1, count.Now, "轟沈あり");\r
         }\r
 \r
         /// <summary>\r
@@ -565,7 +651,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_266()\r
         {\r
-            var quest = InjectQuest(266);\r
+            var count = InjectQuest(266);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(2, 5, 3, 2, 2, 2), new ShipStatus[0],\r
@@ -573,29 +659,29 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(25, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(25, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
 \r
             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "轟沈あり");\r
+            Assert.AreEqual(1, count.Now, "轟沈あり");\r
             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
 \r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "旗艦が軽巡");\r
+            Assert.AreEqual(1, count.Now, "旗艦が軽巡");\r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
 \r
             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "軽巡が2隻");\r
+            Assert.AreEqual(1, count.Now, "軽巡が2隻");\r
         }\r
 \r
         /// <summary>\r
@@ -604,7 +690,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_280()\r
         {\r
-            var quest = InjectQuest(280);\r
+            var count = InjectQuest(280);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
@@ -614,7 +700,7 @@ namespace KancolleSniffer.Test
             InjectBattleResult("S");\r
             InjectMapNext(12, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
 \r
             InjectBattleResult("S");\r
             InjectMapNext(13, 5);\r
@@ -623,27 +709,27 @@ namespace KancolleSniffer.Test
             InjectBattleResult("S");\r
             InjectMapNext(21, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(7, 1, 1, 8, 8, 8);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(8, 1, 1, 1, 8, 8);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1, 1, 8, 8);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 2}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}));\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(2, 4, 2, 1, 8, 8);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 3}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 3}));\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(2, 2, 21, 2, 8, 8);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 4}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 4}));\r
         }\r
 \r
         /// <summary>\r
@@ -652,7 +738,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_284()\r
         {\r
-            var quest = InjectQuest(284);\r
+            var count = InjectQuest(284);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
@@ -662,7 +748,7 @@ namespace KancolleSniffer.Test
             InjectBattleResult("S");\r
             InjectMapNext(14, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
 \r
             InjectBattleResult("S");\r
             InjectMapNext(21, 5);\r
@@ -671,7 +757,7 @@ namespace KancolleSniffer.Test
             InjectBattleResult("S");\r
             InjectMapNext(23, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
 \r
             // 艦種チェックは280と共通\r
         }\r
@@ -683,14 +769,15 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_822_854()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {822, 854}));\r
-            var q822 = _questInfo.Quests[0];\r
-            var q854 = _questInfo.Quests[1];\r
+            InjectQuestList(new[] {822, 854});\r
+            var c822 = _questInfo.Quests[0].Count;\r
+            var c854 = _questInfo.Quests[1].Count;\r
 \r
             InjectMapNext(24, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(q854, new[] {0, 0, 0, 0}));\r
-            Assert.IsTrue(CheckCount(q822, 0));\r
+\r
+            PAssert.That(() => c854.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
+            Assert.AreEqual(0, c822.Now);\r
 \r
             InjectMapNext(24, 5);\r
             InjectBattleResult("A");\r
@@ -700,12 +787,12 @@ namespace KancolleSniffer.Test
             InjectBattleResult("A");\r
             InjectMapNext(64, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(q854, new[] {1, 1, 1, 1}));\r
-            Assert.IsTrue(CheckCount(q822, 0));\r
+            PAssert.That(() => c854.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+            Assert.AreEqual(0, c822.Now);\r
             InjectMapNext(24, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(q854, new[] {2, 1, 1, 1}));\r
-            Assert.IsTrue(CheckCount(q822, 1));\r
+            PAssert.That(() => c854.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));\r
+            Assert.AreEqual(1, c822.Now);\r
         }\r
 \r
         /// <summary>\r
@@ -714,13 +801,13 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_845()\r
         {\r
-            var quest = InjectQuest(845);\r
+            var count = InjectQuest(845);\r
 \r
             InjectMapNext(41, 4);\r
             InjectBattleResult("S");\r
             InjectMapNext(41, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}));\r
 \r
             InjectMapNext(41, 5);\r
             InjectBattleResult("S");\r
@@ -732,7 +819,7 @@ namespace KancolleSniffer.Test
             InjectBattleResult("S");\r
             InjectMapNext(45, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
@@ -741,27 +828,26 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void MapNext_861()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {861}));\r
-            var quest = _questInfo.Quests[0];\r
+            var count = InjectQuest(861);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(10, 22, 2, 2, 2, 2), new ShipStatus[0],\r
                 new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectMapNext(16, 4);\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(16, 8);\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
 \r
             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
             InjectMapNext(16, 8);\r
-            Assert.IsTrue(CheckCount(quest, 1), "轟沈あり");\r
+            Assert.AreEqual(1, count.Now, "轟沈あり");\r
             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
 \r
             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;\r
             InjectMapNext(16, 8);\r
-            Assert.IsTrue(CheckCount(quest, 1), "補給・航戦が3隻");\r
+            Assert.AreEqual(1, count.Now, "補給・航戦が3隻");\r
         }\r
 \r
         /// <summary>\r
@@ -770,8 +856,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_862()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {862}));\r
-            var quest = _questInfo.Quests[0];\r
+            var count = InjectQuest(862);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(2, 3, 3, 2, 2, 16), new ShipStatus[0],\r
@@ -779,23 +864,23 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(63, 4);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(63, 5);\r
             InjectBattleResult("B");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
 \r
             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 1), "轟沈あり");\r
+            Assert.AreEqual(1, count.Now, "轟沈あり");\r
             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
 \r
             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
             _battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 2), "軽巡3隻水母2隻");\r
+            Assert.AreEqual(2, count.Now, "軽巡3隻水母2隻");\r
         }\r
 \r
         /// <summary>\r
@@ -804,23 +889,23 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_872()\r
         {\r
-            var quest = InjectQuest(872);\r
+            var count = InjectQuest(872);\r
 \r
             InjectMapNext(55, 4);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
             InjectMapNext(55, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 1, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 0, 0}));\r
 \r
             InjectMapNext(62, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 1, 1, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 0}));\r
             InjectMapNext(65, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 1}));\r
             _questCounter.InspectMapNext(Js(new\r
             {\r
                 api_maparea_id = 7,\r
@@ -829,7 +914,7 @@ namespace KancolleSniffer.Test
                 api_event_id = 5\r
             }));\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}), "7-2M");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
         }\r
 \r
         /// <summary>\r
@@ -838,7 +923,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_873()\r
         {\r
-            var quest = InjectQuest(873);\r
+            var count = InjectQuest(873);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
@@ -846,17 +931,17 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(31, 4);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
 \r
             InjectMapNext(31, 5);\r
             InjectBattleResult("B");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
 \r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(_questInfo.Quests[0].Count.NowArray[0] == 1, "軽巡なし");\r
+            Assert.AreEqual(1, _questInfo.Quests[0].Count.NowArray[0], "軽巡なし");\r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
 \r
             InjectMapNext(32, 5);\r
@@ -872,43 +957,43 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_875()\r
         {\r
-            var quest = InjectQuest(875);\r
+            var count = InjectQuest(875);\r
 \r
             _battleInfo.InjectResultStatus(new[]\r
             {\r
-                ShipStatus(2, 543), ShipStatus(8, 360), ShipStatus(11, 545),\r
-                ShipStatus(18, 467), ShipStatus(11, 261), ShipStatus(2, 344)\r
+                ShipStatus("長波改二"), ShipStatus("Iowa改"), ShipStatus("Saratoga Mk.II"),\r
+                ShipStatus("瑞鶴改二甲"), ShipStatus("望月改"), ShipStatus("朝霜改")\r
             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectMapNext(54, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
 \r
             InjectMapNext(54, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, 0));\r
+            Assert.AreEqual(0, count.Now);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1));\r
+            Assert.AreEqual(1, count.Now);\r
 \r
             _battleInfo.Result.Friend.Main[5].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "朝霜改轟沈");\r
+            Assert.AreEqual(1, count.Now, "朝霜改轟沈");\r
             _battleInfo.Result.Friend.Main[5].NowHp = 1;\r
 \r
-            _battleInfo.Result.Friend.Main[0].Spec.Id = 345;\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("高波改");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 1), "長波改二なし");\r
-            _battleInfo.Result.Friend.Main[0].Spec.Id = 543;\r
+            Assert.AreEqual(1, count.Now, "長波改二なし");\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("長波改二");\r
 \r
-            _battleInfo.Result.Friend.Main[5].Spec.Id = 345;\r
+            _battleInfo.Result.Friend.Main[5] = ShipStatus("高波改");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 2), "高波改");\r
-            _battleInfo.Result.Friend.Main[5].Spec.Id = 359;\r
+            Assert.AreEqual(2, count.Now, "高波改");\r
+            _battleInfo.Result.Friend.Main[5] = ShipStatus("沖波改");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 3), "沖波改");\r
-            _battleInfo.Result.Friend.Main[5].Spec.Id = 578;\r
+            Assert.AreEqual(3, count.Now, "沖波改");\r
+            _battleInfo.Result.Friend.Main[5] = ShipStatus("朝霜改二");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, 4), "朝霜改二");\r
+            Assert.AreEqual(4, count.Now, "朝霜改二");\r
         }\r
 \r
         /// <summary>\r
@@ -917,40 +1002,42 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_888()\r
         {\r
-            var quest = InjectQuest(888);\r
+            var count = InjectQuest(888);\r
 \r
             _battleInfo.InjectResultStatus(new[]\r
             {\r
-                ShipStatus(5, 427), ShipStatus(5, 264), ShipStatus(5, 142),\r
-                ShipStatus(5, 417), ShipStatus(2, 144), ShipStatus(2, 195)\r
+                ShipStatus("鳥海改二"), ShipStatus("青葉改"), ShipStatus("衣笠改二"),\r
+                ShipStatus("加古改二"), ShipStatus("夕立改二"), ShipStatus("綾波改二")\r
             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectMapNext(51, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
 \r
             InjectMapNext(51, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0}), "轟沈あり");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "轟沈あり");\r
             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
 \r
-            _battleInfo.Result.Friend.Main[0].Spec.Id = 319;\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("妙高改二");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0}), "三川艦隊3隻");\r
-            _battleInfo.Result.Friend.Main[0].Spec.Id = 427;\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "三川艦隊3隻");\r
 \r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改二特");\r
             InjectMapNext(53, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
 \r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("天龍改二");\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus("古鷹改二");\r
             InjectMapNext(54, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
@@ -959,21 +1046,21 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_893()\r
         {\r
-            var quest = InjectQuest(893);\r
+            var count = InjectQuest(893);\r
 \r
             InjectMapNext(15, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
 \r
             InjectMapNext(15, 5);\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0, 0}), "1-5");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "1-5");\r
 \r
             InjectMapNext(71, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 0, 0}), "7-1");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "7-1");\r
 \r
             _questCounter.InspectMapNext(Js(new\r
             {\r
@@ -983,7 +1070,7 @@ namespace KancolleSniffer.Test
                 api_event_id = 5\r
             }));\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 0}), "7-2G");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "7-2G");\r
 \r
             _questCounter.InspectMapNext(Js(new\r
             {\r
@@ -993,7 +1080,7 @@ namespace KancolleSniffer.Test
                 api_event_id = 5\r
             }));\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}), "7-2M");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
         }\r
 \r
         /// <summary>\r
@@ -1002,41 +1089,277 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_894()\r
         {\r
-            var quest = InjectQuest(894);\r
+            var count = InjectQuest(894);\r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(2, 2, 2, 2, 2, 2),\r
                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectMapNext(13, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0, 0}), "空母なしはカウントしない");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "空母なしはカウントしない");\r
 \r
             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 7;\r
             InjectBattleResult("A");\r
-            Assert.IsTrue(CheckCount(quest, new[] {0, 0, 0, 0, 0}), "A勝利はカウントしない");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "A勝利はカウントしない");\r
 \r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0, 0, 0}), "1-3");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
 \r
             InjectMapNext(14, 4);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 0, 0, 0, 0}), "1-4");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-4");\r
 \r
             InjectMapNext(14, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 0, 0, 0}), "1-4");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-4");\r
 \r
             InjectMapNext(21, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 0, 0}), "2-1");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-1");\r
 \r
             InjectMapNext(22, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1, 0}), "2-2");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-2");\r
 \r
             InjectMapNext(23, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1, 1}), "2-3");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "2-3");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 拡張「六水戦」、最前線へ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_903()\r
+        {\r
+            var count = InjectQuest(903);\r
+            _battleInfo.InjectResultStatus(new[] {ShipStatus("夕張改二"), ShipStatus("睦月"), ShipStatus("綾波")},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+            InjectMapNext(51, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "六水戦駆逐が1隻");\r
+\r
+            _battleInfo.Result.Friend.Main[2] = ShipStatus("如月");\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
+\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "5-1");\r
+\r
+            InjectMapNext(54, 4);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改");\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改");\r
+\r
+            _battleInfo.Result.Friend.Main = new[] {ShipStatus("睦月"), ShipStatus("如月"), ShipStatus("夕張改二")};\r
+            InjectMapNext(54, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改二ではない");\r
+\r
+            _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("弥生"), ShipStatus("卯月")};\r
+            InjectMapNext(54, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "5-4");\r
+\r
+            _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("菊月"), ShipStatus("望月")};\r
+            InjectMapNext(64, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "6-4");\r
+\r
+            InjectMapNext(65, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "6-5");\r
+\r
+            _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改")};\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "由良改");\r
+\r
+            _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改二")};\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}), "由良改二");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 904: 精鋭「十九駆」、躍り出る!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_904()\r
+        {\r
+            var count = InjectQuest(904);\r
+            _battleInfo.InjectResultStatus(\r
+                new[] {ShipStatus("綾波改二"), ShipStatus("敷波")},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+            InjectMapNext(25, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "敷波はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus("敷波改二");\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
+\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "2-5");\r
+\r
+            InjectMapNext(34, 4);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
+\r
+            InjectMapNext(34, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "3-4");\r
+\r
+            InjectMapNext(45, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-5");\r
+\r
+            InjectMapNext(53, 5);\r
+            InjectBattleResult("S");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "5-3");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 905: 「海防艦」、海を護る!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_905()\r
+        {\r
+            var count = InjectQuest(905);\r
+            _battleInfo.InjectResultStatus(\r
+                ShipStatusList(1, 1, 1, 2, 2, 2),\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+            InjectMapNext(11, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "6隻はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[5] = new ShipStatus();\r
+            InjectBattleResult("B");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
+\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-1");\r
+\r
+            InjectMapNext(12, 4);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
+\r
+            InjectMapNext(12, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-2");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
+            InjectMapNext(13, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "海防艦2隻はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(1);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "1-3");\r
+\r
+            InjectMapNext(15, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "1-5");\r
+\r
+            InjectMapNext(16, 8);\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 912: 工作艦「明石」護衛任務\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_912()\r
+        {\r
+            var count = InjectQuest(912);\r
+            _battleInfo.InjectResultStatus(\r
+                new[] {ShipStatus("明石"), ShipStatus(2), ShipStatus(2), ShipStatus(1)},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+            InjectMapNext(13, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "駆逐艦2隻はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
+            InjectBattleResult("B");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
+\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
+\r
+            InjectMapNext(21, 4);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus("明石");\r
+            InjectMapNext(21, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "旗艦明石以外はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("明石");\r
+            _battleInfo.Result.Friend.Main[1] = ShipStatus(2);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "2-1");\r
+\r
+            InjectMapNext(22, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-2");\r
+\r
+            InjectMapNext(23, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-3");\r
+\r
+            InjectMapNext(16, 8);\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 912: 重巡戦隊、西へ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void BattleResult_914()\r
+        {\r
+            var count = InjectQuest(914);\r
+            _battleInfo.InjectResultStatus(\r
+                new[] {ShipStatus(5), ShipStatus(5), ShipStatus(5), ShipStatus(1)},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+            InjectMapNext(41, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "駆逐艦なしはカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
+            InjectBattleResult("B");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "B勝利はカウントしない");\r
+\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "4-1");\r
+\r
+            InjectMapNext(42, 4);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
+\r
+            InjectMapNext(42, 5);\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(6);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "重巡2隻はカウントしない");\r
+\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus(5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "4-2");\r
+\r
+            InjectMapNext(43, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-3");\r
+\r
+            InjectMapNext(44, 5);\r
+            InjectBattleResult("A");\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "4-3");\r
         }\r
 \r
         /// <summary>\r
@@ -1045,7 +1368,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_280_854()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {280, 854}));\r
+            InjectQuestList(new[] {280, 854});\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
@@ -1053,7 +1376,7 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(24, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(_questInfo.Quests[1].Count.NowArray[0] == 1);\r
+            Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[0]);\r
         }\r
 \r
         /// <summary>\r
@@ -1062,7 +1385,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void BattleResult_888_893()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {888, 893}));\r
+            InjectQuestList(new[] {888, 893});\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
@@ -1070,7 +1393,7 @@ namespace KancolleSniffer.Test
 \r
             InjectMapNext(71, 5);\r
             InjectBattleResult("S");\r
-            Assert.IsTrue(_questInfo.Quests[1].Count.NowArray[1] == 1);\r
+            Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[1]);\r
         }\r
 \r
         /// <summary>\r
@@ -1083,7 +1406,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void PracticeResult_303_304_302_311_315()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315}));\r
+            InjectQuestList(new[] {302, 303, 304, 311, 315});\r
 \r
             _battleInfo.InjectResultStatus(new[]\r
             {\r
@@ -1106,7 +1429,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void PracticeResult_318()\r
         {\r
-            var quest = InjectQuest(318);\r
+            var count = InjectQuest(318);\r
 \r
             _battleInfo.InjectResultStatus(new[]\r
             {\r
@@ -1114,20 +1437,20 @@ namespace KancolleSniffer.Test
             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
 \r
             InjectPracticeResult("B");\r
-            Assert.IsTrue(quest.Count.Now == 0, "軽巡1隻");\r
+            Assert.AreEqual(0, count.Now, "軽巡1隻");\r
             _battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
             _questCounter.StartPractice("api%5Fdeck%5Fid=2");\r
             InjectPracticeResult("B");\r
-            Assert.IsTrue(quest.Count.Now == 0, "第2艦隊");\r
+            Assert.AreEqual(0, count.Now, "第2艦隊");\r
             _questCounter.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊\r
             InjectPracticeResult("C");\r
-            Assert.IsTrue(quest.Count.Now == 0, "敗北");\r
+            Assert.AreEqual(0, count.Now, "敗北");\r
             InjectPracticeResult("B");\r
-            Assert.IsTrue(quest.Count.Now == 1);\r
+            Assert.AreEqual(1, count.Now);\r
 \r
-            quest.Count.Now = 2;\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
-            Assert.IsTrue(quest.Count.Now == 2, "進捗調節しない");\r
+            count.Now = 2;\r
+            InjectQuestList(new[] {318});\r
+            Assert.AreEqual(2, count.Now, "進捗調節しない");\r
         }\r
 \r
         /// <summary>\r
@@ -1136,33 +1459,118 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void PracticeResult_330()\r
         {\r
-            var quest = InjectQuest(330);\r
+            var count = InjectQuest(330);\r
 \r
             _battleInfo.InjectResultStatus(\r
                 ShipStatusList(18, 7, 2, 2),\r
                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
             InjectPracticeResult("B");\r
-            Assert.AreEqual(1, quest.Count.Now, "装甲空母、軽空母");\r
+            Assert.AreEqual(0, count.Now, "B勝利でカウントしない");\r
+\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now, "装甲空母、軽空母");\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 2, 2);\r
-            InjectPracticeResult("B");\r
-            Assert.AreEqual(2, quest.Count.Now, "正規空母、軽空母");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now, "正規空母、軽空母");\r
 \r
-            quest.Count.Now = 0;\r
+            count.Now = 0;\r
             InjectPracticeResult("C");\r
-            Assert.AreEqual(0, quest.Count.Now, "敗北");\r
+            Assert.AreEqual(0, count.Now, "敗北");\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(2, 7, 11, 2);\r
-            InjectPracticeResult("B");\r
-            Assert.AreEqual(0, quest.Count.Now, "旗艦空母以外");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now, "旗艦空母以外");\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(11, 2, 2, 2);\r
-            InjectPracticeResult("B");\r
-            Assert.AreEqual(0, quest.Count.Now, "空母一隻");\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now, "空母一隻");\r
 \r
             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 3, 2);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now, "駆逐一隻");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 337: 「十八駆」演習!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_337()\r
+        {\r
+            var count = InjectQuest(337);\r
+\r
+            _battleInfo.InjectResultStatus(new[]\r
+            {\r
+                ShipStatus("霰"), ShipStatus("霰"),\r
+                ShipStatus("陽炎"), ShipStatus("不知火"),\r
+                ShipStatus("黒潮")\r
+            }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now, "A");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("涼風");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now, "霰→涼風");\r
+            _battleInfo.Result.Friend.Main[4] = ShipStatus("霞改二");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(2, count.Now, "黒潮→霞改二");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 339: 「十九駆」演習!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_339()\r
+        {\r
+            var count = InjectQuest(339);\r
+\r
+            _battleInfo.InjectResultStatus(new[]\r
+            {\r
+                ShipStatus("磯波"), ShipStatus("浦波"),\r
+                ShipStatus("綾波"), ShipStatus("敷波"),\r
+                ShipStatus("初雪")\r
+            }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now, "A");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now);\r
+            _battleInfo.Result.Friend.Main[0] = ShipStatus("深雪");\r
+            InjectPracticeResult("S");\r
+            Assert.AreEqual(1, count.Now, "磯波→深雪");\r
+        }\r
+\r
+        /// <summary>\r
+        /// 342: 小艦艇群演習強化任務\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void PracticeResult_342()\r
+        {\r
+            var count = InjectQuest(342);\r
+\r
+            _battleInfo.InjectResultStatus(new[] {ShipStatus(1), ShipStatus(1), ShipStatus(2), ShipStatus(5)},\r
+                new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
             InjectPracticeResult("B");\r
-            Assert.AreEqual(0, quest.Count.Now, "駆逐一隻");\r
+            Assert.AreEqual(0, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(1, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(3);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(2, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(4);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(3, count.Now);\r
+\r
+            _battleInfo.Result.Friend.Main[3] = ShipStatus(21);\r
+            InjectPracticeResult("A");\r
+            Assert.AreEqual(4, count.Now);\r
         }\r
 \r
         /// <summary>\r
@@ -1175,7 +1583,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void MissionResult_402_403_404_410_411()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {402, 403, 404, 410, 411}));\r
+            InjectQuestList(new[] {402, 403, 404, 410, 411});\r
 \r
             _questCounter.InspectDeck(Js(\r
                 new[]\r
@@ -1202,7 +1610,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void MissionResult_426()\r
         {\r
-            var quest = InjectQuest(426);\r
+            var count = InjectQuest(426);\r
 \r
             _questCounter.InspectDeck(Js(\r
                 new[]\r
@@ -1214,14 +1622,14 @@ namespace KancolleSniffer.Test
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 0}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
             _questCounter.InspectDeck(Js(\r
                 new[]\r
                 {\r
                     new {api_id = 2, api_mission = new[] {2, 10}}\r
                 }));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
@@ -1230,7 +1638,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void MissionResult_428()\r
         {\r
-            var quest = InjectQuest(428);\r
+            var count = InjectQuest(428);\r
 \r
             _questCounter.InspectDeck(Js(\r
                 new[]\r
@@ -1242,7 +1650,156 @@ namespace KancolleSniffer.Test
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
-            Assert.IsTrue(CheckCount(quest, new[] {1, 1, 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 436: 練習航海及び警備任務を実施せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_436()\r
+        {\r
+            var count = InjectQuest(436);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 1}},\r
+                    new {api_id = 3, api_mission = new[] {2, 2}},\r
+                    new {api_id = 4, api_mission = new[] {2, 3}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 4}},\r
+                    new {api_id = 3, api_mission = new[] {2, 10}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 437: 小笠原沖哨戒線の強化を実施せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_437()\r
+        {\r
+            var count = InjectQuest(437);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 4}},\r
+                    new {api_id = 3, api_mission = new[] {2, 104}},\r
+                    new {api_id = 4, api_mission = new[] {2, 105}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 110}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 438: 南西諸島方面の海上護衛を強化せよ!\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_438()\r
+        {\r
+            var count = InjectQuest(438);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 4}},\r
+                    new {api_id = 3, api_mission = new[] {2, 100}},\r
+                    new {api_id = 4, api_mission = new[] {2, 9}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 }));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 }));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 114}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 }));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 439: 兵站強化遠征任務【基本作戦】\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_439()\r
+        {\r
+            var count = InjectQuest(439);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 5}},\r
+                    new {api_id = 3, api_mission = new[] {2, 100}},\r
+                    new {api_id = 4, api_mission = new[] {2, 11}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 110}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
+        }\r
+\r
+        /// <summary>\r
+        /// 440: 兵站強化遠征任務【拡張作戦】\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void MissionResult_440()\r
+        {\r
+            var count = InjectQuest(440);\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 41}},\r
+                    new {api_id = 3, api_mission = new[] {2, 5}},\r
+                    new {api_id = 4, api_mission = new[] {2, 40}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 1, 0}));\r
+\r
+            _questCounter.InspectDeck(Js(\r
+                new[]\r
+                {\r
+                    new {api_id = 2, api_mission = new[] {2, 142}},\r
+                    new {api_id = 3, api_mission = new[] {2, 46}}\r
+                }));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
+            _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
+            PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
         }\r
 \r
         /// <summary>\r
@@ -1252,7 +1809,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void PowerUp_503_504()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
+            InjectQuestList(new[] {503, 504});\r
 \r
             _questCounter.CountNyukyo();\r
             _questCounter.CountCharge();\r
@@ -1272,7 +1829,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void Kousyou_605_606_607_608_609_619()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {605, 606, 607, 608, 609, 619}));\r
+            InjectQuestList(new[] {605, 606, 607, 608, 609, 619});\r
 \r
             _questCounter.InspectCreateItem(\r
                 "api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=0");\r
@@ -1295,6 +1852,7 @@ namespace KancolleSniffer.Test
         /// 638: 対空機銃量産\r
         /// 643: 主力「陸攻」の調達\r
         /// 645: 「洋上補給」物資の調達\r
+        /// 653: 工廠稼働!次期作戦準備!\r
         /// 663: 新型艤装の継続研究\r
         /// 673: 装備開発力の整備\r
         /// 674: 工廠環境の整備\r
@@ -1306,7 +1864,7 @@ namespace KancolleSniffer.Test
         /// 688: 航空戦力の強化\r
         /// </summary>\r
         [TestMethod]\r
-        public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678_680_686_688()\r
+        public void DestroyItem_613_638_643_645_653_663_673_674_675_676_677_678_680_686_688()\r
         {\r
             _itemInfo.InjectItemSpec(new[]\r
             {\r
@@ -1330,20 +1888,20 @@ namespace KancolleSniffer.Test
             });\r
             var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16, 3, 121};\r
             _itemInfo.InjectItems(items);\r
-            var questList = new[] {613, 638, 643, 645, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
-            _questInfo.AcceptMax = questList.Length;\r
-            _questInfo.InspectQuestList(CreateQuestList(questList));\r
+            var questList = new[] {613, 638, 643, 645, 653, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
+            InjectQuestList(questList);\r
             _questCounter.InspectDestroyItem(\r
-                $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1", null);\r
+                $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1");\r
             var scalar = new[]\r
             {\r
                 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
-                new {Id = 663, Now = 1}, new {Id = 673, Now = 2}, new {Id = 674, Now = 1}\r
+                new {Id = 653, Now = 1}, new {Id = 663, Now = 1}, new {Id = 673, Now = 2}, new {Id = 674, Now = 1}\r
             };\r
             foreach (var e in scalar)\r
             {\r
                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
-                Assert.IsTrue(c.Id == e.Id && c.Now == e.Now, $"{c.Id}");\r
+                Assert.AreEqual(e.Id, c.Id);\r
+                Assert.AreEqual(e.Now, c.Now, $"{c.Id}");\r
             }\r
             var array = new[]\r
             {\r
@@ -1355,7 +1913,8 @@ namespace KancolleSniffer.Test
             foreach (var e in array)\r
             {\r
                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
-                Assert.IsTrue(c.Id == e.Id && c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
+                Assert.AreEqual(e.Id, c.Id);\r
+                PAssert.That(() => c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
             }\r
         }\r
 \r
@@ -1366,7 +1925,7 @@ namespace KancolleSniffer.Test
         [TestMethod]\r
         public void PowerUp_702_703()\r
         {\r
-            _questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));\r
+            InjectQuestList(new[] {702, 703});\r
             _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
             PAssert.That(() =>\r
                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r