OSDN Git Service

タイマーと終了時刻の切り替えをわかりやすくする
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / BattleLogProcessorTest.cs
1 // Copyright (C) 2018 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.Collections.Generic;\r
16 using System.Linq;\r
17 using ExpressionToCodeLib;\r
18 using KancolleSniffer.Log;\r
19 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
20 \r
21 namespace KancolleSniffer.Test\r
22 {\r
23     [TestClass]\r
24     public class BattleLogProcessorTest\r
25     {\r
26         [TestInitialize]\r
27         public void Initialize()\r
28         {\r
29             ExpressionToCodeConfiguration.GlobalAssertionConfiguration = ExpressionToCodeConfiguration\r
30                 .GlobalAssertionConfiguration.WithPrintedListLengthLimit(200).WithMaximumValueLength(1000);\r
31         }\r
32 \r
33         [TestMethod]\r
34         public void NormalLog()\r
35         {\r
36             var input = Enumerable.Repeat("", 38).ToArray();\r
37             input[5] = "T字戦(有利)";\r
38             input[11] = "龍鳳改(Lv97)";\r
39             input[12] = "3/48";\r
40             input[13] = "夕立改(Lv148)";\r
41             input[14] = "5/36";\r
42             input[15] = "綾波改二(Lv148)";\r
43             input[16] = "20/37";\r
44             input[37] = "制空権確保";\r
45             var result = new BattleLogProcessor().Process(input);\r
46             PAssert.That(() => result[5] == "T字有利");\r
47             PAssert.That(() => result[37] == "確保");\r
48             PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");\r
49         }\r
50 \r
51         [TestMethod]\r
52         public void CombinedLog()\r
53         {\r
54             var input = Enumerable.Repeat("", 38).ToArray();\r
55             input[6] = "第四警戒航行序列";\r
56             input[11] = "龍鳳改(Lv97)・夕立改(Lv148)";\r
57             input[12] = "3/48・5/36";\r
58             input[37] = "航空劣勢";\r
59             var result = new BattleLogProcessor().Process(input);\r
60             PAssert.That(() => result[6] == "第四警戒");\r
61             PAssert.That(() => result[37] == "劣勢");\r
62             PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");\r
63 \r
64         }\r
65 \r
66         [TestMethod]\r
67         public void CombinedUnbalanceLog()\r
68         {\r
69             var input = Enumerable.Repeat("", 38).ToArray();\r
70             input[11] = "龍鳳改(Lv97)・";\r
71             input[12] = "3/48・";\r
72             input[13] = "・夕立改(Lv148)";\r
73             input[14] = "・5/36";\r
74             var result = new BattleLogProcessor().Process(input);\r
75             PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");\r
76         }\r
77 \r
78         [TestMethod]\r
79         public void NormalLogWithKana()\r
80         {\r
81             var input = Enumerable.Repeat("", 38).ToArray();\r
82             input[11] = "Luigi Torelli(ルイージ・トレッリ)(Lv7)";\r
83             input[12] = "2/11";\r
84             var result = new BattleLogProcessor().Process(input);\r
85             PAssert.That(() => result[11] == "Luigi Torelli(Lv7)");\r
86             PAssert.That(() => result[38] == "Luigi Torelli(Lv7)");\r
87         }\r
88 \r
89         [TestMethod]\r
90         public void Ship7BattleLog()\r
91         {\r
92             var input = new[]\r
93             {\r
94                 "2017-11-20 20:59:39", "台湾沖/ルソン島沖", "1", "出撃", "S", "反航戦", "単横陣", "梯形陣", "深海潜水艦部隊 通商破壊Aライン", "", "",\r
95                 "あきつ丸改(Lv81)", "40/40", "那智改二(Lv151)", "63/63", "Roma改(Lv99)", "92/92", "阿武隈改二(Lv98)", "40/45",\r
96                 "霞改二(Lv96)", "31/31", "潮改二(Lv94)", "33/33", "龍驤改二(Lv99)", "50/50", "潜水カ級(flagship)", "0/37",\r
97                 "潜水カ級(flagship)", "0/37", "潜水カ級(elite)", "0/27", "潜水カ級(elite)", "0/27", "", "", "", "", "590", "0",\r
98                 "制空権確保"\r
99             };\r
100             var result = new BattleLogProcessor().Process(input);\r
101             PAssert.That(() => result[21] == "潮改二(Lv94)・龍驤改二(Lv99)" &&\r
102                                result[22] == "33/33・50/50");\r
103             PAssert.That(() => result.Length == 40);\r
104         }\r
105 \r
106         [TestMethod]\r
107         public void AddMapNumber()\r
108         {\r
109             var input = Enumerable.Repeat("", 38).ToArray();\r
110             input[1] = "サーモン海域";\r
111             var result = new BattleLogProcessor(new Dictionary<string, string> {{"サーモン海域", "5-4"}}).Process(input);\r
112             PAssert.That(() => result[39] == "5-4");\r
113         }\r
114     }\r
115 }