Refactor entire library in line with new PkmnLib
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-06-25 16:30:12 +02:00
parent 2448f3bfb5
commit a8a6b775b3
93 changed files with 1294 additions and 2190 deletions

View File

@@ -10,16 +10,16 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void Create()
{
using var lib = new AbilityLibrary(0);
var lib = AbilityLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
}
[Test]
public void CreateAndAdd()
{
using var lib = new AbilityLibrary(1);
var lib = AbilityLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
using var ability = new Ability("testAbility", "effect", Array.Empty<EffectParameter>());
var ability = Ability.Create("testAbility", "effect", Array.Empty<EffectParameter>());
lib.Add("foobar", ability);
Assert.AreEqual(1, lib.Count);
Assert.AreEqual("testAbility", lib["foobar"].Name);
@@ -28,11 +28,11 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateAddIterate()
{
using var lib = new AbilityLibrary(10);
var lib = AbilityLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
for (ushort i = 0; i < 10; i++)
{
using var item = new Ability(i.ToString(), "effect", Array.Empty<EffectParameter>());
var item = Ability.Create(i.ToString(), "effect", Array.Empty<EffectParameter>());
lib.Add(i + "_key", item);
}

View File

@@ -17,7 +17,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 600_000)]
public void ErraticExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.Erratic(100);
var growthRate = CommonGrowthRates.Erratic(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
@@ -31,7 +31,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 800_000)]
public void FastExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.Fast(100);
var growthRate = CommonGrowthRates.Fast(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
@@ -45,7 +45,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 1_000_000)]
public void MediumFastExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.MediumFast(100);
var growthRate = CommonGrowthRates.MediumFast(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
@@ -59,7 +59,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 1_059_860)]
public void MediumSlowExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.MediumSlow(100);
var growthRate = CommonGrowthRates.MediumSlow(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
@@ -73,7 +73,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 1_250_000)]
public void SlowExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.Slow(100);
var growthRate = CommonGrowthRates.Slow(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
@@ -87,7 +87,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[TestCase(100, 1_640_000)]
public void FluctuatingExperience(byte level, int experience)
{
using var growthRate = CommonGrowthRates.Fluctuating(100);
var growthRate = CommonGrowthRates.Fluctuating(100);
Assert.AreEqual(experience, growthRate.CalculateExperience(level));
}
}

View File

