mirror of
https://github.com/kwsch/PKHeX.git
synced 2026-10-02 17:16:46 -05:00
Enhance transparency in failed generator test
This commit is contained in:
@@ -30,6 +30,7 @@ public static class EncounterMovesetGenerator
|
||||
/// <param name="moves">Moves that the resulting <see cref="IEncounterable"/> must be able to learn.</param>
|
||||
/// <param name="versions">Any specific version(s) to iterate for. If left blank, all will be checked.</param>
|
||||
/// <returns>A consumable <see cref="PKM"/> list of possible results.</returns>
|
||||
/// <remarks>When updating, update the sister <see cref="GenerateEncounters(PKM,ITrainerInfo,int[],GameVersion[])"/> method.</remarks>
|
||||
public static IEnumerable<PKM> GeneratePKMs(PKM pk, ITrainerInfo info, int[]? moves = null, params GameVersion[] versions)
|
||||
{
|
||||
pk.TID = info.TID;
|
||||
@@ -51,6 +52,28 @@ public static IEnumerable<PKM> GeneratePKMs(PKM pk, ITrainerInfo info, int[]? mo
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets possible <see cref="IEncounterable"/> objects that allow all moves requested to be learned.
|
||||
/// </summary>
|
||||
/// <param name="pk">Rough Pokémon data which contains the requested species, gender, and form.</param>
|
||||
/// <param name="info">Trainer information of the receiver.</param>
|
||||
/// <param name="moves">Moves that the resulting <see cref="IEncounterable"/> must be able to learn.</param>
|
||||
/// <param name="versions">Any specific version(s) to iterate for. If left blank, all will be checked.</param>
|
||||
/// <returns>A consumable <see cref="IEncounterable"/> list of possible results.</returns>
|
||||
/// <remarks>When updating, update the sister <see cref="GeneratePKMs(PKM,ITrainerInfo,int[],GameVersion[])"/> method.</remarks>
|
||||
public static IEnumerable<IEncounterable> 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;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets possible <see cref="PKM"/> objects that allow all moves requested to be learned within a specific generation.
|
||||
/// </summary>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user