namespace RhSolutions.ML.Tests; public class Tests { private static string _appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) ?? "."; private static string _dataPath = Path.Combine(_appPath, "..", "..", "..", "..", "Models", "model.zip"); private MLContext _mlContext; private PredictionEngine _predEngine; [SetUp] public void Setup() { _mlContext = new MLContext(seed: 0); ITransformer loadedNodel = _mlContext.Model.Load(_dataPath, out var _); _predEngine = _mlContext.Model.CreatePredictionEngine(loadedNodel); } [TestCase("Гильза 16")] [TestCase("Пресс-втулка")] public void SleevesTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Монтажная гильза")); } [TestCase("Тройник 20")] [TestCase("Тройник 20-16-16")] [TestCase("Тройник 20х20х20")] [TestCase("Тройник 32*32*32")] [TestCase("Тройник 50-50-32")] public void TPieceTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Тройник RAUTITAN")); } [TestCase("Тройник 50/50/45")] [TestCase("Тройник 50/50/45°")] public void WastePipeBranchTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Тройник RAUPIANO")); } [TestCase("Муфта соединительная равнопроходная 16 PX")] [TestCase("Муфта соединительная переходная 25-16")] [TestCase("Муфта 16")] [TestCase("Переход 20-16")] [TestCase("Переходник 20-16")] public void CouplingTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Муфта соединительная")); } [TestCase("Переходник с наружной резьбой 20-R 3/4 RX+")] [TestCase("Переходник с наружн. резьбой 20 1/2")] [TestCase("Переходник 16 1/2 НР")] [TestCase("ПНР 16")] [TestCase("Переход НР 16 1/2")] [TestCase("Муфта НР 16 1/2")] public void AdapterExternalTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Переходник на наружную резьбу")); } [TestCase("Переходник с внутренней резьбой 20-R 3/4 RX+")] [TestCase("Переходник с внутр. резьбой 20 1/2")] [TestCase("Переходник 16 1/2 ВР")] [TestCase("ПВР 16")] [TestCase("Переход ВР 16 1/2")] [TestCase("Муфта ВР 16 1/2")] public void AdapterInternalTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Переходник на внутреннюю резьбу")); } [TestCase("Труба stabil 16")] [TestCase("Труба stabil")] public void StabilPipeTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Stabil")); } [TestCase("Труба flex 16")] [TestCase("Труба flex")] public void FlexPipeTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Flex")); } [TestCase("Труба pink 16")] [TestCase("Труба pink")] public void PinkPipeTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Pink")); } [TestCase("Труба black 16")] [TestCase("Труба black")] public void BlackPipeTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Black")); } [TestCase("Труба канализационная")] [TestCase("Труба 110")] [TestCase("Труба 110 500")] public void WastePipeTest(string name) { Product p = new() { Name = name }; var prediction = _predEngine.Predict(p); Assert.That(prediction.Type, Is.EqualTo("Труба RAUPIANO")); } }