mirror of
https://github.com/haven1433/HexManiacAdvance.git
synced 2026-05-27 10:32:44 -05:00
Add tests for trainer team moves
This commit is contained in:
parent
8128b87aa0
commit
fcf6b7b4c2
|
|
@ -309,7 +309,10 @@ namespace HavenSoft.HexManiac.Core.Models.Runs {
|
|||
}
|
||||
|
||||
private IEnumerable<AutocompleteItem> GetAutocompleteMoveOptions(string line, int caretIndex) {
|
||||
throw new NotImplementedException();
|
||||
var namePart = line.Split("-")[1].Trim();
|
||||
return ArrayRunEnumSegment.GetOptions(model, HardcodeTablesModel.MoveNamesTable)
|
||||
.Where(option => option.MatchesPartial(namePart, onlyCheckLettersAndDigits: true))
|
||||
.Select(option => new AutocompleteItem(option, $"- {option}"));
|
||||
}
|
||||
|
||||
public bool DependsOn(string anchorName) => anchorName == HardcodeTablesModel.ItemsTableName || anchorName == HardcodeTablesModel.MoveNamesTable || anchorName == HardcodeTablesModel.PokemonNameTable;
|
||||
|
|
|
|||
|
|
@ -313,61 +313,5 @@ namespace HavenSoft.HexManiac.Tests {
|
|||
Assert.Equal("\"Poison Gas\"", options[0].Text);
|
||||
Assert.Equal("\"Poison Sting\"", options[1].Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonLevel_NoOptions() {
|
||||
CreateTextTable(HardcodeTablesModel.ItemsTableName, 0x100, "potion", "hyper potion", "rare candy", "masterball");
|
||||
CreateTextTable(HardcodeTablesModel.PokemonNameTable, 0x140, "bulbasaur", "farfetch'd", "nidoran \\sm", "mr. mime");
|
||||
CreateTextTable(HardcodeTablesModel.MoveNamesTable, 0x180, "tackle", "scratch", "hyper beam", "rest");
|
||||
var run = new TrainerPokemonTeamRun(Model, 0, SortedSpan<int>.None);
|
||||
|
||||
var options = run.GetAutoCompleteOptions("1 bulbasaur (3)", 0, 1);
|
||||
|
||||
Assert.Empty(options);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonSpecies_CorrectOptions() {
|
||||
CreateTextTable(HardcodeTablesModel.ItemsTableName, 0x100, "potion", "hyper potion", "rare candy", "masterball");
|
||||
CreateTextTable(HardcodeTablesModel.PokemonNameTable, 0x140, "bulbasaur", "farfetch'd", "nidoran \\sm", "mr. mime");
|
||||
CreateTextTable(HardcodeTablesModel.MoveNamesTable, 0x180, "tackle", "scratch", "hyper beam", "rest");
|
||||
var run = new TrainerPokemonTeamRun(Model, 0, SortedSpan<int>.None);
|
||||
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 3);
|
||||
|
||||
Assert.Equal(2, options.Count);
|
||||
Assert.Equal("1 \"nidoran \\sm\" (3) @potion", options[0].LineText);
|
||||
Assert.Equal("\"mr. mime\"", options[1].Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonIVs_NoOptions() {
|
||||
CreateTextTable(HardcodeTablesModel.ItemsTableName, 0x100, "potion", "hyper potion", "rare candy", "masterball");
|
||||
CreateTextTable(HardcodeTablesModel.PokemonNameTable, 0x140, "bulbasaur", "farfetch'd", "nidoran \\sm", "mr. mime");
|
||||
CreateTextTable(HardcodeTablesModel.MoveNamesTable, 0x180, "tackle", "scratch", "hyper beam", "rest");
|
||||
var run = new TrainerPokemonTeamRun(Model, 0, SortedSpan<int>.None);
|
||||
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 6);
|
||||
|
||||
Assert.Empty(options);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompleteItem_CorrectOptions() {
|
||||
CreateTextTable(HardcodeTablesModel.ItemsTableName, 0x100, "potion", "hyper potion", "rare candy", "masterball");
|
||||
CreateTextTable(HardcodeTablesModel.PokemonNameTable, 0x140, "bulbasaur", "farfetch'd", "nidoran \\sm", "mr. mime");
|
||||
CreateTextTable(HardcodeTablesModel.MoveNamesTable, 0x180, "tackle", "scratch", "hyper beam", "rest");
|
||||
var run = new TrainerPokemonTeamRun(Model, 0, SortedSpan<int>.None);
|
||||
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 12);
|
||||
|
||||
Assert.Equal(2, options.Count);
|
||||
Assert.Equal("1 i (3) @potion", options[0].LineText);
|
||||
Assert.Equal("\"hyper potion\"", options[1].Text);
|
||||
}
|
||||
|
||||
// TODO test how it works for trainer teams (moves)
|
||||
// TODO test how it works for item effects (elements)
|
||||
// TODO test how it works for item effects (enums)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
61
src/HexManiac.Tests/TrainerTeamTests.cs
Normal file
61
src/HexManiac.Tests/TrainerTeamTests.cs
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
using HavenSoft.HexManiac.Core;
|
||||
using HavenSoft.HexManiac.Core.Models;
|
||||
using HavenSoft.HexManiac.Core.Models.Runs;
|
||||
using System.Linq;
|
||||
using Xunit;
|
||||
|
||||
namespace HavenSoft.HexManiac.Tests {
|
||||
public class TrainerTeamTests : BaseViewModelTestClass {
|
||||
private readonly TrainerPokemonTeamRun run;
|
||||
|
||||
public TrainerTeamTests() {
|
||||
CreateTextTable(HardcodeTablesModel.ItemsTableName, 0x100, "potion", "hyper potion", "rare candy", "masterball");
|
||||
CreateTextTable(HardcodeTablesModel.PokemonNameTable, 0x140, "bulbasaur", "farfetch'd", "nidoran \\sm", "mr. mime");
|
||||
CreateTextTable(HardcodeTablesModel.MoveNamesTable, 0x180, "tackle", "scratch", "hyper beam", "rest");
|
||||
run = new TrainerPokemonTeamRun(Model, 0, SortedSpan<int>.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonLevel_NoOptions() {
|
||||
var options = run.GetAutoCompleteOptions("1 bulbasaur (3)", 0, 1);
|
||||
|
||||
Assert.Empty(options);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonSpecies_CorrectOptions() {
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 3);
|
||||
|
||||
Assert.Equal(2, options.Count);
|
||||
Assert.Equal("1 \"nidoran \\sm\" (3) @potion", options[0].LineText);
|
||||
Assert.Equal("\"mr. mime\"", options[1].Text);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompletePokemonIVs_NoOptions() {
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 6);
|
||||
|
||||
Assert.Empty(options);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompleteItem_CorrectOptions() {
|
||||
var options = run.GetAutoCompleteOptions("1 i (3) @potion", 0, 12);
|
||||
|
||||
Assert.Equal(2, options.Count);
|
||||
Assert.Equal("1 i (3) @potion", options[0].LineText);
|
||||
Assert.Equal("\"hyper potion\"", options[1].Text);
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void TrainerTeam_RequestAutocompleteMove_CorrectOptions() {
|
||||
var options = run.GetAutoCompleteOptions("- t", 0, 12);
|
||||
|
||||
Assert.Equal(3, options.Count);
|
||||
Assert.Equal("- tackle", options[0].LineText);
|
||||
Assert.Equal("scratch", options[1].Text);
|
||||
Assert.Equal("rest", options[2].Text);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user