1 // Copyright (C) 2018 Kazuhiro Fujieda <fujieda@users.osdn.me>
\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
7 // http://www.apache.org/licenses/LICENSE-2.0
\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
15 using System.Collections.Generic;
\r
17 using ExpressionToCodeLib;
\r
18 using KancolleSniffer.Log;
\r
19 using Microsoft.VisualStudio.TestTools.UnitTesting;
\r
21 namespace KancolleSniffer.Test
\r
24 public class BattleLogProcessorTest
\r
27 public void Initialize()
\r
29 ExpressionToCodeConfiguration.GlobalAssertionConfiguration = ExpressionToCodeConfiguration
\r
30 .GlobalAssertionConfiguration.WithPrintedListLengthLimit(200).WithMaximumValueLength(1000);
\r
34 public void NormalLog()
\r
36 var input = Enumerable.Repeat("", 38).ToArray();
\r
37 input[5] = "T字戦(有利)";
\r
38 input[11] = "龍鳳改(Lv97)";
\r
40 input[13] = "夕立改(Lv148)";
\r
42 input[15] = "綾波改二(Lv148)";
\r
43 input[16] = "20/37";
\r
44 input[17] = "夕立改二(Lv148)";
\r
45 input[18] = "18/36";
\r
46 input[37] = "制空権確保";
\r
47 var result = new BattleLogProcessor().Process(input);
\r
48 PAssert.That(() => result[5] == "T字有利");
\r
49 PAssert.That(() => result[37] == "確保");
\r
50 PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");
\r
51 PAssert.That(() => result[39] == "夕立改二(Lv148)");
\r
55 public void CombinedLog()
\r
57 var input = Enumerable.Repeat("", 38).ToArray();
\r
58 input[6] = "第四警戒航行序列";
\r
59 input[11] = "龍鳳改(Lv97)・夕立改(Lv148)";
\r
60 input[12] = "3/48・5/36";
\r
62 var result = new BattleLogProcessor().Process(input);
\r
63 PAssert.That(() => result[6] == "第四警戒");
\r
64 PAssert.That(() => result[37] == "劣勢");
\r
65 PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");
\r
70 public void CombinedUnbalanceLog()
\r
72 var input = Enumerable.Repeat("", 38).ToArray();
\r
73 input[11] = "龍鳳改(Lv97)・";
\r
74 input[12] = "3/48・";
\r
75 input[13] = "・夕立改(Lv148)";
\r
76 input[14] = "・5/36";
\r
77 var result = new BattleLogProcessor().Process(input);
\r
78 PAssert.That(() => result[38] == "龍鳳改(Lv97)・夕立改(Lv148)");
\r
82 public void NormalLogWithKana()
\r
84 var input = Enumerable.Repeat("", 38).ToArray();
\r
85 input[11] = "Luigi Torelli(ルイージ・トレッリ)(Lv7)";
\r
87 var result = new BattleLogProcessor().Process(input);
\r
88 PAssert.That(() => result[11] == "Luigi Torelli(Lv7)");
\r
89 PAssert.That(() => result[38] == "Luigi Torelli(Lv7)");
\r
93 public void Ship7BattleLog()
\r
97 "2017-11-20 20:59:39", "台湾沖/ルソン島沖", "1", "出撃", "S", "反航戦", "単横陣", "梯形陣", "深海潜水艦部隊 通商破壊Aライン", "", "",
\r
98 "あきつ丸改(Lv81)", "40/40", "那智改二(Lv151)", "63/63", "Roma改(Lv99)", "92/92", "阿武隈改二(Lv98)", "40/45",
\r
99 "霞改二(Lv96)", "31/31", "潮改二(Lv94)", "33/33", "龍驤改二(Lv99)", "50/50", "潜水カ級(flagship)", "0/37",
\r
100 "潜水カ級(flagship)", "0/37", "潜水カ級(elite)", "0/27", "潜水カ級(elite)", "0/27", "", "", "", "", "590", "0",
\r
103 var result = new BattleLogProcessor().Process(input);
\r
104 PAssert.That(() => result[21] == "潮改二(Lv94)・龍驤改二(Lv99)" &&
\r
105 result[22] == "33/33・50/50");
\r
106 PAssert.That(() => result.Length == 41);
\r
110 public void AddMapNumber()
\r
112 var input = Enumerable.Repeat("", 38).ToArray();
\r
113 input[1] = "サーモン海域";
\r
114 var result = new BattleLogProcessor(new Dictionary<string, string> {{"サーモン海域", "5-4"}}).Process(input);
\r
115 PAssert.That(() => result[40] == "5-4");
\r