\r
using System.Collections.Generic;\r
using System.Linq;\r
-using KancolleSniffer.Model;\r
using ExpressionToCodeLib;\r
+using KancolleSniffer.Model;\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
\r
namespace KancolleSniffer.Test\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "practice_001");\r
- PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "practice_002");\r
- PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "combined_battle_001");\r
- PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "combined_battle_002");\r
- PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "combined_battle_003");\r
- PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "sp_midnight_002");\r
- PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.SupportType == 2);\r
}\r
\r
/// <summary>\r
{\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "nighttoday_001");\r
- PAssert.That(() => !sniffer.Battle.DisplayedResultRank.IsError && !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
var sniffer = new Sniffer();\r
SniffLogFile(sniffer, "escape_002");\r
PAssert.That(() => sniffer.Fleets[2].Ships[1].Escaped);\r
- PAssert.That(() => !sniffer.IsBattleResultStatusError);\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
}\r
\r
/// <summary>\r
SniffLogFile(sniffer, "combined_battle_004");\r
PAssert.That(() => !sniffer.BadlyDamagedShips.Any());\r
}\r
+\r
+ /// <summary>\r
+ /// Nelson Touchに対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NelsonTouch()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "nelsontouch_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ // ship_deckでフラグを引き継ぐ\r
+ SniffLogFile(sniffer, "nelsontouch_002");\r
+ PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ // 夜戦\r
+ var night = new Sniffer();\r
+ SniffLogFile(night, "nelsontouch_003");\r
+ PAssert.That(() => night.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ // 海戦をまたがってフラグを引き継ぐ\r
+ var fired = new Sniffer();\r
+ SniffLogFile(fired, "nelsontouch_004");\r
+ PAssert.That(() => fired.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 長門改二の一斉射に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ // ReSharper disable once IdentifierTypo\r
+ public void NagatoSpecial()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "nagatospecial_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 陸奥改二の一斉射に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ // ReSharper disable once IdentifierTypo\r
+ public void MutsuSpecial()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "mutsuspecial_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.Result.Friend.Main[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ PAssert.That(() => sniffer.Fleets[0].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 連合艦隊時の僚艦夜戦突撃に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void KongoSpecial()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "kongospecial_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ PAssert.That(() => sniffer.Battle.Result.Friend.Guard[0].SpecialAttack == ShipStatus.Attack.Fire);\r
+ PAssert.That(() => sniffer.Fleets[1].Ships[0].SpecialAttack == ShipStatus.Attack.Fired);\r
+ }\r
+\r
+ /// <summary>\r
+ /// レーダー射撃戦に対応する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void LdShooting()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "ld_shooting_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 敵連合艦隊の護衛の装備を正しく読み取る\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void EnemyGuardSlot()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "enemy_combined_001");\r
+ PAssert.That(() => sniffer.Battle.Result.Enemy.Guard[0].Slot[0].Spec.Id == 506);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 敵艦隊の制空値を計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void EnemyFighterPower()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "enemy_combined_001");\r
+ var fp = sniffer.Battle.EnemyFighterPower;\r
+ PAssert.That(() => fp.AirCombat == 209 && fp.Interception == 212);\r
+ }\r
+\r
+ /// <summary>\r
+ /// ダメコン進撃する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void NotWarnDamagedShipWithDamageControl()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "damecon_advance_001");\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Length == 0);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 迎撃機ありの基地空襲戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleWithInterceptor()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_001");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.AirRaid, battle.BattleState);\r
+ Assert.AreEqual(2, battle.AirControlLevel);\r
+ Assert.AreEqual(425, battle.FighterPower.Min);\r
+ Assert.AreEqual(231, battle.EnemyFighterPower.AirCombat);\r
+ Assert.AreEqual(BattleResultRank.S, battle.ResultRank);\r
+ var ships = battle.Result.Friend.Main;\r
+ Assert.IsTrue(new[] {200, 200, 200}.SequenceEqual(ships.Select(ship => ship.NowHp)));\r
+ Assert.IsTrue(new[] {"基地航空隊1", "基地航空隊2", "基地航空隊3"}.SequenceEqual(ships.Select(ship => ship.Name)));\r
+ Assert.IsTrue(\r
+ new[] {"烈風改(三五二空/熟練)", "雷電", "雷電", "烈風改"}.SequenceEqual(ships[2].Slot.Select(item => item.Spec.Name)));\r
+ Assert.IsTrue(new[]{18, 18, 18, 18}.SequenceEqual(ships[2].OnSlot));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 迎撃機なしの基地航空戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleWithoutInterceptor()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_002");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.AirRaid, battle.BattleState);\r
+ Assert.AreEqual(4, battle.AirControlLevel);\r
+ Assert.AreEqual(0, battle.FighterPower.Min);\r
+ Assert.AreEqual(231, battle.EnemyFighterPower.AirCombat);\r
+ Assert.AreEqual(BattleResultRank.B, battle.ResultRank);\r
+ var ships = battle.Result.Friend.Main;\r
+ Assert.IsTrue(new[] {82, 174, 147}.SequenceEqual(ships.Select(ship => ship.NowHp)));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 基地航空戦直後のボス戦\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AirRaidBattleBeforeBoss()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airraid_battle_004");\r
+ var battle = sniffer.Battle;\r
+ Assert.AreEqual(BattleState.Result, battle.BattleState);\r
+ Assert.AreEqual(0, sniffer.BadlyDamagedShips.Length);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 緊急泊地修理\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AnchorageRepair()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "anchorage_repair_001");\r
+ PAssert.That(() => !sniffer.IsBattleResultError);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 大破進撃しても平気なマスでの大破警告抑制\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void IgnoreDamagedShips()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "endpoint_001");\r
+ PAssert.That(() => sniffer.BadlyDamagedShips.Length == 0);\r
+ }\r
}\r
}
\ No newline at end of file