public void BattleMechEngineTypeCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal("Standard", battleMechDesign.Engine.EngineType); }
public void BattleMechTonnageCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal(100, battleMechDesign.Tonnage); }
public void MassCheckMegaMekFiles() { string[] sFiles = Utilities.GetFiles($"{Utilities.DataDirectory}{Path.DirectorySeparatorChar}megamek-master{Path.DirectorySeparatorChar}megamek{Path.DirectorySeparatorChar}data{Path.DirectorySeparatorChar}mechfiles{Path.DirectorySeparatorChar}mechs", "*.mtf"); int iLoadCount = 0; foreach (string sFile in sFiles) { try { BattleMechDesign bmd = MTFReader.ReadBattleMechDesignFile(sFile); double dComputedTonnage = bmd.ComputedTonnage; if (bmd.Tonnage < dComputedTonnage || (bmd.Tonnage - dComputedTonnage > 0.5 && !Utilities.IsUndertonnageDesign(bmd))) { _outputHelper.WriteLine($"{bmd.Variant} {bmd.Model} rated at {bmd.Tonnage}, computed as {bmd.ComputedTonnage}"); _outputHelper.WriteLine(bmd.TonnageLedger); } else { iLoadCount++; } } catch (Exception ex) { throw new Exception($"Error loading {sFile}", ex); } } _outputHelper.WriteLine($"Checked {sFiles.Length} MTF files."); Assert.Equal(sFiles.Length, iLoadCount); }
public void BattleMechEngineTonnageCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal(300, battleMechDesign.Engine.EngineRating); }
public void BattleMechModelNameCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal("Atlas", battleMechDesign.Model); }
public void BattleMechVariantNameCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal("AS7-D", battleMechDesign.Variant); }
public void TestMegaMekFiles() { string[] sFiles = Utilities.GetFiles($"{Utilities.DataDirectory}{Path.DirectorySeparatorChar}megamek-master{Path.DirectorySeparatorChar}megamek{Path.DirectorySeparatorChar}data{Path.DirectorySeparatorChar}mechfiles{Path.DirectorySeparatorChar}mechs", "*.mtf"); int iLoadCount = 0; foreach (string sFile in sFiles) { try { BattleMechDesign bmd = MTFReader.ReadBattleMechDesignFile(sFile); iLoadCount++; } catch (Exception ex) { string sText = ""; while (ex != null) { sText += ex.Message; sText += "/"; ex = ex.InnerException; } sText += Path.GetFileNameWithoutExtension(sFile); _outputHelper.WriteLine(sText); } } Assert.Equal(sFiles.Length, iLoadCount); }
public void CheckGOL1HStructure() { BattleMechDesign designGoliath = MTFReader.ReadBattleMechDesignFile(GoliathTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designGoliath); Assert.Equal(6, element.MaxStructure); }
public void GoliathTonnageCheck() { string sFilePath = GoliathTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); _outputHelper.WriteLine(battleMechDesign.TonnageLedger); Assert.Equal(80, battleMechDesign.ComputedTonnage); }
public void CheckAS7DStructure() { BattleMechDesign designAtlas = MTFReader.ReadBattleMechDesignFile(AtlasTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designAtlas); Assert.Equal(8, element.MaxStructure); }
public void CheckAS7DMovement() { BattleMechDesign designAtlas = MTFReader.ReadBattleMechDesignFile(AtlasTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designAtlas); MovementMode m = element.GetMovementMode(""); Assert.Equal(3, m.Points); }
public void BattlemechCTISCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); StructureLocation structure = GetBattleMechStructureLocation(battleMechDesign, "CT"); Assert.Equal(31, structure.MaxStructurePoints); }
public void CheckGOL1HMovement() { BattleMechDesign designGoliath = MTFReader.ReadBattleMechDesignFile(GoliathTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designGoliath); MovementMode m = element.GetMovementMode(""); Assert.Equal(4, m.Points); }
public void BattlemechRLLISCheck() { string sFilePath = GoliathTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); StructureLocation structure = GetBattleMechStructureLocation(battleMechDesign, "RLL"); Assert.Equal(17, structure.MaxStructurePoints); }
public void BattleMechRLArmorCheck() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); ArmorFacing Facing = GetBattleMechArmorFacing(battleMechDesign, "RL"); Assert.Equal(41, Facing.ArmorPoints); }
public void ReadGoliathFile() { string sFilePath = GoliathTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal("Goliath", battleMechDesign.Model); Assert.Equal("GOL-1H", battleMechDesign.Variant); Assert.Equal(80, battleMechDesign.Tonnage); Assert.Equal(320, battleMechDesign.Engine.EngineRating); Assert.Equal("Standard", battleMechDesign.Engine.EngineType); }
public void ReadAtlasFile() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); Assert.Equal("Atlas", battleMechDesign.Model); Assert.Equal("AS7-D", battleMechDesign.Variant); Assert.Equal(100, battleMechDesign.Tonnage); Assert.Equal(300, battleMechDesign.Engine.EngineRating); Assert.Equal("Standard", battleMechDesign.Engine.EngineType); }
public static IEnumerable <object[]> GetBVTestCases() { List <object[]> retval = new List <object[]>(); //Load Variants string sDirectory = $".{Path.DirectorySeparatorChar}TestFiles{Path.DirectorySeparatorChar}MassTesting{Path.DirectorySeparatorChar}"; if (!Directory.Exists(sDirectory)) { sDirectory = $".{Path.DirectorySeparatorChar}TestFiles{Path.DirectorySeparatorChar}"; } string[] mtfFiles = Utilities.GetFiles(sDirectory, "*.mtf"); Dictionary <string, BattleTechNET.TotalWarfare.BattleMechDesign> designs = new Dictionary <string, BattleTechNET.TotalWarfare.BattleMechDesign>(); foreach (string mtfFile in mtfFiles) { try { BattleMechDesign design = MTFReader.ReadBattleMechDesignFile(File.OpenRead(mtfFile)); designs.Add($"{design.Model} {design.Variant}", design); } catch (Exception ex) { } } //Load Test Data Points string sTestCaseFileName = $".{System.IO.Path.DirectorySeparatorChar}TestFiles{System.IO.Path.DirectorySeparatorChar}BVTestCases.json"; string sJSONFile = System.IO.File.ReadAllText(sTestCaseFileName); BVTestSet testSet = JsonSerializer.Deserialize <BVTestSet>(sJSONFile); foreach (BVDataPoint dataPoint in testSet.testCases) { if (designs.ContainsKey(dataPoint.ToString())) { retval.Add(new object[] { designs[dataPoint.ToString()], dataPoint }); } //Commented out to allow Github Actions to not error on this test. //else //throw new Exception($"Could not find variant {dataPoint.ToString()}"); } return(retval); }
public void MassCheckMixedTechbaseMegaMekFiles() { string[] sFiles = Utilities.GetFiles($"{Utilities.DataDirectory}{Path.DirectorySeparatorChar}megamek-master{Path.DirectorySeparatorChar}megamek{Path.DirectorySeparatorChar}data{Path.DirectorySeparatorChar}mechfiles{Path.DirectorySeparatorChar}mechs", "*.mtf"); int iLoadCount = 0; int iMixedTechBaseMechCount = 0; if (sFiles == null) { return; } foreach (string sFile in sFiles) { try { BattleMechDesign bmd = MTFReader.ReadBattleMechDesignFile(sFile); if (bmd.TechnologyBase == BattleTechNET.Common.TECHNOLOGY_BASE.BOTH) { double dComputedTonnage = bmd.ComputedTonnage; if (bmd.Tonnage < dComputedTonnage || (bmd.Tonnage - dComputedTonnage > 0.5 && !Utilities.IsUndertonnageDesign(bmd))) { _outputHelper.WriteLine($"{bmd.Variant} {bmd.Model} rated at {bmd.Tonnage}, computed as {bmd.ComputedTonnage}"); _outputHelper.WriteLine($"Located at {sFile}"); if (bmd.Tonnage < dComputedTonnage) { _outputHelper.WriteLine("Computed tonnage exceeds nominal tonnage."); } if (bmd.Tonnage - dComputedTonnage > 0.5) { _outputHelper.WriteLine("Computed tonnage more than 0.5 tons below nominal tonnage."); } _outputHelper.WriteLine(bmd.TonnageLedger); } else { iLoadCount++; } iMixedTechBaseMechCount++; } } catch (Exception ex) { throw new Exception($"Error loading {sFile}", ex); } } _outputHelper.WriteLine($"Checked {sFiles.Length} MTF files."); Assert.Equal(iMixedTechBaseMechCount, iLoadCount); }
public void CheckAS7DREARAbility() { BattleMechDesign designAtlas = MTFReader.ReadBattleMechDesignFile(AtlasTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designAtlas); SpecialAbility abilityAC = null; foreach (SpecialAbility ability in element.SpecialAbilities) { if (ability.Code.Equals("REAR")) { abilityAC = ability; } } Assert.NotNull(abilityAC); Assert.Equal("REAR1/1", abilityAC.ToString()); }
public void CheckGOL1HLRMAbility() { BattleMechDesign designGoliath = MTFReader.ReadBattleMechDesignFile(GoliathTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designGoliath); SpecialAbility abilityAC = null; foreach (SpecialAbility ability in element.SpecialAbilities) { if (ability.Code.Equals("LRM")) { abilityAC = ability; } } Assert.NotNull(abilityAC); Assert.Equal("LRM1/1/1", abilityAC.ToString()); }
public void TestCount() { string[] sFiles = Utilities.GetFiles($"{Utilities.DataDirectory}{Path.DirectorySeparatorChar}megamek-master{Path.DirectorySeparatorChar}megamek{Path.DirectorySeparatorChar}data{Path.DirectorySeparatorChar}mechfiles{Path.DirectorySeparatorChar}mechs", "*.mtf"); int iLoadCount = 0; int iFileCount = 0; foreach (string sFile in sFiles) { try { iFileCount++; BattleMechDesign bmd = MTFReader.ReadBattleMechDesignFile(sFile); iLoadCount++; } catch (Exception ex) { _outputHelper.WriteLine($"{sFile}: {ex.Message}"); } } Assert.Equal(sFiles.Length, iLoadCount); }
public void BattlemechAtlasWeaponsLoaded() { string sFilePath = AtlasTestFile; BattleMechDesign battleMechDesign = MTFReader.ReadBattleMechDesignFile(sFilePath); bool bMLaserCT1 = false; bool bMLaserCT2 = false; bool bAC20RT = false; bool bLRM20LT = false; bool bSRM6LT = false; bool bMLaserRA1 = false; bool bMLaserLA1 = false; foreach (UnitComponent componentWeapon in battleMechDesign.Components) { if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Center Torso") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "Medium Laser") && bMLaserCT1 == true) { bMLaserCT2 = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Center Torso") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "Medium Laser") && bMLaserCT1 == false) { bMLaserCT1 = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Right Torso") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "AC/20")) { bAC20RT = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Left Torso") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "LRM20")) { bLRM20LT = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Left Torso") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "SRM6")) { bSRM6LT = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Right Arm") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "Medium Laser")) { bMLaserRA1 = true; } if (BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.HitLocation.Name, "Left Arm") && BattleTechNET.Common.Utilities.IsSynonymFor(componentWeapon.Component, "Medium Laser")) { bMLaserLA1 = true; } } Assert.True(bMLaserCT1); Assert.True(bMLaserCT2); Assert.True(bAC20RT); Assert.True(bLRM20LT); Assert.True(bSRM6LT); Assert.True(bMLaserRA1); Assert.True(bMLaserLA1); }
public void ConvertGOL1H() { BattleMechDesign designGoliath = MTFReader.ReadBattleMechDesignFile(GoliathTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(designGoliath); }
public void ConvertAS7D() { BattleMechDesign atlasDesign = MTFReader.ReadBattleMechDesignFile(AtlasTestFile); Element element = ConvertBattletechObject.ToAlphaStrike(atlasDesign); }