summaryrefslogtreecommitdiff
path: root/RhSolutions.ML.Tests/TestBase.cs
blob: 679d9d36955b8207e9ad9c5e89671cd8d1a223f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using RhSolutions.ML.Lib;

namespace RhSolutions.ML.Tests;

public abstract class TestBase
{
	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;
	
	public TestBase()
	{
		RhSolutionsMLBuilder.RebuildModel();
		_mlContext = new MLContext(seed: 0);
		ITransformer loadedNodel = _mlContext.Model.Load(_dataPath, out var _);
		_predEngine = _mlContext.Model.CreatePredictionEngine<Product, TypePrediction>(loadedNodel);
	}

	public void Execute(string name, string expectedGroup)
	{
		Product p = new()
		{
			Name = name
		};
		var prediction = _predEngine.Predict(p);
		Assert.That(prediction.Type, Is.EqualTo(expectedGroup));
	}
	
	public void Execute(Product expected)
	{
		Product actual = new()
		{
			Name = expected.Name
		};
		var prediction = _predEngine.Predict(actual);
		Assert.That(prediction.Type, Is.EqualTo(expected.Type));
	}
}