OSDN Git Service

兵站強化遠征任務【拡張作戦】でブルネイ泊地沖哨戒がカウントされないのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestCounterTest.cs
1 // Copyright (C) 2019 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
2 //\r
3 // Licensed under the Apache License, Version 2.0 (the "License");\r
4 // you may not use this file except in compliance with the License.\r
5 // You may obtain a copy of the License at\r
6 //\r
7 //    http://www.apache.org/licenses/LICENSE-2.0\r
8 //\r
9 // Unless required by applicable law or agreed to in writing, software\r
10 // distributed under the License is distributed on an "AS IS" BASIS,\r
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
12 // See the License for the specific language governing permissions and\r
13 // limitations under the License.\r
14 \r
15 using System;\r
16 using System.Linq;\r
17 using DynaJson;\r
18 using ExpressionToCodeLib;\r
19 using KancolleSniffer.Model;\r
20 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
21 \r
22 namespace KancolleSniffer.Test\r
23 {\r
24     [TestClass]\r
25     public class QuestCountTest\r
26     {\r
27         [TestMethod]\r
28         public void AdjustCount()\r
29         {\r
30             var count = new QuestCount\r
31             {\r
32                 Spec = new QuestSpec {Max = 7},\r
33                 Now = 3\r
34             };\r
35             count.AdjustCount(0);\r
36             Assert.AreEqual(3, count.Now);\r
37             count.AdjustCount(50);\r
38             Assert.AreEqual(4, count.Now);\r
39             count.AdjustCount(80);\r
40             Assert.AreEqual(6, count.Now);\r
41             count.AdjustCount(100);\r
42             Assert.AreEqual(7, count.Now);\r
43             count.Now = 14;\r
44             count.AdjustCount(100);\r
45             Assert.AreEqual(14, count.Now);\r
46             count.AdjustCount(80);\r
47             Assert.AreEqual(6, count.Now);\r
48             count.AdjustCount(50);\r
49             Assert.AreEqual(5, count.Now);\r
50             count.AdjustCount(0);\r
51             Assert.AreEqual(3, count.Now);\r
52         }\r
53 \r
54         [TestMethod]\r
55         public void AdjustCountWithShift()\r
56         {\r
57             var count = new QuestCount\r
58             {\r
59                 Spec = new QuestSpec {Max = 7, Shift = 1},\r
60                 Now = 3\r
61             };\r
62             count.AdjustCount(0);\r
63             Assert.AreEqual(2, count.Now);\r
64             count.AdjustCount(50);\r
65             Assert.AreEqual(3, count.Now);\r
66             count.AdjustCount(80);\r
67             Assert.AreEqual(6, count.Now);\r
68             count.AdjustCount(100);\r
69             Assert.AreEqual(7, count.Now);\r
70             count.Now = 14;\r
71             count.AdjustCount(100);\r
72             Assert.AreEqual(14, count.Now);\r
73             count.AdjustCount(80);\r
74             Assert.AreEqual(6, count.Now);\r
75             count.AdjustCount(50);\r
76             Assert.AreEqual(5, count.Now);\r
77             count.AdjustCount(0);\r
78             Assert.AreEqual(2, count.Now);\r
79         }\r
80 \r
81         [TestMethod]\r
82         public void AdjustCountMax3WithShift2()\r
83         {\r
84             var count = new QuestCount\r
85             {\r
86                 Spec = new QuestSpec {Max = 3, Shift = 2},\r
87                 Now = 0\r
88             };\r
89             count.AdjustCount(0);\r
90             Assert.AreEqual(0, count.Now);\r
91             count.AdjustCount(50);\r
92             Assert.AreEqual(1, count.Now);\r
93             count.AdjustCount(80);\r
94             Assert.AreEqual(2, count.Now);\r
95             count.AdjustCount(100);\r
96             Assert.AreEqual(3, count.Now);\r
97             count.Now = 4;\r
98             count.AdjustCount(100);\r
99             Assert.AreEqual(4, count.Now);\r
100             count.AdjustCount(80);\r
101             Assert.AreEqual(2, count.Now);\r
102             count.AdjustCount(50);\r
103             Assert.AreEqual(1, count.Now);\r
104             count.AdjustCount(0);\r
105             Assert.AreEqual(0, count.Now);\r
106         }\r
107 \r
108         [TestMethod]\r
109         public void AdjustCount80Percent()\r
110         {\r
111             var count = new QuestCount\r
112             {\r
113                 Spec = new QuestSpec()\r
114             };\r
115             for (var shift = 0; shift <= 1; shift++)\r
116             {\r
117                 for (var max = 2; max <= 6; max++)\r
118                 {\r
119                     count.Spec.Max = max;\r
120                     count.Spec.Shift = shift;\r
121                     count.Now = 1;\r
122                     count.AdjustCount(80);\r
123                     Assert.AreEqual(count.Spec.Max - 1, count.Now);\r
124                 }\r
125             }\r
126         }\r
127 \r
128         [TestMethod]\r
129         public void AdjustCountNowArray()\r
130         {\r
131             var count = new QuestCount\r
132             {\r
133                 Spec = new QuestSpec {MaxArray = new[] {36, 6, 24, 12}},\r
134                 NowArray = new[] {1, 2, 3, 4}\r
135             };\r
136             count.AdjustCount(50);\r
137             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {1, 2, 3, 4}));\r
138             count.AdjustCount(100);\r
139             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {36, 6, 24, 12}));\r
140             count.NowArray = new[] {38, 12, 19, 12};\r
141             count.AdjustCount(100);\r
142             Assert.IsTrue(count.NowArray.SequenceEqual(new[] {38, 12, 24, 12}));\r
143         }\r
144 \r
145         /// <summary>\r
146         /// カウンターを文字列表記にする\r
147         /// </summary>\r
148         [TestMethod]\r
149         public void ToStringTest()\r
150         {\r
151             var status = new Status\r
152             {\r
153                 QuestCountList = new[]\r
154                 {\r
155                     new QuestCount {Id = 211, Now = 2},\r
156                     new QuestCount {Id = 214, NowArray = new[] {20, 7, 10, 8}},\r
157                     new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},\r
158                     new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},\r
159                     new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},\r
160                     new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}},\r
161                     new QuestCount {Id = 888, NowArray = new[] {1, 1, 1}},\r
162                     new QuestCount {Id = 688, NowArray = new[] {2, 1, 2, 1}},\r
163                     new QuestCount {Id = 893, NowArray = new[] {1, 1, 1, 1}},\r
164                     new QuestCount {Id = 894, NowArray = new[] {1, 1, 1, 1, 1}},\r
165                     new QuestCount {Id = 280, NowArray = new[] {1, 1, 1, 1}},\r
166                     new QuestCount {Id = 872, NowArray = new[] {1, 1, 1, 1}},\r
167                     new QuestCount {Id = 284, NowArray = new[] {1, 1, 1, 1}},\r
168                     new QuestCount {Id = 226, Now = 2},\r
169                     new QuestCount {Id = 436, NowArray = new[] {1, 0, 1, 1, 1}},\r
170                     new QuestCount {Id = 437, NowArray = new[] {1, 0, 1, 1}},\r
171                     new QuestCount {Id = 438, NowArray = new[] {1, 0, 1, 1}},\r
172                     new QuestCount {Id = 439, NowArray = new[] {1, 0, 1, 1}},\r
173                     new QuestCount {Id = 440, NowArray = new[] {1, 0, 1, 1, 1}}\r
174                 }\r
175             };\r
176             var countList = new QuestCountList();\r
177             countList.SetMissionNames(new JsonObject(new[]\r
178             {\r
179                 new {api_id = 1, api_name = "練習航海"},\r
180                 new {api_id = 2, api_name = "長距離練習航海"},\r
181                 new {api_id = 3, api_name = "警備任務"},\r
182                 new {api_id = 4, api_name = "対潜警戒任務"},\r
183                 new {api_id = 5, api_name = "海上護衛任務"},\r
184                 new {api_id = 9, api_name = "タンカー護衛任務"},\r
185                 new {api_id = 10, api_name = "強行偵察任務"},\r
186                 new {api_id = 11, api_name = "ボーキサイト輸送任務"},\r
187                 new {api_id = 40, api_name = "水上機前線輸送"},\r
188                 new {api_id = 41, api_name = "ブルネイ泊地沖哨戒"},\r
189                 new {api_id = 46, api_name = "南西海域戦闘哨戒"},\r
190                 new {api_id = 100, api_name = "兵站強化任務"},\r
191                 new {api_id = 101, api_name = "海峡警備行動"},\r
192                 new {api_id = 102, api_name = "長時間対潜警戒"},\r
193                 new {api_id = 104, api_name = "小笠原沖哨戒線"},\r
194                 new {api_id = 105, api_name = "小笠原沖戦闘哨戒"},\r
195                 new {api_id = 110, api_name = "南西方面航空偵察作戦"},\r
196                 new {api_id = 114, api_name = "南西諸島捜索撃滅戦"},\r
197                 new {api_id = 142, api_name = "強行鼠輸送作戦"}\r
198             }));\r
199             new QuestInfo(countList).LoadState(status);\r
200             Assert.AreEqual("2/3", status.QuestCountList[0].ToString());\r
201             Assert.AreEqual("20/36 7/6 10/24 8/12", status.QuestCountList[1].ToString());\r
202             var z = status.QuestCountList[2];\r
203             Assert.AreEqual("2\u200a1\u200a1\u200a1", z.ToString());\r
204             Assert.AreEqual("2-4:2 6-1:1 6-3:1 6-4:1", z.ToToolTip());\r
205             z.NowArray = new[] {0, 0, 0, 0};\r
206             Assert.AreEqual("2-4:0 6-1:0 6-3:0 6-4:0", z.ToToolTip());\r
207             var q426 = status.QuestCountList[3];\r
208             Assert.AreEqual("1\u200a1\u200a1\u200a1", q426.ToString());\r
209             Assert.AreEqual("警備任務1 対潜警戒任務1 海上護衛任務1 強行偵察任務1", q426.ToToolTip());\r
210             var q428 = status.QuestCountList[4];\r
211             Assert.AreEqual("対潜警戒任務1 海峡警備行動1 長時間対潜警戒1", q428.ToToolTip());\r
212             q428.NowArray = new[] {0, 1, 0};\r
213             Assert.AreEqual("対潜警戒任務0 海峡警備行動1 長時間対潜警戒0", q428.ToToolTip());\r
214             var q873 = status.QuestCountList[5];\r
215             Assert.AreEqual("1\u200a1\u200a1", q873.ToString());\r
216             Assert.AreEqual("3-1:1 3-2:1 3-3:1", q873.ToToolTip());\r
217             var q888 = status.QuestCountList[6];\r
218             Assert.AreEqual("1\u200a1\u200a1", q888.ToString());\r
219             Assert.AreEqual("5-1:1 5-3:1 5-4:1", q888.ToToolTip());\r
220             var q688 = status.QuestCountList[7];\r
221             Assert.AreEqual("艦戦2 艦爆1 艦攻2 水偵1", q688.ToToolTip());\r
222             var q893 = status.QuestCountList[8];\r
223             Assert.AreEqual("1-5:1 7-1:1 7-2G:1 7-2M:1", q893.ToToolTip());\r
224             var q894 = status.QuestCountList[9];\r
225             Assert.AreEqual("1\u200a1\u200a1\u200a1\u200a1", q894.ToString());\r
226             Assert.AreEqual("1-3:1 1-4:1 2-1:1 2-2:1 2-3:1", q894.ToToolTip());\r
227             var q280 = status.QuestCountList[10];\r
228             Assert.AreEqual("1\u200a1\u200a1\u200a1", q280.ToString());\r
229             Assert.AreEqual("1-2:1 1-3:1 1-4:1 2-1:1", q280.ToToolTip());\r
230             var q872 = status.QuestCountList.First(q => q.Id == 872);\r
231             Assert.AreEqual("1\u200a1\u200a1\u200a1", q872.ToString());\r
232             Assert.AreEqual("7-2M:1 5-5:1 6-2:1 6-5:1", q872.ToToolTip());\r
233             var q284 = status.QuestCountList.First(q => q.Id == 284);\r
234             Assert.AreEqual("1\u200a1\u200a1\u200a1", q284.ToString());\r
235             Assert.AreEqual("1-4:1 2-1:1 2-2:1 2-3:1", q284.ToToolTip());\r
236             var q226 = status.QuestCountList.First(q => q.Id == 226);\r
237             Assert.AreEqual("2/5", q226.ToString());\r
238             Assert.AreEqual("", q226.ToToolTip());\r
239             var q436 = status.QuestCountList.First(q => q.Id == 436);\r
240             Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q436.ToString());\r
241             Assert.AreEqual("練習航海1 長距離練習航海0 警備任務1 対潜警戒任務1 強行偵察任務1", q436.ToToolTip());\r
242             var q437 = status.QuestCountList.First(q => q.Id == 437);\r
243             Assert.AreEqual("1\u200a0\u200a1\u200a1", q437.ToString());\r
244             Assert.AreEqual("対潜警戒任務1 小笠原沖哨戒線0 小笠原沖戦闘哨戒1 南西方面航空偵察作戦1", q437.ToToolTip());\r
245             var q438 = status.QuestCountList.First(q => q.Id == 438);\r
246             Assert.AreEqual("1\u200a0\u200a1\u200a1", q438.ToString());\r
247             Assert.AreEqual("対潜警戒任務1 兵站強化任務0 タンカー護衛任務1 南西諸島捜索撃滅戦1", q438.ToToolTip());\r
248             var q439 = status.QuestCountList.First(q => q.Id == 439);\r
249             Assert.AreEqual("1\u200a0\u200a1\u200a1", q439.ToString());\r
250             Assert.AreEqual("海上護衛任務1 兵站強化任務0 ボーキサイト輸送任務1 南西方面航空偵察作戦1", q439.ToToolTip());\r
251             var q440 = status.QuestCountList.First(q => q.Id == 440);\r
252             Assert.AreEqual("1\u200a0\u200a1\u200a1\u200a1", q440.ToString());\r
253             Assert.AreEqual("海上護衛任務1 ブルネイ泊地沖哨戒0 南西海域戦闘哨戒1 水上機前線輸送1 強行鼠輸送作戦1", q440.ToToolTip());\r
254         }\r
255     }\r
256 \r
257     [TestClass]\r
258     public class QuestCounterTest\r
259     {\r
260         private JsonObject Js(object obj) => new JsonObject(obj);\r
261 \r
262         private object CreateQuestList(int[] ids) => Js(new\r
263         {\r
264             api_list =\r
265                 ids.Select(id => new\r
266                 {\r
267                     api_no = id,\r
268                     api_category = id / 100,\r
269                     api_type = 1,\r
270                     api_state = 2,\r
271                     api_title = "",\r
272                     api_detail = "",\r
273                     api_get_material = new int[0],\r
274                     api_progress_flag = 0\r
275                 })\r
276         });\r
277 \r
278         private QuestCount InjectQuest(int id)\r
279         {\r
280             InjectQuestList(new[] {id});\r
281             return _questInfo.Quests[0].Count;\r
282         }\r
283 \r
284         private void InjectQuestList(int[] ids)\r
285         {\r
286             _questInfo.InspectQuestList("api_tab_id=0", CreateQuestList(ids));\r
287         }\r
288 \r
289         private void InjectMapStart(int map, int eventId)\r
290         {\r
291             _questCounter.InspectMapStart(CreateMap(map, eventId));\r
292         }\r
293 \r
294         private void InjectMapNext(int map, int eventId)\r
295         {\r
296             _questCounter.InspectMapNext(CreateMap(map, eventId));\r
297         }\r
298 \r
299         private object CreateMap(int map, int eventId)\r
300         {\r
301             return Js(new\r
302             {\r
303                 api_maparea_id = map / 10,\r
304                 api_mapinfo_no = map % 10,\r
305                 api_event_id = eventId\r
306             });\r
307         }\r
308 \r
309         private void InjectBattleResult(string result)\r
310         {\r
311             _questCounter.InspectBattleResult(Js(new {api_win_rank = result}));\r
312         }\r
313 \r
314         private void InjectPracticeResult(string result)\r
315         {\r
316             _questCounter.InspectPracticeResult(Js(new {api_win_rank = result}));\r
317         }\r
318 \r
319         private ShipStatus[] ShipStatusList(params int[] shipTypes)\r
320         {\r
321             return shipTypes.Select(sType => ShipStatus(sType)).ToArray();\r
322         }\r
323 \r
324         private ShipStatus ShipStatus(int shipType, int specId = 0)\r
325         {\r
326             return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType}};\r
327         }\r
328 \r
329         private ShipStatus ShipStatus(int shipType, int shipClass, int specId)\r
330         {\r
331             return new ShipStatus\r
332                 {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
333         }\r
334 \r
335         private ShipStatus ShipStatus(string name)\r
336         {\r
337             return new ShipStatus {NowHp = 1, Spec = new ShipSpec {Name = name}};\r
338         }\r
339 \r
340 \r
341         private BattleInfo _battleInfo;\r
342         private ItemInfo _itemInfo;\r
343         private QuestInfo _questInfo;\r
344         private QuestCounter _questCounter;\r
345 \r
346         [TestInitialize]\r
347         public void Initialize()\r
348         {\r
349             _battleInfo = new BattleInfo(null, null, null);\r
350             _itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
351             _questInfo = new QuestInfo(new QuestCountList(), () => new DateTime(2015, 1, 1));\r
352             _questCounter = new QuestCounter(_questInfo, _itemInfo, _battleInfo);\r
353         }\r
354 \r
355         /// <summary>\r
356         /// 201: 敵艦隊を撃滅せよ!\r
357         /// 210: 敵艦隊を10回邀撃せよ!\r
358         /// 214: あ号\r
359         /// 216: 敵艦隊主力を撃滅せよ!\r
360         /// </summary>\r
361         [TestMethod]\r
362         public void BattleResult_201_216_210_214()\r
363         {\r
364             InjectQuestList(new[] {201, 216, 210, 214});\r
365 \r
366             InjectMapStart(11, 4);\r
367             var counts = _questInfo.Quests.Select(q => q.Count).ToArray();\r
368             // 出撃カウント\r
369             Assert.AreEqual(214, counts[2].Id);\r
370             Assert.AreEqual(1, counts[2].NowArray[0]);\r
371             InjectBattleResult("S");\r
372             // 道中S勝利\r
373             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
374             {\r
375                 new {Id = 201, Now = 1}, new {Id = 210, Now = 1},\r
376                 new {Id = 214, Now = 0}, new {Id = 216, Now = 1}\r
377             }));\r
378             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 0, 0}));\r
379 \r
380             InjectMapNext(11, 5);\r
381             // ボスB勝利\r
382             InjectBattleResult("B");\r
383             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
384             {\r
385                 new {Id = 201, Now = 2}, new {Id = 210, Now = 2},\r
386                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
387             }));\r
388             // ボス敗北\r
389             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
390             InjectBattleResult("C");\r
391             PAssert.That(() => counts.Select(c => new {c.Id, c.Now}).SequenceEqual(new[]\r
392             {\r
393                 new {Id = 201, Now = 2}, new {Id = 210, Now = 3},\r
394                 new {Id = 214, Now = 0}, new {Id = 216, Now = 2}\r
395             }));\r
396             PAssert.That(() => counts[2].NowArray.SequenceEqual(new[] {1, 1, 2, 1}));\r
397 \r
398             // 1-6 ゴール\r
399             InjectMapNext(16,8);\r
400             Assert.AreEqual(2, counts[0].Now);\r
401         }\r
402 \r
403         /// <summary>\r
404         /// 211: 敵空母を3隻撃沈せよ!\r
405         /// 212: 敵輸送船団を叩け!\r
406         /// 213: 海上通商破壊作戦\r
407         /// 218: 敵補給艦を3隻撃沈せよ!\r
408         /// </summary>\r
409         [TestMethod]\r
410         public void BattleResult_211_212_213_218_220_221()\r
411         {\r
412             InjectQuestList(new[] {211, 212, 213, 218, 220, 221});\r
413             // 補給艦1隻と空母2隻\r
414             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
415             {\r
416                 new ShipStatus {NowHp = 0, MaxHp = 130, Spec = new ShipSpec {Id = 1558, ShipType = 15}},\r
417                 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
418                 new ShipStatus {NowHp = 0, MaxHp = 90, Spec = new ShipSpec {Id = 1543, ShipType = 8}},\r
419                 new ShipStatus {NowHp = 0, MaxHp = 96, Spec = new ShipSpec {Id = 1528, ShipType = 11}},\r
420                 new ShipStatus {NowHp = 0, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}},\r
421                 new ShipStatus {NowHp = 1, MaxHp = 70, Spec = new ShipSpec {Id = 1523, ShipType = 7}}\r
422             }, new ShipStatus[0]);\r
423             InjectBattleResult("A");\r
424             PAssert.That(() =>\r
425                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
426                     .SequenceEqual(new[]\r
427                     {\r
428                         new {Id = 211, Now = 2}, new {Id = 212, Now = 1}, new {Id = 213, Now = 1},\r
429                         new {Id = 218, Now = 1}, new {Id = 220, Now = 2}, new {Id = 221, Now = 1}\r
430                     }));\r
431         }\r
432 \r
433         /// <summary>\r
434         /// 228: 海上護衛戦\r
435         /// 230: 敵潜水艦を制圧せよ!\r
436         /// </summary>\r
437         [TestMethod]\r
438         public void BattleResult_228_230()\r
439         {\r
440             InjectQuestList(new[] {228, 230});\r
441             // 潜水艦3\r
442             _battleInfo.InjectResultStatus(new ShipStatus[0], new ShipStatus[0], new[]\r
443             {\r
444                 new ShipStatus {NowHp = 0, MaxHp = 27, Spec = new ShipSpec {Id = 1532, ShipType = 13}},\r
445                 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}},\r
446                 new ShipStatus {NowHp = 0, MaxHp = 19, Spec = new ShipSpec {Id = 1530, ShipType = 13}}\r
447             }, new ShipStatus[0]);\r
448             InjectBattleResult("S");\r
449             PAssert.That(() =>\r
450                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
451                     .SequenceEqual(new[]\r
452                     {\r
453                         new {Id = 228, Now = 3}, new {Id = 230, Now = 3}\r
454                     }));\r
455         }\r
456 \r
457         /// <summary>\r
458         /// 226: 南西諸島海域の制海権を握れ!\r
459         /// </summary>\r
460         [TestMethod]\r
461         public void BattleResult_226()\r
462         {\r
463             var count = InjectQuest(226);\r
464 \r
465             InjectMapStart(21, 4);\r
466             InjectBattleResult("S");\r
467             Assert.AreEqual(0, count.Now);\r
468 \r
469             InjectMapNext(21, 5);\r
470             InjectBattleResult("S");\r
471             Assert.AreEqual(1, count.Now);\r
472             InjectBattleResult("B");\r
473             Assert.AreEqual(2, count.Now);\r
474         }\r
475 \r
476         /// <summary>\r
477         /// // 243: 南方海域珊瑚諸島沖の制空権を握れ!\r
478         /// </summary>\r
479         [TestMethod]\r
480         public void BattleResult_243()\r
481         {\r
482             var count = InjectQuest(243);\r
483 \r
484             InjectMapNext(52, 4);\r
485             InjectBattleResult("S");\r
486             Assert.AreEqual(0, count.Now);\r
487 \r
488             InjectMapNext(52, 5);\r
489             InjectBattleResult("A");\r
490             Assert.AreEqual(0, count.Now);\r
491             InjectBattleResult("S");\r
492             Assert.AreEqual(1, count.Now);\r
493         }\r
494 \r
495         /// <summary>\r
496         /// 249: 「第五戦隊」出撃せよ!\r
497         /// </summary>\r
498         [TestMethod]\r
499         public void BattleResult_249()\r
500         {\r
501             var count = InjectQuest(249);\r
502 \r
503             _battleInfo.InjectResultStatus(new[]\r
504             {\r
505                 ShipStatus("妙高改二"), ShipStatus("那智改二"), ShipStatus("羽黒改二"),\r
506                 ShipStatus("足柄改二"), ShipStatus("筑摩改二"), ShipStatus("利根改二")\r
507             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
508 \r
509             InjectMapNext(25, 4);\r
510             InjectBattleResult("S");\r
511             Assert.AreEqual(0, count.Now);\r
512 \r
513             InjectMapNext(25, 5);\r
514             InjectBattleResult("A");\r
515             Assert.AreEqual(0, count.Now);\r
516             InjectBattleResult("S");\r
517             Assert.AreEqual(1, count.Now);\r
518 \r
519             _battleInfo.Result.Friend.Main[3].NowHp = 0;\r
520             InjectBattleResult("S");\r
521             Assert.AreEqual(2, count.Now, "足柄改二轟沈");\r
522 \r
523             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
524             InjectBattleResult("S");\r
525             Assert.AreEqual(2, count.Now, "那智改二轟沈");\r
526         }\r
527 \r
528         /// <summary>\r
529         /// 257: 「水雷戦隊」南西へ!\r
530         /// </summary>\r
531         [TestMethod]\r
532         public void BattleResult_257()\r
533         {\r
534             var count = InjectQuest(257);\r
535 \r
536             _battleInfo.InjectResultStatus(\r
537                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
538                 new ShipStatus[0], new ShipStatus[0]);\r
539 \r
540             InjectMapNext(14, 4);\r
541             InjectBattleResult("S");\r
542             Assert.AreEqual(0, count.Now);\r
543 \r
544             InjectMapNext(14, 5);\r
545             InjectBattleResult("A");\r
546             Assert.AreEqual(0, count.Now);\r
547             InjectBattleResult("S");\r
548             Assert.AreEqual(1, count.Now);\r
549             _questInfo.Quests[0].Count.Now = 0;\r
550 \r
551             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
552             InjectBattleResult("S");\r
553             Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
554             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
555 \r
556             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
557             _battleInfo.Result.Friend.Main[1].Spec.ShipType = 3;\r
558             InjectBattleResult("S");\r
559             Assert.AreEqual(0, count.Now, "旗艦が駆逐");\r
560             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
561 \r
562             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
563             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
564             InjectBattleResult("S");\r
565             Assert.AreEqual(0, count.Now, "軽巡が4隻");\r
566 \r
567             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
568             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 4;\r
569             InjectBattleResult("S");\r
570             Assert.AreEqual(0, count.Now, "駆逐軽巡以外");\r
571         }\r
572 \r
573         /// <summary>\r
574         /// 257: 「水上打撃部隊」南方へ!\r
575         /// </summary>\r
576         [TestMethod]\r
577         public void BattleResult_259()\r
578         {\r
579             var count = InjectQuest(259);\r
580 \r
581             var org = new[]\r
582             {\r
583                 ShipStatus(3, 52, 321), ShipStatus(9, 19, 276), ShipStatus(10, 26, 411),\r
584                 ShipStatus(10, 26, 412), ShipStatus(5, 29, 193), ShipStatus(5, 29, 194)\r
585             };\r
586             _battleInfo.InjectResultStatus(\r
587                 org.ToArray(), new ShipStatus[0],\r
588                 new ShipStatus[0], new ShipStatus[0]);\r
589 \r
590             InjectMapNext(51, 4);\r
591             InjectBattleResult("S");\r
592             Assert.AreEqual(0, count.Now);\r
593 \r
594             InjectMapNext(51, 5);\r
595             InjectBattleResult("A");\r
596             Assert.AreEqual(0, count.Now);\r
597             InjectBattleResult("S");\r
598             Assert.AreEqual(1, count.Now);\r
599             _questInfo.Quests[0].Count.Now = 0;\r
600 \r
601             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
602             InjectBattleResult("S");\r
603             Assert.AreEqual(0, count.Now, "軽巡轟沈");\r
604             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
605 \r
606             _battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);\r
607             InjectBattleResult("S");\r
608             Assert.AreEqual(0, count.Now, "戦艦4隻");\r
609             _battleInfo.Result.Friend.Main[4] = org[4];\r
610 \r
611             _battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);\r
612             InjectBattleResult("S");\r
613             Assert.AreEqual(0, count.Now, "軽巡なし");\r
614             _battleInfo.Result.Friend.Main[0] = org[0];\r
615 \r
616             _battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);\r
617             InjectBattleResult("S");\r
618             Assert.AreEqual(1, count.Now, "伊勢改二");\r
619         }\r
620 \r
621         /// <summary>\r
622         /// 264: 「空母機動部隊」西へ!\r
623         /// </summary>\r
624         [TestMethod]\r
625         public void BattleResult_264()\r
626         {\r
627             var count = InjectQuest(264);\r
628 \r
629             _battleInfo.InjectResultStatus(\r
630                 ShipStatusList(7, 11, 3, 3, 2, 2), new ShipStatus[0],\r
631                 new ShipStatus[0], new ShipStatus[0]);\r
632 \r
633             InjectMapNext(42, 4);\r
634             InjectBattleResult("S");\r
635             Assert.AreEqual(0, count.Now);\r
636 \r
637             InjectMapNext(42, 5);\r
638             InjectBattleResult("A");\r
639             Assert.AreEqual(0, count.Now);\r
640             InjectBattleResult("S");\r
641             Assert.AreEqual(1, count.Now);\r
642 \r
643             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
644             InjectBattleResult("S");\r
645             Assert.AreEqual(1, count.Now, "轟沈あり");\r
646         }\r
647 \r
648         /// <summary>\r
649         /// 266: 「水上反撃部隊」突入せよ!\r
650         /// </summary>\r
651         [TestMethod]\r
652         public void BattleResult_266()\r
653         {\r
654             var count = InjectQuest(266);\r
655 \r
656             _battleInfo.InjectResultStatus(\r
657                 ShipStatusList(2, 5, 3, 2, 2, 2), new ShipStatus[0],\r
658                 new ShipStatus[0], new ShipStatus[0]);\r
659 \r
660             InjectMapNext(25, 4);\r
661             InjectBattleResult("S");\r
662             Assert.AreEqual(0, count.Now);\r
663 \r
664             InjectMapNext(25, 5);\r
665             InjectBattleResult("A");\r
666             Assert.AreEqual(0, count.Now);\r
667             InjectBattleResult("S");\r
668             Assert.AreEqual(1, count.Now);\r
669 \r
670             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
671             InjectBattleResult("S");\r
672             Assert.AreEqual(1, count.Now, "轟沈あり");\r
673             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
674 \r
675             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
676             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 2;\r
677             InjectBattleResult("S");\r
678             Assert.AreEqual(1, count.Now, "旗艦が軽巡");\r
679             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
680             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 3;\r
681 \r
682             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
683             InjectBattleResult("S");\r
684             Assert.AreEqual(1, count.Now, "軽巡が2隻");\r
685         }\r
686 \r
687         /// <summary>\r
688         /// 280: 兵站線確保!海上警備を強化実施せよ!\r
689         /// </summary>\r
690         [TestMethod]\r
691         public void BattleResult_280()\r
692         {\r
693             var count = InjectQuest(280);\r
694 \r
695             _battleInfo.InjectResultStatus(\r
696                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
697                 new ShipStatus[0], new ShipStatus[0]);\r
698 \r
699             InjectMapNext(12, 4);\r
700             InjectBattleResult("S");\r
701             InjectMapNext(12, 5);\r
702             InjectBattleResult("A");\r
703             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
704 \r
705             InjectBattleResult("S");\r
706             InjectMapNext(13, 5);\r
707             InjectBattleResult("S");\r
708             InjectMapNext(14, 5);\r
709             InjectBattleResult("S");\r
710             InjectMapNext(21, 5);\r
711             InjectBattleResult("S");\r
712             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
713 \r
714             _battleInfo.Result.Friend.Main = ShipStatusList(7, 1, 1, 8, 8, 8);\r
715             InjectBattleResult("S");\r
716             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
717 \r
718             _battleInfo.Result.Friend.Main = ShipStatusList(8, 1, 1, 1, 8, 8);\r
719             InjectBattleResult("S");\r
720             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
721 \r
722             _battleInfo.Result.Friend.Main = ShipStatusList(3, 2, 1, 1, 8, 8);\r
723             InjectBattleResult("S");\r
724             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}));\r
725 \r
726             _battleInfo.Result.Friend.Main = ShipStatusList(2, 4, 2, 1, 8, 8);\r
727             InjectBattleResult("S");\r
728             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 3}));\r
729 \r
730             _battleInfo.Result.Friend.Main = ShipStatusList(2, 2, 21, 2, 8, 8);\r
731             InjectBattleResult("S");\r
732             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 4}));\r
733         }\r
734 \r
735         /// <summary>\r
736         /// 284: 南西諸島方面「海上警備行動」発令!\r
737         /// </summary>\r
738         [TestMethod]\r
739         public void BattleResult_284()\r
740         {\r
741             var count = InjectQuest(284);\r
742 \r
743             _battleInfo.InjectResultStatus(\r
744                 ShipStatusList(7, 2, 1, 1, 8, 8), new ShipStatus[0],\r
745                 new ShipStatus[0], new ShipStatus[0]);\r
746 \r
747             InjectMapNext(14, 4);\r
748             InjectBattleResult("S");\r
749             InjectMapNext(14, 5);\r
750             InjectBattleResult("A");\r
751             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
752 \r
753             InjectBattleResult("S");\r
754             InjectMapNext(21, 5);\r
755             InjectBattleResult("S");\r
756             InjectMapNext(22, 5);\r
757             InjectBattleResult("S");\r
758             InjectMapNext(23, 5);\r
759             InjectBattleResult("S");\r
760             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
761 \r
762             // 艦種チェックは280と共通\r
763         }\r
764 \r
765         /// <summary>\r
766         /// 822: 沖ノ島海域迎撃戦\r
767         /// 854: 戦果拡張任務!「Z作戦」前段作戦\r
768         /// </summary>\r
769         [TestMethod]\r
770         public void BattleResult_822_854()\r
771         {\r
772             InjectQuestList(new[] {822, 854});\r
773             var c822 = _questInfo.Quests[0].Count;\r
774             var c854 = _questInfo.Quests[1].Count;\r
775 \r
776             InjectMapNext(24, 4);\r
777             InjectBattleResult("S");\r
778 \r
779             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
780             Assert.AreEqual(0, c822.Now);\r
781 \r
782             InjectMapNext(24, 5);\r
783             InjectBattleResult("A");\r
784             InjectMapNext(61, 5);\r
785             InjectBattleResult("A");\r
786             InjectMapNext(63, 5);\r
787             InjectBattleResult("A");\r
788             InjectMapNext(64, 5);\r
789             InjectBattleResult("S");\r
790             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
791             Assert.AreEqual(0, c822.Now);\r
792             InjectMapNext(24, 5);\r
793             InjectBattleResult("S");\r
794             PAssert.That(() => c854.NowArray.SequenceEqual(new[] {2, 1, 1, 1}));\r
795             Assert.AreEqual(1, c822.Now);\r
796         }\r
797 \r
798         /// <summary>\r
799         /// 845: 発令!「西方海域作戦」\r
800         /// </summary>\r
801         [TestMethod]\r
802         public void BattleResult_845()\r
803         {\r
804             var count = InjectQuest(845);\r
805 \r
806             InjectMapNext(41, 4);\r
807             InjectBattleResult("S");\r
808             InjectMapNext(41, 5);\r
809             InjectBattleResult("A");\r
810             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}));\r
811 \r
812             InjectMapNext(41, 5);\r
813             InjectBattleResult("S");\r
814             InjectMapNext(42, 5);\r
815             InjectBattleResult("S");\r
816             InjectMapNext(43, 5);\r
817             InjectBattleResult("S");\r
818             InjectMapNext(44, 5);\r
819             InjectBattleResult("S");\r
820             InjectMapNext(45, 5);\r
821             InjectBattleResult("S");\r
822             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
823         }\r
824 \r
825         /// <summary>\r
826         /// 861: 強行輸送艦隊、抜錨!\r
827         /// </summary>\r
828         [TestMethod]\r
829         public void MapNext_861()\r
830         {\r
831             var count = InjectQuest(861);\r
832 \r
833             _battleInfo.InjectResultStatus(\r
834                 ShipStatusList(10, 22, 2, 2, 2, 2), new ShipStatus[0],\r
835                 new ShipStatus[0], new ShipStatus[0]);\r
836 \r
837             InjectMapNext(16, 4);\r
838             Assert.AreEqual(0, count.Now);\r
839 \r
840             InjectMapNext(16, 8);\r
841             Assert.AreEqual(1, count.Now);\r
842 \r
843             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
844             InjectMapNext(16, 8);\r
845             Assert.AreEqual(1, count.Now, "轟沈あり");\r
846             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
847 \r
848             _battleInfo.Result.Friend.Main[2].Spec.ShipType = 10;\r
849             InjectMapNext(16, 8);\r
850             Assert.AreEqual(1, count.Now, "補給・航戦が3隻");\r
851         }\r
852 \r
853         /// <summary>\r
854         /// 862: 前線の航空偵察を実施せよ!\r
855         /// </summary>\r
856         [TestMethod]\r
857         public void BattleResult_862()\r
858         {\r
859             var count = InjectQuest(862);\r
860 \r
861             _battleInfo.InjectResultStatus(\r
862                 ShipStatusList(2, 3, 3, 2, 2, 16), new ShipStatus[0],\r
863                 new ShipStatus[0], new ShipStatus[0]);\r
864 \r
865             InjectMapNext(63, 4);\r
866             InjectBattleResult("A");\r
867             Assert.AreEqual(0, count.Now);\r
868 \r
869             InjectMapNext(63, 5);\r
870             InjectBattleResult("B");\r
871             Assert.AreEqual(0, count.Now);\r
872             InjectBattleResult("A");\r
873             Assert.AreEqual(1, count.Now);\r
874 \r
875             _battleInfo.Result.Friend.Main[1].NowHp = 0;\r
876             InjectBattleResult("A");\r
877             Assert.AreEqual(1, count.Now, "轟沈あり");\r
878             _battleInfo.Result.Friend.Main[1].NowHp = 1;\r
879 \r
880             _battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
881             _battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;\r
882             InjectBattleResult("A");\r
883             Assert.AreEqual(2, count.Now, "軽巡3隻水母2隻");\r
884         }\r
885 \r
886         /// <summary>\r
887         /// 872: 戦果拡張任務!「Z作戦」後段作戦\r
888         /// </summary>\r
889         [TestMethod]\r
890         public void BattleResult_872()\r
891         {\r
892             var count = InjectQuest(872);\r
893 \r
894             InjectMapNext(55, 4);\r
895             InjectBattleResult("A");\r
896             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
897             InjectBattleResult("S");\r
898             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
899             InjectMapNext(55, 5);\r
900             InjectBattleResult("S");\r
901             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 0, 0}));\r
902 \r
903             InjectMapNext(62, 5);\r
904             InjectBattleResult("S");\r
905             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 0}));\r
906             InjectMapNext(65, 5);\r
907             InjectBattleResult("S");\r
908             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 1, 1, 1}));\r
909             _questCounter.InspectMapNext(Js(new\r
910             {\r
911                 api_maparea_id = 7,\r
912                 api_mapinfo_no = 2,\r
913                 api_no = 15,\r
914                 api_event_id = 5\r
915             }));\r
916             InjectBattleResult("S");\r
917             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
918         }\r
919 \r
920         /// <summary>\r
921         /// 873: 北方海域警備を実施せよ!\r
922         /// </summary>\r
923         [TestMethod]\r
924         public void BattleResult_873()\r
925         {\r
926             var count = InjectQuest(873);\r
927 \r
928             _battleInfo.InjectResultStatus(\r
929                 ShipStatusList(3, 2, 2, 2, 2, 2), new ShipStatus[0],\r
930                 new ShipStatus[0], new ShipStatus[0]);\r
931 \r
932             InjectMapNext(31, 4);\r
933             InjectBattleResult("A");\r
934             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
935 \r
936             InjectMapNext(31, 5);\r
937             InjectBattleResult("B");\r
938             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
939             InjectBattleResult("A");\r
940             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
941 \r
942             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 2;\r
943             InjectBattleResult("A");\r
944             Assert.AreEqual(1, _questInfo.Quests[0].Count.NowArray[0], "軽巡なし");\r
945             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 3;\r
946 \r
947             InjectMapNext(32, 5);\r
948             InjectBattleResult("A");\r
949             InjectMapNext(33, 5);\r
950             InjectBattleResult("A");\r
951             Assert.IsTrue(_questInfo.Quests[0].Count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
952         }\r
953 \r
954         /// <summary>\r
955         /// 875: 精鋭「三一駆」、鉄底海域に突入せよ!\r
956         /// </summary>\r
957         [TestMethod]\r
958         public void BattleResult_875()\r
959         {\r
960             var count = InjectQuest(875);\r
961 \r
962             _battleInfo.InjectResultStatus(new[]\r
963             {\r
964                 ShipStatus("長波改二"), ShipStatus("Iowa改"), ShipStatus("Saratoga Mk.II"),\r
965                 ShipStatus("瑞鶴改二甲"), ShipStatus("望月改"), ShipStatus("朝霜改")\r
966             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
967 \r
968             InjectMapNext(54, 4);\r
969             InjectBattleResult("S");\r
970             Assert.AreEqual(0, count.Now);\r
971 \r
972             InjectMapNext(54, 5);\r
973             InjectBattleResult("A");\r
974             Assert.AreEqual(0, count.Now);\r
975             InjectBattleResult("S");\r
976             Assert.AreEqual(1, count.Now);\r
977 \r
978             _battleInfo.Result.Friend.Main[5].NowHp = 0;\r
979             InjectBattleResult("S");\r
980             Assert.AreEqual(1, count.Now, "朝霜改轟沈");\r
981             _battleInfo.Result.Friend.Main[5].NowHp = 1;\r
982 \r
983             _battleInfo.Result.Friend.Main[0] = ShipStatus("高波改");\r
984             InjectBattleResult("S");\r
985             Assert.AreEqual(1, count.Now, "長波改二なし");\r
986             _battleInfo.Result.Friend.Main[0] = ShipStatus("長波改二");\r
987 \r
988             _battleInfo.Result.Friend.Main[5] = ShipStatus("高波改");\r
989             InjectBattleResult("S");\r
990             Assert.AreEqual(2, count.Now, "高波改");\r
991             _battleInfo.Result.Friend.Main[5] = ShipStatus("沖波改");\r
992             InjectBattleResult("S");\r
993             Assert.AreEqual(3, count.Now, "沖波改");\r
994             _battleInfo.Result.Friend.Main[5] = ShipStatus("朝霜改二");\r
995             InjectBattleResult("S");\r
996             Assert.AreEqual(4, count.Now, "朝霜改二");\r
997         }\r
998 \r
999         /// <summary>\r
1000         /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!\r
1001         /// </summary>\r
1002         [TestMethod]\r
1003         public void BattleResult_888()\r
1004         {\r
1005             var count = InjectQuest(888);\r
1006 \r
1007             _battleInfo.InjectResultStatus(new[]\r
1008             {\r
1009                 ShipStatus("鳥海改二"), ShipStatus("青葉改"), ShipStatus("衣笠改二"),\r
1010                 ShipStatus("加古改二"), ShipStatus("夕立改二"), ShipStatus("綾波改二")\r
1011             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1012 \r
1013             InjectMapNext(51, 4);\r
1014             InjectBattleResult("S");\r
1015             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
1016 \r
1017             InjectMapNext(51, 5);\r
1018             InjectBattleResult("A");\r
1019             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0}));\r
1020             InjectBattleResult("S");\r
1021             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}));\r
1022             _battleInfo.Result.Friend.Main[0].NowHp = 0;\r
1023             InjectBattleResult("S");\r
1024             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "轟沈あり");\r
1025             _battleInfo.Result.Friend.Main[0].NowHp = 1;\r
1026 \r
1027             _battleInfo.Result.Friend.Main[0] = ShipStatus("妙高改二");\r
1028             InjectBattleResult("S");\r
1029             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0}), "三川艦隊3隻");\r
1030 \r
1031             _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改二特");\r
1032             InjectMapNext(53, 5);\r
1033             InjectBattleResult("S");\r
1034             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
1035 \r
1036             _battleInfo.Result.Friend.Main[0] = ShipStatus("天龍改二");\r
1037             _battleInfo.Result.Friend.Main[1] = ShipStatus("古鷹改二");\r
1038             InjectMapNext(54, 5);\r
1039             InjectBattleResult("S");\r
1040             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
1041         }\r
1042 \r
1043         /// <summary>\r
1044         /// 893: 泊地周辺海域の安全確保を徹底せよ!\r
1045         /// </summary>\r
1046         [TestMethod]\r
1047         public void BattleResult_893()\r
1048         {\r
1049             var count = InjectQuest(893);\r
1050 \r
1051             InjectMapNext(15, 4);\r
1052             InjectBattleResult("S");\r
1053             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}));\r
1054 \r
1055             InjectMapNext(15, 5);\r
1056             InjectBattleResult("A");\r
1057             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1058             InjectBattleResult("S");\r
1059             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "1-5");\r
1060 \r
1061             InjectMapNext(71, 5);\r
1062             InjectBattleResult("S");\r
1063             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "7-1");\r
1064 \r
1065             _questCounter.InspectMapNext(Js(new\r
1066             {\r
1067                 api_maparea_id = 7,\r
1068                 api_mapinfo_no = 2,\r
1069                 api_no = 7,\r
1070                 api_event_id = 5\r
1071             }));\r
1072             InjectBattleResult("S");\r
1073             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "7-2G");\r
1074 \r
1075             _questCounter.InspectMapNext(Js(new\r
1076             {\r
1077                 api_maparea_id = 7,\r
1078                 api_mapinfo_no = 2,\r
1079                 api_no = 15,\r
1080                 api_event_id = 5\r
1081             }));\r
1082             InjectBattleResult("S");\r
1083             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "7-2M");\r
1084         }\r
1085 \r
1086         /// <summary>\r
1087         /// 894: 空母戦力の投入による兵站線戦闘哨戒\r
1088         /// </summary>\r
1089         [TestMethod]\r
1090         public void BattleResult_894()\r
1091         {\r
1092             var count = InjectQuest(894);\r
1093             _battleInfo.InjectResultStatus(\r
1094                 ShipStatusList(2, 2, 2, 2, 2, 2),\r
1095                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1096 \r
1097             InjectMapNext(13, 5);\r
1098             InjectBattleResult("S");\r
1099             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "空母なしはカウントしない");\r
1100 \r
1101             _battleInfo.Result.Friend.Main[0].Spec.ShipType = 7;\r
1102             InjectBattleResult("A");\r
1103             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "A勝利はカウントしない");\r
1104 \r
1105             InjectBattleResult("S");\r
1106             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
1107 \r
1108             InjectMapNext(14, 4);\r
1109             InjectBattleResult("S");\r
1110             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-4");\r
1111 \r
1112             InjectMapNext(14, 5);\r
1113             InjectBattleResult("S");\r
1114             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-4");\r
1115 \r
1116             InjectMapNext(21, 5);\r
1117             InjectBattleResult("S");\r
1118             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-1");\r
1119 \r
1120             InjectMapNext(22, 5);\r
1121             InjectBattleResult("S");\r
1122             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-2");\r
1123 \r
1124             InjectMapNext(23, 5);\r
1125             InjectBattleResult("S");\r
1126             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "2-3");\r
1127         }\r
1128 \r
1129         /// <summary>\r
1130         /// 拡張「六水戦」、最前線へ!\r
1131         /// </summary>\r
1132         [TestMethod]\r
1133         public void BattleResult_903()\r
1134         {\r
1135             var count = InjectQuest(903);\r
1136             _battleInfo.InjectResultStatus(new[] {ShipStatus("夕張改二"), ShipStatus("睦月"), ShipStatus("綾波")},\r
1137                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1138 \r
1139             InjectMapNext(51, 5);\r
1140             InjectBattleResult("S");\r
1141             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "六水戦駆逐が1隻");\r
1142 \r
1143             _battleInfo.Result.Friend.Main[2] = ShipStatus("如月");\r
1144             InjectBattleResult("A");\r
1145             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1146 \r
1147             InjectBattleResult("S");\r
1148             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "5-1");\r
1149 \r
1150             InjectMapNext(54, 4);\r
1151             InjectBattleResult("S");\r
1152             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1153 \r
1154             _battleInfo.Result.Friend.Main[0] = ShipStatus("夕張改");\r
1155             InjectBattleResult("S");\r
1156             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改");\r
1157 \r
1158             _battleInfo.Result.Friend.Main = new[] {ShipStatus("睦月"), ShipStatus("如月"), ShipStatus("夕張改二")};\r
1159             InjectMapNext(54, 5);\r
1160             InjectBattleResult("S");\r
1161             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "旗艦が夕張改二ではない");\r
1162 \r
1163             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("弥生"), ShipStatus("卯月")};\r
1164             InjectMapNext(54, 5);\r
1165             InjectBattleResult("S");\r
1166             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "5-4");\r
1167 \r
1168             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("菊月"), ShipStatus("望月")};\r
1169             InjectMapNext(64, 5);\r
1170             InjectBattleResult("S");\r
1171             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "6-4");\r
1172 \r
1173             InjectMapNext(65, 5);\r
1174             InjectBattleResult("S");\r
1175             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "6-5");\r
1176 \r
1177             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改")};\r
1178             InjectBattleResult("S");\r
1179             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "由良改");\r
1180 \r
1181             _battleInfo.Result.Friend.Main = new[] {ShipStatus("夕張改二"), ShipStatus("由良改二")};\r
1182             InjectBattleResult("S");\r
1183             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 2}), "由良改二");\r
1184         }\r
1185 \r
1186         /// <summary>\r
1187         /// 904: 精鋭「十九駆」、躍り出る!\r
1188         /// </summary>\r
1189         [TestMethod]\r
1190         public void BattleResult_904()\r
1191         {\r
1192             var count = InjectQuest(904);\r
1193             _battleInfo.InjectResultStatus(\r
1194                 new[] {ShipStatus("綾波改二"), ShipStatus("敷波")},\r
1195                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1196 \r
1197             InjectMapNext(25, 5);\r
1198             InjectBattleResult("S");\r
1199             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "敷波はカウントしない");\r
1200 \r
1201             _battleInfo.Result.Friend.Main[1] = ShipStatus("敷波改二");\r
1202             InjectBattleResult("A");\r
1203             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "A勝利はカウントしない");\r
1204 \r
1205             InjectBattleResult("S");\r
1206             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "2-5");\r
1207 \r
1208             InjectMapNext(34, 4);\r
1209             InjectBattleResult("S");\r
1210             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1211 \r
1212             InjectMapNext(34, 5);\r
1213             InjectBattleResult("S");\r
1214             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "3-4");\r
1215 \r
1216             InjectMapNext(45, 5);\r
1217             InjectBattleResult("S");\r
1218             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-5");\r
1219 \r
1220             InjectMapNext(53, 5);\r
1221             InjectBattleResult("S");\r
1222             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "5-3");\r
1223         }\r
1224 \r
1225         /// <summary>\r
1226         /// 905: 「海防艦」、海を護る!\r
1227         /// </summary>\r
1228         [TestMethod]\r
1229         public void BattleResult_905()\r
1230         {\r
1231             var count = InjectQuest(905);\r
1232             _battleInfo.InjectResultStatus(\r
1233                 ShipStatusList(1, 1, 1, 2, 2, 2),\r
1234                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1235 \r
1236             InjectMapNext(11, 5);\r
1237             InjectBattleResult("A");\r
1238             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "6隻はカウントしない");\r
1239 \r
1240             _battleInfo.Result.Friend.Main[5] = new ShipStatus();\r
1241             InjectBattleResult("B");\r
1242             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
1243 \r
1244             InjectBattleResult("A");\r
1245             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-1");\r
1246 \r
1247             InjectMapNext(12, 4);\r
1248             InjectBattleResult("A");\r
1249             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
1250 \r
1251             InjectMapNext(12, 5);\r
1252             InjectBattleResult("A");\r
1253             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "1-2");\r
1254 \r
1255             _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
1256             InjectMapNext(13, 5);\r
1257             InjectBattleResult("A");\r
1258             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "海防艦2隻はカウントしない");\r
1259 \r
1260             _battleInfo.Result.Friend.Main[0] = ShipStatus(1);\r
1261             InjectBattleResult("A");\r
1262             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "1-3");\r
1263 \r
1264             InjectMapNext(15, 5);\r
1265             InjectBattleResult("A");\r
1266             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "1-5");\r
1267 \r
1268             InjectMapNext(16, 8);\r
1269             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
1270         }\r
1271 \r
1272         /// <summary>\r
1273         /// 912: 工作艦「明石」護衛任務\r
1274         /// </summary>\r
1275         [TestMethod]\r
1276         public void BattleResult_912()\r
1277         {\r
1278             var count = InjectQuest(912);\r
1279             _battleInfo.InjectResultStatus(\r
1280                 new[] {ShipStatus("明石"), ShipStatus(2), ShipStatus(2), ShipStatus(1)},\r
1281                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1282 \r
1283             InjectMapNext(13, 5);\r
1284             InjectBattleResult("A");\r
1285             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "駆逐艦2隻はカウントしない");\r
1286 \r
1287             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1288             InjectBattleResult("B");\r
1289             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0, 0}), "B勝利はカウントしない");\r
1290 \r
1291             InjectBattleResult("A");\r
1292             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "1-3");\r
1293 \r
1294             InjectMapNext(21, 4);\r
1295             InjectBattleResult("A");\r
1296             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "ボス以外はカウントしない");\r
1297 \r
1298             _battleInfo.Result.Friend.Main[0] = ShipStatus(2);\r
1299             _battleInfo.Result.Friend.Main[1] = ShipStatus("明石");\r
1300             InjectMapNext(21, 5);\r
1301             InjectBattleResult("A");\r
1302             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0, 0}), "旗艦明石以外はカウントしない");\r
1303 \r
1304             _battleInfo.Result.Friend.Main[0] = ShipStatus("明石");\r
1305             _battleInfo.Result.Friend.Main[1] = ShipStatus(2);\r
1306             InjectBattleResult("A");\r
1307             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0, 0}), "2-1");\r
1308 \r
1309             InjectMapNext(22, 5);\r
1310             InjectBattleResult("A");\r
1311             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}), "2-2");\r
1312 \r
1313             InjectMapNext(23, 5);\r
1314             InjectBattleResult("A");\r
1315             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 0}), "2-3");\r
1316 \r
1317             InjectMapNext(16, 8);\r
1318             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}), "1-6");\r
1319         }\r
1320 \r
1321         /// <summary>\r
1322         /// 912: 重巡戦隊、西へ!\r
1323         /// </summary>\r
1324         [TestMethod]\r
1325         public void BattleResult_914()\r
1326         {\r
1327             var count = InjectQuest(914);\r
1328             _battleInfo.InjectResultStatus(\r
1329                 new[] {ShipStatus(5), ShipStatus(5), ShipStatus(5), ShipStatus(1)},\r
1330                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1331 \r
1332             InjectMapNext(41, 5);\r
1333             InjectBattleResult("A");\r
1334             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "駆逐艦なしはカウントしない");\r
1335 \r
1336             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1337             InjectBattleResult("B");\r
1338             PAssert.That(() => count.NowArray.SequenceEqual(new[] {0, 0, 0, 0}), "B勝利はカウントしない");\r
1339 \r
1340             InjectBattleResult("A");\r
1341             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "4-1");\r
1342 \r
1343             InjectMapNext(42, 4);\r
1344             InjectBattleResult("A");\r
1345             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "ボス以外はカウントしない");\r
1346 \r
1347             InjectMapNext(42, 5);\r
1348             _battleInfo.Result.Friend.Main[0] = ShipStatus(6);\r
1349             InjectBattleResult("A");\r
1350             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 0, 0, 0}), "重巡2隻はカウントしない");\r
1351 \r
1352             _battleInfo.Result.Friend.Main[0] = ShipStatus(5);\r
1353             InjectBattleResult("A");\r
1354             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 0}), "4-2");\r
1355 \r
1356             InjectMapNext(43, 5);\r
1357             InjectBattleResult("A");\r
1358             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}), "4-3");\r
1359 \r
1360             InjectMapNext(44, 5);\r
1361             InjectBattleResult("A");\r
1362             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}), "4-3");\r
1363         }\r
1364 \r
1365         /// <summary>\r
1366         /// 280と854以降を同時に遂行していると854以降がカウントされないことがある\r
1367         /// </summary>\r
1368         [TestMethod]\r
1369         public void BattleResult_280_854()\r
1370         {\r
1371             InjectQuestList(new[] {280, 854});\r
1372 \r
1373             _battleInfo.InjectResultStatus(\r
1374                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
1375                 new ShipStatus[0], new ShipStatus[0]);\r
1376 \r
1377             InjectMapNext(24, 5);\r
1378             InjectBattleResult("S");\r
1379             Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[0]);\r
1380         }\r
1381 \r
1382         /// <summary>\r
1383         /// 888と893以降を同時に遂行していると893以降がカウントされないことがある\r
1384         /// </summary>\r
1385         [TestMethod]\r
1386         public void BattleResult_888_893()\r
1387         {\r
1388             InjectQuestList(new[] {888, 893});\r
1389 \r
1390             _battleInfo.InjectResultStatus(\r
1391                 ShipStatusList(1, 1, 1, 1, 1, 1), new ShipStatus[0],\r
1392                 new ShipStatus[0], new ShipStatus[0]);\r
1393 \r
1394             InjectMapNext(71, 5);\r
1395             InjectBattleResult("S");\r
1396             Assert.AreEqual(1, _questInfo.Quests[1].Count.NowArray[1]);\r
1397         }\r
1398 \r
1399         /// <summary>\r
1400         /// 302: 大規模演習\r
1401         /// 303: 「演習」で練度向上!\r
1402         /// 304: 「演習」で他提督を圧倒せよ!\r
1403         /// 311: 精鋭艦隊演習\r
1404         /// 315: 春季大演習\r
1405         /// </summary>\r
1406         [TestMethod]\r
1407         public void PracticeResult_303_304_302_311_315()\r
1408         {\r
1409             InjectQuestList(new[] {302, 303, 304, 311, 315});\r
1410 \r
1411             _battleInfo.InjectResultStatus(new[]\r
1412             {\r
1413                 ShipStatus(2, 543), ShipStatus(3, 488)\r
1414             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1415             InjectPracticeResult("C");\r
1416             InjectPracticeResult("A");\r
1417             PAssert.That(() =>\r
1418                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1419                     .SequenceEqual(new[]\r
1420                     {\r
1421                         new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},\r
1422                         new {Id = 311, Now = 1}, new {Id = 315, Now = 1}\r
1423                     }));\r
1424         }\r
1425 \r
1426         /// <summary>\r
1427         /// 318: 給糧艦「伊良湖」の支援\r
1428         /// </summary>\r
1429         [TestMethod]\r
1430         public void PracticeResult_318()\r
1431         {\r
1432             var count = InjectQuest(318);\r
1433 \r
1434             _battleInfo.InjectResultStatus(new[]\r
1435             {\r
1436                 ShipStatus(2, 543), ShipStatus(3, 488)\r
1437             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1438 \r
1439             InjectPracticeResult("B");\r
1440             Assert.AreEqual(0, count.Now, "軽巡1隻");\r
1441             _battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
1442             _questCounter.StartPractice("api%5Fdeck%5Fid=2");\r
1443             InjectPracticeResult("B");\r
1444             Assert.AreEqual(0, count.Now, "第2艦隊");\r
1445             _questCounter.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊\r
1446             InjectPracticeResult("C");\r
1447             Assert.AreEqual(0, count.Now, "敗北");\r
1448             InjectPracticeResult("B");\r
1449             Assert.AreEqual(1, count.Now);\r
1450 \r
1451             count.Now = 2;\r
1452             InjectQuestList(new[] {318});\r
1453             Assert.AreEqual(2, count.Now, "進捗調節しない");\r
1454         }\r
1455 \r
1456         /// <summary>\r
1457         /// 330: 空母機動部隊、演習始め!\r
1458         /// </summary>\r
1459         [TestMethod]\r
1460         public void PracticeResult_330()\r
1461         {\r
1462             var count = InjectQuest(330);\r
1463 \r
1464             _battleInfo.InjectResultStatus(\r
1465                 ShipStatusList(18, 7, 2, 2),\r
1466                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1467             InjectPracticeResult("B");\r
1468             Assert.AreEqual(0, count.Now, "B勝利でカウントしない");\r
1469 \r
1470             InjectPracticeResult("A");\r
1471             Assert.AreEqual(1, count.Now, "装甲空母、軽空母");\r
1472 \r
1473             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 2, 2);\r
1474             InjectPracticeResult("A");\r
1475             Assert.AreEqual(2, count.Now, "正規空母、軽空母");\r
1476 \r
1477             count.Now = 0;\r
1478             InjectPracticeResult("C");\r
1479             Assert.AreEqual(0, count.Now, "敗北");\r
1480 \r
1481             _battleInfo.Result.Friend.Main = ShipStatusList(2, 7, 11, 2);\r
1482             InjectPracticeResult("A");\r
1483             Assert.AreEqual(0, count.Now, "旗艦空母以外");\r
1484 \r
1485             _battleInfo.Result.Friend.Main = ShipStatusList(11, 2, 2, 2);\r
1486             InjectPracticeResult("A");\r
1487             Assert.AreEqual(0, count.Now, "空母一隻");\r
1488 \r
1489             _battleInfo.Result.Friend.Main = ShipStatusList(11, 7, 3, 2);\r
1490             InjectPracticeResult("A");\r
1491             Assert.AreEqual(0, count.Now, "駆逐一隻");\r
1492         }\r
1493 \r
1494         /// <summary>\r
1495         /// 337: 「十八駆」演習!\r
1496         /// </summary>\r
1497         [TestMethod]\r
1498         public void PracticeResult_337()\r
1499         {\r
1500             var count = InjectQuest(337);\r
1501 \r
1502             _battleInfo.InjectResultStatus(new[]\r
1503             {\r
1504                 ShipStatus("霰"), ShipStatus("霰"),\r
1505                 ShipStatus("陽炎"), ShipStatus("不知火"),\r
1506                 ShipStatus("黒潮")\r
1507             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1508             InjectPracticeResult("A");\r
1509             Assert.AreEqual(0, count.Now, "A");\r
1510             InjectPracticeResult("S");\r
1511             Assert.AreEqual(1, count.Now);\r
1512             _battleInfo.Result.Friend.Main[0] = ShipStatus("涼風");\r
1513             InjectPracticeResult("S");\r
1514             Assert.AreEqual(1, count.Now, "霰→涼風");\r
1515             _battleInfo.Result.Friend.Main[4] = ShipStatus("霞改二");\r
1516             InjectPracticeResult("S");\r
1517             Assert.AreEqual(2, count.Now, "黒潮→霞改二");\r
1518         }\r
1519 \r
1520         /// <summary>\r
1521         /// 339: 「十九駆」演習!\r
1522         /// </summary>\r
1523         [TestMethod]\r
1524         public void PracticeResult_339()\r
1525         {\r
1526             var count = InjectQuest(339);\r
1527 \r
1528             _battleInfo.InjectResultStatus(new[]\r
1529             {\r
1530                 ShipStatus("磯波"), ShipStatus("浦波"),\r
1531                 ShipStatus("綾波"), ShipStatus("敷波"),\r
1532                 ShipStatus("初雪")\r
1533             }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1534             InjectPracticeResult("A");\r
1535             Assert.AreEqual(0, count.Now, "A");\r
1536             InjectPracticeResult("S");\r
1537             Assert.AreEqual(1, count.Now);\r
1538             _battleInfo.Result.Friend.Main[0] = ShipStatus("深雪");\r
1539             InjectPracticeResult("S");\r
1540             Assert.AreEqual(1, count.Now, "磯波→深雪");\r
1541         }\r
1542 \r
1543         /// <summary>\r
1544         /// 342: 小艦艇群演習強化任務\r
1545         /// </summary>\r
1546         [TestMethod]\r
1547         public void PracticeResult_342()\r
1548         {\r
1549             var count = InjectQuest(342);\r
1550 \r
1551             _battleInfo.InjectResultStatus(new[] {ShipStatus(1), ShipStatus(1), ShipStatus(2), ShipStatus(5)},\r
1552                 new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
1553             InjectPracticeResult("A");\r
1554             Assert.AreEqual(0, count.Now);\r
1555 \r
1556             InjectPracticeResult("B");\r
1557             Assert.AreEqual(0, count.Now);\r
1558 \r
1559             _battleInfo.Result.Friend.Main[3] = ShipStatus(2);\r
1560             InjectPracticeResult("A");\r
1561             Assert.AreEqual(1, count.Now);\r
1562 \r
1563             _battleInfo.Result.Friend.Main[3] = ShipStatus(3);\r
1564             InjectPracticeResult("A");\r
1565             Assert.AreEqual(2, count.Now);\r
1566 \r
1567             _battleInfo.Result.Friend.Main[3] = ShipStatus(4);\r
1568             InjectPracticeResult("A");\r
1569             Assert.AreEqual(3, count.Now);\r
1570 \r
1571             _battleInfo.Result.Friend.Main[3] = ShipStatus(21);\r
1572             InjectPracticeResult("A");\r
1573             Assert.AreEqual(4, count.Now);\r
1574         }\r
1575 \r
1576         /// <summary>\r
1577         /// 402: 「遠征」を3回成功させよう!\r
1578         /// 403: 「遠征」を10回成功させよう!\r
1579         /// 404: 大規模遠征作戦、発令!\r
1580         /// 410: 南方への輸送作戦を成功させよ!\r
1581         /// 411: 南方への鼠輸送を継続実施せよ!\r
1582         /// </summary>\r
1583         [TestMethod]\r
1584         public void MissionResult_402_403_404_410_411()\r
1585         {\r
1586             InjectQuestList(new[] {402, 403, 404, 410, 411});\r
1587 \r
1588             _questCounter.InspectDeck(Js(\r
1589                 new[]\r
1590                 {\r
1591                     new {api_id = 2, api_mission = new[] {2, 6}},\r
1592                     new {api_id = 3, api_mission = new[] {2, 37}},\r
1593                     new {api_id = 4, api_mission = new[] {2, 2}}\r
1594                 }));\r
1595             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1596             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 2}));\r
1597             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 0}));\r
1598             PAssert.That(() =>\r
1599                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1600                     .SequenceEqual(new[]\r
1601                     {\r
1602                         new {Id = 402, Now = 2}, new {Id = 403, Now = 2}, new {Id = 404, Now = 2},\r
1603                         new {Id = 410, Now = 1}, new {Id = 411, Now = 1}\r
1604                     }));\r
1605         }\r
1606 \r
1607         /// <summary>\r
1608         /// 426: 海上通商航路の警戒を厳とせよ!\r
1609         /// </summary>\r
1610         [TestMethod]\r
1611         public void MissionResult_426()\r
1612         {\r
1613             var count = InjectQuest(426);\r
1614 \r
1615             _questCounter.InspectDeck(Js(\r
1616                 new[]\r
1617                 {\r
1618                     new {api_id = 2, api_mission = new[] {2, 3}},\r
1619                     new {api_id = 3, api_mission = new[] {2, 4}},\r
1620                     new {api_id = 4, api_mission = new[] {2, 5}}\r
1621                 }));\r
1622             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1623             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1624             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1625             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1626             _questCounter.InspectDeck(Js(\r
1627                 new[]\r
1628                 {\r
1629                     new {api_id = 2, api_mission = new[] {2, 10}}\r
1630                 }));\r
1631             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1632             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1633         }\r
1634 \r
1635         /// <summary>\r
1636         /// 428: 近海に侵入する敵潜を制圧せよ!\r
1637         /// </summary>\r
1638         [TestMethod]\r
1639         public void MissionResult_428()\r
1640         {\r
1641             var count = InjectQuest(428);\r
1642 \r
1643             _questCounter.InspectDeck(Js(\r
1644                 new[]\r
1645                 {\r
1646                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1647                     new {api_id = 3, api_mission = new[] {2, 101}},\r
1648                     new {api_id = 4, api_mission = new[] {2, 102}}\r
1649                 }));\r
1650             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1651             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1652             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1653             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
1654         }\r
1655 \r
1656         /// <summary>\r
1657         /// 436: 練習航海及び警備任務を実施せよ!\r
1658         /// </summary>\r
1659         [TestMethod]\r
1660         public void MissionResult_436()\r
1661         {\r
1662             var count = InjectQuest(436);\r
1663 \r
1664             _questCounter.InspectDeck(Js(\r
1665                 new[]\r
1666                 {\r
1667                     new {api_id = 2, api_mission = new[] {2, 1}},\r
1668                     new {api_id = 3, api_mission = new[] {2, 2}},\r
1669                     new {api_id = 4, api_mission = new[] {2, 3}}\r
1670                 }));\r
1671             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1672             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1673             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1674             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0, 0}));\r
1675 \r
1676             _questCounter.InspectDeck(Js(\r
1677                 new[]\r
1678                 {\r
1679                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1680                     new {api_id = 3, api_mission = new[] {2, 10}}\r
1681                 }));\r
1682             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1683             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1684             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
1685         }\r
1686 \r
1687         /// <summary>\r
1688         /// 437: 小笠原沖哨戒線の強化を実施せよ!\r
1689         /// </summary>\r
1690         [TestMethod]\r
1691         public void MissionResult_437()\r
1692         {\r
1693             var count = InjectQuest(437);\r
1694 \r
1695             _questCounter.InspectDeck(Js(\r
1696                 new[]\r
1697                 {\r
1698                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1699                     new {api_id = 3, api_mission = new[] {2, 104}},\r
1700                     new {api_id = 4, api_mission = new[] {2, 105}}\r
1701                 }));\r
1702             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1703             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1704             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1705             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1706 \r
1707             _questCounter.InspectDeck(Js(\r
1708                 new[]\r
1709                 {\r
1710                     new {api_id = 2, api_mission = new[] {2, 110}}\r
1711                 }));\r
1712             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1713             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1714         }\r
1715 \r
1716         /// <summary>\r
1717         /// 438: 南西諸島方面の海上護衛を強化せよ!\r
1718         /// </summary>\r
1719         [TestMethod]\r
1720         public void MissionResult_438()\r
1721         {\r
1722             var count = InjectQuest(438);\r
1723 \r
1724             _questCounter.InspectDeck(Js(\r
1725                 new[]\r
1726                 {\r
1727                     new {api_id = 2, api_mission = new[] {2, 4}},\r
1728                     new {api_id = 3, api_mission = new[] {2, 100}},\r
1729                     new {api_id = 4, api_mission = new[] {2, 9}}\r
1730                 }));\r
1731             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
1732             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
1733             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new { api_clear_result = 1 }));\r
1734             PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 0 }));\r
1735 \r
1736             _questCounter.InspectDeck(Js(\r
1737                 new[]\r
1738                 {\r
1739                     new {api_id = 2, api_mission = new[] {2, 114}}\r
1740                 }));\r
1741             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new { api_clear_result = 1 }));\r
1742             PAssert.That(() => count.NowArray.SequenceEqual(new[] { 1, 1, 1, 1 }));\r
1743         }\r
1744 \r
1745         /// <summary>\r
1746         /// 439: 兵站強化遠征任務【基本作戦】\r
1747         /// </summary>\r
1748         [TestMethod]\r
1749         public void MissionResult_439()\r
1750         {\r
1751             var count = InjectQuest(439);\r
1752 \r
1753             _questCounter.InspectDeck(Js(\r
1754                 new[]\r
1755                 {\r
1756                     new {api_id = 2, api_mission = new[] {2, 5}},\r
1757                     new {api_id = 3, api_mission = new[] {2, 100}},\r
1758                     new {api_id = 4, api_mission = new[] {2, 11}}\r
1759                 }));\r
1760             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1761             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1762             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1763             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 0}));\r
1764 \r
1765             _questCounter.InspectDeck(Js(\r
1766                 new[]\r
1767                 {\r
1768                     new {api_id = 2, api_mission = new[] {2, 110}}\r
1769                 }));\r
1770             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1771             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1}));\r
1772         }\r
1773 \r
1774         /// <summary>\r
1775         /// 440: 兵站強化遠征任務【拡張作戦】\r
1776         /// </summary>\r
1777         [TestMethod]\r
1778         public void MissionResult_440()\r
1779         {\r
1780             var count = InjectQuest(440);\r
1781 \r
1782             _questCounter.InspectDeck(Js(\r
1783                 new[]\r
1784                 {\r
1785                     new {api_id = 2, api_mission = new[] {2, 41}},\r
1786                     new {api_id = 3, api_mission = new[] {2, 5}},\r
1787                     new {api_id = 4, api_mission = new[] {2, 40}}\r
1788                 }));\r
1789             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1790             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new {api_clear_result = 1}));\r
1791             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=4", Js(new {api_clear_result = 1}));\r
1792             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0, 1, 0}));\r
1793 \r
1794             _questCounter.InspectDeck(Js(\r
1795                 new[]\r
1796                 {\r
1797                     new {api_id = 2, api_mission = new[] {2, 142}},\r
1798                     new {api_id = 3, api_mission = new[] {2, 46}}\r
1799                 }));\r
1800             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=2", Js(new {api_clear_result = 1}));\r
1801             _questCounter.InspectMissionResult("api%5Fdeck%5Fid=3", Js(new { api_clear_result = 1 }));\r
1802             PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1, 1, 1}));\r
1803         }\r
1804 \r
1805         /// <summary>\r
1806         /// 503: 艦隊大整備!\r
1807         /// 504: 艦隊酒保祭り!\r
1808         /// </summary>\r
1809         [TestMethod]\r
1810         public void PowerUp_503_504()\r
1811         {\r
1812             InjectQuestList(new[] {503, 504});\r
1813 \r
1814             _questCounter.CountNyukyo();\r
1815             _questCounter.CountCharge();\r
1816             PAssert.That(() =>\r
1817                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1818                     .SequenceEqual(new[] {new {Id = 503, Now = 1}, new {Id = 504, Now = 1}}));\r
1819         }\r
1820 \r
1821         /// <summary>\r
1822         /// 605: 新装備「開発」指令\r
1823         /// 606: 新造艦「建造」指令\r
1824         /// 607: 装備「開発」集中強化!\r
1825         /// 608: 艦娘「建造」艦隊強化!\r
1826         /// 609: 軍縮条約対応!\r
1827         /// 619: 装備の改修強化\r
1828         /// </summary>\r
1829         [TestMethod]\r
1830         public void Kousyou_605_606_607_608_609_619()\r
1831         {\r
1832             InjectQuestList(new[] {605, 606, 607, 608, 609, 619});\r
1833 \r
1834             _questCounter.InspectCreateItem(\r
1835                 "api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=0");\r
1836             _questCounter.InspectCreateItem(\r
1837                 "api_verno=1&api_item1=10&api_item2=10&api_item3=30&api_item4=10&api_multiple_flag=1");\r
1838             _questCounter.CountCreateShip();\r
1839             _questCounter.InspectDestroyShip("api%5Fship%5Fid=98159%2C98166%2C98168&api%5Fverno=1");\r
1840             _questCounter.CountRemodelSlot();\r
1841             PAssert.That(() =>\r
1842                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1843                     .SequenceEqual(new[]\r
1844                     {\r
1845                         new {Id = 605, Now = 4}, new {Id = 606, Now = 1}, new {Id = 607, Now = 4},\r
1846                         new {Id = 608, Now = 1}, new {Id = 609, Now = 3}, new {Id = 619, Now = 1}\r
1847                     }));\r
1848         }\r
1849 \r
1850         /// <summary>\r
1851         /// 613: 資源の再利用\r
1852         /// 638: 対空機銃量産\r
1853         /// 643: 主力「陸攻」の調達\r
1854         /// 645: 「洋上補給」物資の調達\r
1855         /// 653: 工廠稼働!次期作戦準備!\r
1856         /// 663: 新型艤装の継続研究\r
1857         /// 673: 装備開発力の整備\r
1858         /// 674: 工廠環境の整備\r
1859         /// 675: 運用装備の統合整備\r
1860         /// 676: 装備開発力の集中整備\r
1861         /// 677: 継戦支援能力の整備\r
1862         /// 678: 主力艦上戦闘機の更新\r
1863         /// 680: 対空兵装の整備拡充\r
1864         /// 688: 航空戦力の強化\r
1865         /// </summary>\r
1866         [TestMethod]\r
1867         public void DestroyItem_613_638_643_645_653_663_673_674_675_676_677_678_680_686_688()\r
1868         {\r
1869             _itemInfo.InjectItemSpec(new[]\r
1870             {\r
1871                 new ItemSpec {Id = 1, Name = "12cm単装砲", Type = 1},\r
1872                 new ItemSpec {Id = 37, Name = "7.7mm機銃", Type = 21},\r
1873                 new ItemSpec {Id = 19, Name = "九六式艦戦", Type = 6},\r
1874                 new ItemSpec {Id = 4, Name = "14cm単装砲", Type = 2},\r
1875                 new ItemSpec {Id = 11, Name = "15.2cm単装砲", Type = 4},\r
1876                 new ItemSpec {Id = 75, Name = "ドラム缶(輸送用)", Type = 30},\r
1877                 new ItemSpec {Id = 7, Name = "35.6cm連装砲", Type = 3},\r
1878                 new ItemSpec {Id = 25, Name = "零式水上偵察機", Type = 10},\r
1879                 new ItemSpec {Id = 13, Name = "61cm三連装魚雷", Type = 5},\r
1880                 new ItemSpec {Id = 20, Name = "零式艦戦21型", Type = 6},\r
1881                 new ItemSpec {Id = 28, Name = "22号水上電探", Type = 12},\r
1882                 new ItemSpec {Id = 31, Name = "32号水上電探", Type = 13},\r
1883                 new ItemSpec {Id = 35, Name = "三式弾", Type = 18},\r
1884                 new ItemSpec {Id = 23, Name = "九九式艦爆", Type = 7},\r
1885                 new ItemSpec {Id = 16, Name = "九七式艦攻", Type = 8},\r
1886                 new ItemSpec {Id = 3, Name = "10cm連装高角砲", Type = 1},\r
1887                 new ItemSpec {Id = 121, Name = "94式高射装置", Type = 36}\r
1888             });\r
1889             var items = new[] {1, 37, 19, 4, 11, 75, 7, 25, 13, 20, 28, 31, 35, 23, 16, 3, 121};\r
1890             _itemInfo.InjectItems(items);\r
1891             var questList = new[] {613, 638, 643, 645, 653, 663, 673, 674, 675, 676, 677, 678, 680, 686, 688};\r
1892             InjectQuestList(questList);\r
1893             _questCounter.InspectDestroyItem(\r
1894                 $"api%5Fslotitem%5Fids={string.Join("%2C", Enumerable.Range(1, items.Length))}&api%5Fverno=1");\r
1895             var scalar = new[]\r
1896             {\r
1897                 new {Id = 613, Now = 1}, new {Id = 638, Now = 1}, new {Id = 643, Now = 1}, new {Id = 645, Now = 1},\r
1898                 new {Id = 653, Now = 1}, new {Id = 663, Now = 1}, new {Id = 673, Now = 2}, new {Id = 674, Now = 1}\r
1899             };\r
1900             foreach (var e in scalar)\r
1901             {\r
1902                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
1903                 Assert.AreEqual(e.Id, c.Id);\r
1904                 Assert.AreEqual(e.Now, c.Now, $"{c.Id}");\r
1905             }\r
1906             var array = new[]\r
1907             {\r
1908                 new {Id = 675, NowArray = new[] {2, 1}}, new {Id = 676, NowArray = new[] {1, 1, 1}},\r
1909                 new {Id = 677, NowArray = new[] {1, 1, 1}}, new {Id = 678, NowArray = new[] {1, 1}},\r
1910                 new {Id = 680, NowArray = new[] {1, 2}}, new {Id = 686, NowArray = new[] {1, 1}},\r
1911                 new {Id = 688, NowArray = new[] {2, 1, 1, 1}}\r
1912             };\r
1913             foreach (var e in array)\r
1914             {\r
1915                 var c = Array.Find(_questInfo.Quests, q => q.Id == e.Id).Count;\r
1916                 Assert.AreEqual(e.Id, c.Id);\r
1917                 PAssert.That(() => c.NowArray.SequenceEqual(e.NowArray), $"{c.Id}");\r
1918             }\r
1919         }\r
1920 \r
1921         /// <summary>\r
1922         /// 702: 艦の「近代化改修」を実施せよ!\r
1923         /// 703: 「近代化改修」を進め、戦備を整えよ!\r
1924         /// </summary>\r
1925         [TestMethod]\r
1926         public void PowerUp_702_703()\r
1927         {\r
1928             InjectQuestList(new[] {702, 703});\r
1929             _questCounter.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
1930             PAssert.That(() =>\r
1931                 _questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
1932                     .SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
1933         }\r
1934     }\r
1935 }