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[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
52 public void CombinedLog()
\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
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
67 public void CombinedUnbalanceLog()
\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
79 public void NormalLogWithKana()
\r
81 var input = Enumerable.Repeat("", 38).ToArray();
\r
82 input[11] = "Luigi Torelli(ルイージ・トレッリ)(Lv7)";
\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
90 public void Ship7BattleLog()
\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
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
107 public void AddMapNumber()
\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