0
0
RhSolutions-ML/RhSolutions.ML.Tests/TestBase.cs

39 lines
1.1 KiB
C#
Raw Normal View History

2023-12-29 00:05:17 +03:00
using RhSolutions.ML.Lib;
2023-10-03 21:43:15 +03:00
namespace RhSolutions.ML.Tests;
2023-12-29 11:24:23 +03:00
public abstract class TestBase
2023-10-03 21:43:15 +03:00
{
protected static string _appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) ?? ".";
protected static string _dataPath = Path.Combine(_appPath, "..", "..", "..", "..", "Models", "model.zip");
protected MLContext _mlContext;
protected PredictionEngine<Product, TypePrediction> _predEngine;
2023-12-29 00:05:17 +03:00
2023-12-29 11:24:23 +03:00
public TestBase()
2023-10-03 21:43:15 +03:00
{
2023-12-29 00:05:17 +03:00
RhSolutionsMLBuilder.RebuildModel();
2023-10-03 21:43:15 +03:00
_mlContext = new MLContext(seed: 0);
ITransformer loadedNodel = _mlContext.Model.Load(_dataPath, out var _);
2023-12-29 00:05:17 +03:00
_predEngine = _mlContext.Model.CreatePredictionEngine<Product, TypePrediction>(loadedNodel);
2023-10-03 21:43:15 +03:00
}
public void Execute(string name, string expectedGroup)
{
Product p = new()
{
Name = name
};
var prediction = _predEngine.Predict(p);
Assert.That(prediction.Type, Is.EqualTo(expectedGroup));
2023-12-29 00:05:17 +03:00
}
2023-12-29 11:24:23 +03:00
public void Execute(Product expected)
{
Product actual = new()
{
Name = expected.Name
};
var prediction = _predEngine.Predict(actual);
Assert.That(prediction.Type, Is.EqualTo(expected.Type));
}
2023-10-03 21:43:15 +03:00
}