From b4c9e90c28d13e6db21c7fb3a0f6e2598086cbb7 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 2 Nov 2020 13:03:08 -0800 Subject: [PATCH] Enhance transparency in failed generator test --- .../Generator/EncounterMovesetGenerator.cs | 23 +++++++++++++++++++ .../Simulator/ShowdownSetTests.cs | 5 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/PKHeX.Core/Legality/Encounters/Generator/EncounterMovesetGenerator.cs b/PKHeX.Core/Legality/Encounters/Generator/EncounterMovesetGenerator.cs index 45155a74b..dfa08c184 100644 --- a/PKHeX.Core/Legality/Encounters/Generator/EncounterMovesetGenerator.cs +++ b/PKHeX.Core/Legality/Encounters/Generator/EncounterMovesetGenerator.cs @@ -30,6 +30,7 @@ public static class EncounterMovesetGenerator /// Moves that the resulting must be able to learn. /// Any specific version(s) to iterate for. If left blank, all will be checked. /// A consumable list of possible results. + /// When updating, update the sister method. public static IEnumerable GeneratePKMs(PKM pk, ITrainerInfo info, int[]? moves = null, params GameVersion[] versions) { pk.TID = info.TID; @@ -51,6 +52,28 @@ public static IEnumerable GeneratePKMs(PKM pk, ITrainerInfo info, int[]? mo } } + /// + /// Gets possible objects that allow all moves requested to be learned. + /// + /// Rough Pokémon data which contains the requested species, gender, and form. + /// Trainer information of the receiver. + /// Moves that the resulting must be able to learn. + /// Any specific version(s) to iterate for. If left blank, all will be checked. + /// A consumable list of possible results. + /// When updating, update the sister method. + public static IEnumerable GenerateEncounters(PKM pk, ITrainerInfo info, int[]? moves = null, params GameVersion[] versions) + { + pk.TID = info.TID; + var m = moves ?? pk.Moves; + var vers = versions.Length >= 1 ? versions : GameUtil.GetVersionsWithinRange(pk, pk.Format); + foreach (var ver in vers) + { + var encounters = GenerateVersionEncounters(pk, m, ver); + foreach (var enc in encounters) + yield return enc; + } + } + /// /// Gets possible objects that allow all moves requested to be learned within a specific generation. /// diff --git a/Tests/PKHeX.Core.Tests/Simulator/ShowdownSetTests.cs b/Tests/PKHeX.Core.Tests/Simulator/ShowdownSetTests.cs index 1531f5fed..b716a2709 100644 --- a/Tests/PKHeX.Core.Tests/Simulator/ShowdownSetTests.cs +++ b/Tests/PKHeX.Core.Tests/Simulator/ShowdownSetTests.cs @@ -45,10 +45,11 @@ public void SimulatorGetEncounters() var la = new LegalityAnalysis(pk); Assert.True(la.Valid); - var test = EncounterMovesetGenerator.GeneratePKMs(pk7, info).ToList(); + var test = EncounterMovesetGenerator.GenerateEncounters(pk7, info).ToList(); foreach (var t in test) { - var la2 = new LegalityAnalysis(t); + var convert = t.ConvertToPKM(info); + var la2 = new LegalityAnalysis(convert); Assert.True(la2.Valid); } }