Add more actionset tests
This commit is contained in:
@@ -36,11 +36,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
dotnet build --configuration Release
|
dotnet build --configuration Release --no-restore
|
||||||
|
|
||||||
- name: Test
|
- name: Test
|
||||||
run: |
|
run: |
|
||||||
dotnet test --configuration Release --logger "trx;logfilename=results.trx" --logger "html;logfilename=results.html" --logger "console;verbosity=detailed" --results-directory="TestResults"
|
dotnet test --configuration Release --logger "trx;logfilename=results.trx" --logger "html;logfilename=results.html" --logger "console;verbosity=detailed" --no-build --results-directory="TestResults"
|
||||||
|
|
||||||
- name: Upload Artifacts
|
- name: Upload Artifacts
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ public class ActionSetTests
|
|||||||
var lut = Craftimizer.Solver.Simulator.AcceptedActionsLUT;
|
var lut = Craftimizer.Solver.Simulator.AcceptedActionsLUT;
|
||||||
|
|
||||||
Assert.IsTrue(actions.Length <= 32);
|
Assert.IsTrue(actions.Length <= 32);
|
||||||
foreach(var i in Enum.GetValues<ActionType>())
|
foreach (var i in Enum.GetValues<ActionType>())
|
||||||
{
|
{
|
||||||
var idx = lut[(byte)i];
|
var idx = lut[(byte)i];
|
||||||
if (idx != 0)
|
if (idx != 0)
|
||||||
@@ -101,4 +101,34 @@ public class ActionSetTests
|
|||||||
Assert.AreEqual(ActionType.ByregotsBlessing, set.ElementAt(1));
|
Assert.AreEqual(ActionType.ByregotsBlessing, set.ElementAt(1));
|
||||||
Assert.AreEqual(ActionType.BasicSynthesis, set.ElementAt(2));
|
Assert.AreEqual(ActionType.BasicSynthesis, set.ElementAt(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void TestRandomIndex()
|
||||||
|
{
|
||||||
|
var actions = new[]
|
||||||
|
{
|
||||||
|
ActionType.BasicTouch,
|
||||||
|
ActionType.BasicSynthesis,
|
||||||
|
ActionType.GreatStrides,
|
||||||
|
ActionType.TrainedFinesse,
|
||||||
|
};
|
||||||
|
|
||||||
|
var set = new ActionSet();
|
||||||
|
foreach(var action in actions)
|
||||||
|
set.AddAction(action);
|
||||||
|
|
||||||
|
var counts = new Dictionary<ActionType, int>();
|
||||||
|
var rng = new Random(0);
|
||||||
|
for (var i = 0; i < 100; i++)
|
||||||
|
{
|
||||||
|
var action = set.SelectRandom(rng);
|
||||||
|
|
||||||
|
Assert.IsTrue(actions.Contains(action));
|
||||||
|
|
||||||
|
counts[action] = counts.GetValueOrDefault(action) + 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var action in actions)
|
||||||
|
Assert.IsTrue(counts.GetValueOrDefault(action) > 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user