@@ -9,22 +9,22 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateGrowthRateLibrary()
{
using var library = new GrowthRateLibrary(0);
var library = GrowthRateLibrary.Create(0);
}
[Test]
public void AddGrowthRateToLibrary()
{
using var library = new GrowthRateLibrary(0);
using var growthRate = new LookupGrowthRate(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
var library = GrowthRateLibrary.Create(0);
var growthRate = LookupGrowthRate.Create(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
library.AddGrowthRate("foobar", growthRate);
}
[Test]
public void CalculateLevel()
{
using var library = new GrowthRateLibrary(0);
using var growthRate = new LookupGrowthRate(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
var library = GrowthRateLibrary.Create(0);
var growthRate = LookupGrowthRate.Create(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
library.AddGrowthRate("foobar", growthRate);
var level = library.CalculateLevel("foobar", 20);
Assert.AreEqual(5, level);
@@ -33,8 +33,8 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CalculateExperience()
{
using var library = new GrowthRateLibrary(0);
using var growthRate = new LookupGrowthRate(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
var library = GrowthRateLibrary.Create(0);
var growthRate = LookupGrowthRate.Create(new uint[] { 0, 1, 5, 10, 20, 100, 200, 500 });
library.AddGrowthRate("foobar", growthRate);
var experience = library.CalculateExperience("foobar", 5);
Assert.AreEqual(20, experience);

View File

@@ -10,16 +10,16 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void Create()
{
using var lib = new ItemLibrary(0);
var lib = ItemLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
}
[Test]
public void CreateAndAdd()
{
using var lib = new ItemLibrary(1);
var lib = ItemLibrary.Create(1);
Assert.AreEqual(0, lib.Count);
using var item = new Item("testItem", ItemCategory.Mail, BattleItemCategory.None, 100, Array.Empty<string>());
var item = Item.Create("testItem", ItemCategory.Mail, BattleItemCategory.None, 100, Array.Empty<string>());
lib.Add("foobar", item);
Assert.AreEqual(1, lib.Count);
Assert.AreEqual("testItem", lib["foobar"].Name);
@@ -28,11 +28,11 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateAddIterate()
{
using var lib = new ItemLibrary(10);
var lib = ItemLibrary.Create(10);
Assert.AreEqual(0, lib.Count);
for (ushort i = 0; i < 10; i++)
{
using var item = new Item(i.ToString(), ItemCategory.Mail, BattleItemCategory.None, 100,
var item = Item.Create(i.ToString(), ItemCategory.Mail, BattleItemCategory.None, 100,
Array.Empty<string>());
lib.Add(i + "_key", item);
}

View File

@@ -8,14 +8,21 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateLibrarySettings()
{
using var settings = new LibrarySettings(100, 4096);
var _ = LibrarySettings.Create(100, 4096);
}
[Test]
public void GetMaxLevel()
{
using var settings = new LibrarySettings(100, 4096);
var settings = LibrarySettings.Create(100, 4096);
Assert.AreEqual(100, settings.MaxLevel);
}
[Test]
public void GetShinyRate()
{
var settings = LibrarySettings.Create(100, 4096);
Assert.AreEqual(4096, settings.ShinyRate);
}
}
}

View File

@@ -10,16 +10,16 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void Create()
{
using var lib = new MoveLibrary(0);
var lib = MoveLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
}
[Test]
public void CreateAndAdd()
{
using var lib = new MoveLibrary(1);
var lib = MoveLibrary.Create(1);
Assert.AreEqual(0, lib.Count);
using var move = new MoveData("testMove", new TypeIdentifier(0), MoveCategory.Physical, 100, 100, 1,
var move = MoveData.Create("testMove", new TypeIdentifier(0), MoveCategory.Physical, 100, 100, 1,
MoveTarget.All, 0, null, Array.Empty<string>());
lib.Add("foobar", move);
Assert.AreEqual(1, lib.Count);
@@ -29,11 +29,11 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateAddIterate()
{
using var lib = new MoveLibrary(10);
var lib = MoveLibrary.Create(10);
Assert.AreEqual(0, lib.Count);
for (ushort i = 0; i < 10; i++)
{
using var move = new MoveData(i.ToString(), new TypeIdentifier(0), MoveCategory.Physical, 100, 100, 1,
var move = MoveData.Create(i.ToString(), new TypeIdentifier(0), MoveCategory.Physical, 100, 100, 1,
MoveTarget.All, 0, null, Array.Empty<string>());
lib.Add(i + "_key", move);
}

View File

@@ -9,15 +9,15 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateNatureLibrary()
{
using var library = new NatureLibrary(0);
var _ = NatureLibrary.Create(0);
}
[Test]
public void LoadNatures()
{
using var library = new NatureLibrary(0);
using var nature1 = Nature.NeutralNature();
using var nature2 = new Nature(Statistic.Attack, Statistic.Defense);
var library = NatureLibrary.Create(0);
var nature1 = Nature.NeutralNature();
var nature2 = Nature.Create(Statistic.Attack, Statistic.Defense);
library.LoadNature("foo", nature1);
library.LoadNature("bar", nature2);
}
@@ -25,56 +25,41 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void LoadAndGetNature()
{
using var library = new NatureLibrary(0);
using var nature1 = new Nature(Statistic.Attack, Statistic.Defense);
var library = NatureLibrary.Create(0);
var nature1 = Nature.Create(Statistic.Attack, Statistic.Defense);
library.LoadNature("foo", nature1);
using (var n = library.TryGetNature("foo"))
{
Assert.AreEqual(Statistic.Attack, n.Value!.IncreasedStat);
}
Assert.That(library.TryGetNature("foo", out var n));
Assert.AreEqual(Statistic.Attack, n!.IncreasedStat);
}
[Test]
public void LoadAndGetNatureTwice()
{
using var library = new NatureLibrary(0);
using var nature1 = new Nature(Statistic.Attack, Statistic.Defense);
var library = NatureLibrary.Create(0);
var nature1 = Nature.Create(Statistic.Attack, Statistic.Defense);
library.LoadNature("foo", nature1);
using (var n = library.TryGetNature("foo"))
{
Assert.That(n.HasValue);
Assert.AreEqual(Statistic.Attack, n.Value!.IncreasedStat);
}
using (var n = library.TryGetNature("foo"))
{
Assert.That(n.HasValue);
Assert.AreEqual(Statistic.Attack, n.Value!.IncreasedStat);
}
Assert.That(library.TryGetNature("foo", out var n));
Assert.AreEqual(Statistic.Attack, n!.IncreasedStat);
Assert.That(library.TryGetNature("foo", out var n2));
Assert.AreEqual(Statistic.Attack, n2!.IncreasedStat);
}
[Test]
public void GetUnknownNature()
{
using var library = new NatureLibrary(0);
using var nature1 = new Nature(Statistic.Attack, Statistic.Defense);
using var n = library.TryGetNature("foo");
Assert.False(n.HasValue);
var library = NatureLibrary.Create(0);
Assert.IsFalse(library.TryGetNature("foo", out _));
}
[Test]
public void GetNatureName()
{
using var library = new NatureLibrary(0);
using var nature1 = new Nature(Statistic.Attack, Statistic.Defense);
var library = NatureLibrary.Create(0);
var nature1 = Nature.Create(Statistic.Attack, Statistic.Defense);
library.LoadNature("foo", nature1);
using (var n = library.TryGetNature("foo"))
{
Assert.AreEqual("foo", library.GetNatureName(n));
}
Assert.That(library.TryGetNature("foo", out var n));
Assert.AreEqual("foo", library.GetNatureName(n!));
}
}

View File

@@ -10,20 +10,20 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void Create()
{
using var lib = new SpeciesLibrary(0);
var lib = SpeciesLibrary.Create(0);
Assert.AreEqual(0, lib.Count);
}
[Test]
public void CreateAndAdd()
{
using var lib = new SpeciesLibrary(1);
var lib = SpeciesLibrary.Create(1);
Assert.AreEqual(0, lib.Count);
using var stats = new StaticStatisticSet<short>(5, 10, 30, 20, 2, 0);
using var moves = new LearnableMoves();
using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats,
var stats = StaticStatisticSet<ushort>.Create(5, 10, 30, 20, 2, 0);
var moves = LearnableMoves.Create();
var form = Form.Create("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats,
new[] { "foo", "bar" }, new[] { "set" }, moves, Array.Empty<string>());
using var species = new Species(10, "testSpecies", 0.2f, "growth", 120, form, Array.Empty<string>());
var species = Species.Create(10, "testSpecies", 0.2f, "growth", 120, form, Array.Empty<string>());
lib.Add("foobar", species);
Assert.AreEqual(1, lib.Count);
Assert.AreEqual("testSpecies", lib["foobar"].Name);
@@ -32,15 +32,15 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateAddIterate()
{
using var lib = new SpeciesLibrary(1);
var lib = SpeciesLibrary.Create(1);
Assert.AreEqual(0, lib.Count);
for (ushort i = 0; i < 10; i++)
{
using var stats = new StaticStatisticSet<short>(5, 10, 30, 20, 2, 0);
using var moves = new LearnableMoves();
using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats,
var stats = StaticStatisticSet<ushort>.Create(5, 10, 30, 20, 2, 0);
var moves = LearnableMoves.Create();
var form = Form.Create("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats,
new[] { "foo", "bar" }, new[] { "set" }, moves, Array.Empty<string>());
using var species = new Species(i, i.ToString(), 0.2f, "growth", 120, form, Array.Empty<string>());
var species = Species.Create(i, i.ToString(), 0.2f, "growth", 120, form, Array.Empty<string>());
lib.Add(i + "_key", species);
}
Assert.AreEqual(10, lib.Count);

View File

@@ -5,79 +5,79 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
{
public class StaticDataTests
{
private PkmnLibSharp.StaticData.Libraries.StaticData Build()
private static PkmnLibSharp.StaticData.Libraries.StaticData Build()
{
using var settings = new LibrarySettings(100, 4096);
using var species = new SpeciesLibrary(0);
using var moves = new MoveLibrary(0);
using var items = new ItemLibrary(0);
using var growthRates = new GrowthRateLibrary(0);
using var types = new TypeLibrary(0);
using var natures = new NatureLibrary(0);
using var abilities = new AbilityLibrary(0);
return new PkmnLibSharp.StaticData.Libraries.StaticData(settings, species, moves, items,
var settings = LibrarySettings.Create(100, 4096);
var species = SpeciesLibrary.Create(0);
var moves = MoveLibrary.Create(0);
var items = ItemLibrary.Create(0);
var growthRates = GrowthRateLibrary.Create(0);
var types = TypeLibrary.Create(0);
var natures = NatureLibrary.Create(0);
var abilities = AbilityLibrary.Create(0);
return PkmnLibSharp.StaticData.Libraries.StaticData.Create(settings, species, moves, items,
growthRates, types, natures, abilities);
}
[Test]
public void CreateNewStaticData()
{
using var _ = Build();
var _ = Build();
}
[Test]
public void GetSettings()
{
using var library = Build();
var library = Build();
var _ = library.LibrarySettings;
}
[Test]
public void GetSpecies()
{
using var library = Build();
var library = Build();
var _ = library.SpeciesLibrary;
}
[Test]
public void GetMoves()
{
using var library = Build();
var library = Build();
var _ = library.MoveLibrary;
}
[Test]
public void GetItems()
{
using var library = Build();
var library = Build();
var _ = library.ItemLibrary;
}
[Test]
public void GetGrowthRates()
{
using var library = Build();
var library = Build();
var _ = library.GrowthRateLibrary;
}
[Test]
public void GetTypeLibrary()
{
using var library = Build();
var library = Build();
var _ = library.TypeLibrary;
}
[Test]
public void GetNatureLibrary()
{
using var library = Build();
var library = Build();
var _ = library.NatureLibrary;
}
[Test]
public void GetAbilityLibrary()
{
using var library = Build();
var library = Build();
var _ = library.AbilityLibrary;
}
}

View File

@@ -10,20 +10,20 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void CreateTypeLibrary()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
}
[Test]
public void RegisterType()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foobar");
}
[Test]
public void RegisterTypeRetrieve()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
Assert.AreEqual(typeIdentifier1, new TypeIdentifier(1));
var typeIdentifier2 = typeLibrary.RegisterType("bar");
@@ -35,7 +35,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void GetUnknownTypeErrors()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foo");
Assert.Throws<KeyNotFoundException>(() =>
{
@@ -46,7 +46,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void GetTypeName()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
Assert.AreEqual("foo", typeLibrary.GetTypeName(typeIdentifier1));
}
@@ -54,7 +54,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void GetUnknownTypeNameErrors()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
typeLibrary.RegisterType("foo");
Assert.Throws<KeyNotFoundException>(() =>
{
@@ -65,7 +65,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void SetEffectiveness()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);
@@ -74,7 +74,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void GetEffectiveness()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);
@@ -84,7 +84,7 @@ namespace PkmnLibRSharpTests.StaticData.Libraries
[Test]
public void GetMultipleEffectiveness()
{
using var typeLibrary = new TypeLibrary(0);
var typeLibrary = TypeLibrary.Create(0);
var typeIdentifier1 = typeLibrary.RegisterType("foo");
var typeIdentifier2 = typeLibrary.RegisterType("bar");
typeLibrary.SetEffectiveness(typeIdentifier1, typeIdentifier2, 0.5f);