diff --git a/Data/misc_adapter_external.txt b/Data/misc_adapter_external.txt index ef4742c..313fd35 100644 --- a/Data/misc_adapter_external.txt +++ b/Data/misc_adapter_external.txt @@ -78,3 +78,19 @@ Переходник 50 НР Переходник на наружную резьбу Переходник 50 НР Переходник на наружную резьбу Переходник 63 НР Переходник на наружную резьбу +Переходник на резьбу 16-R 1/2 RX+ Переходник на наружную резьбу +Переходник на резьбу 16-R 3/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 16-R 1 RX+ Переходник на наружную резьбу +Переходник на резьбу 20-R 1/2 RX+ Переходник на наружную резьбу +Переходник на резьбу 20-R 3/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 20-R 1 RX+ Переходник на наружную резьбу +Переходник на резьбу 25-R 1/2 RX+ Переходник на наружную резьбу +Переходник на резьбу 25-R 3/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 25-R 1 RX+ Переходник на наружную резьбу +Переходник на резьбу 32-R 3/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 32-R 1 RX+ Переходник на наружную резьбу +Переходник на резьбу 32-R 1 1/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 40-R 1 1/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 50-R 1 1/4 RX+ Переходник на наружную резьбу +Переходник на резьбу 50-R 1 1/2 RX+ Переходник на наружную резьбу +Переходник на резьбу 63-R 2 RX+ Переходник на наружную резьбу diff --git a/Data/tece_сoupling.txt b/Data/tece_сoupling.txt new file mode 100644 index 0000000..216bd2c --- /dev/null +++ b/Data/tece_сoupling.txt @@ -0,0 +1,29 @@ +Соединение труба-труба 16/16, бронза Муфта соединительная +Соединение труба-труба 20/20, бронза Муфта соединительная +Соединение труба-труба 25/25, бронза Муфта соединительная +Соединение труба-труба 32/32, бронза Муфта соединительная +Соединение труба-труба 40/40, бронза Муфта соединительная +Соединение труба-труба 50/50, бронза Муфта соединительная +Соединение труба-труба 63/63, бронза Муфта соединительная +Соединение труба-труба 16/16, латунь Муфта соединительная +Соединение труба-труба 20/20, латунь Муфта соединительная +Соединение труба-труба 25/25, латунь Муфта соединительная +Соединение труба-труба 32/32, латунь Муфта соединительная +Соединение труба-труба 40/40, латунь Муфта соединительная +Соединение труба-труба 50/50, латунь Муфта соединительная +Соединение труба-труба 63/63, латунь Муфта соединительная +Соединение труба-труба редукционное, 20 х 16, бронза Муфта соединительная +Соединение труба-труба редукционное, 25 х 16, бронза Муфта соединительная +Соединение труба-труба редукционное, 25 х 20, бронза Муфта соединительная +Соединение труба-труба редукционное, 32 х 20, бронза Муфта соединительная +Соединение труба-труба редукционное, 32 х 25, бронза Муфта соединительная +Соединение труба-труба редукционное, 40 х 32, бронза Муфта соединительная +Соединение труба-труба редукционное, 50 х 40, бронза Муфта соединительная +Соединение труба-труба редукционное, 63 х 50, бронза Муфта соединительная +Соединение труба-труба редукционное, 20 х 16, латунь Муфта соединительная +Соединение труба-труба редукционное, 25 х 16, латунь Муфта соединительная +Соединение труба-труба редукционное, 25 х 20, латунь Муфта соединительная +Соединение труба-труба редукционное, 32 х 20, латунь Муфта соединительная +Соединение труба-труба редукционное, 32 х 25, латунь Муфта соединительная +Соединение труба-труба редукционное, 40 х 32, латунь Муфта соединительная +Соединение труба-труба редукционное, 50 х 40, латунь Муфта соединительная diff --git a/RhSolutions.ML.Tests/RaupianoTests.cs b/RhSolutions.ML.Tests/RaupianoTests.cs new file mode 100644 index 0000000..5dceb2c --- /dev/null +++ b/RhSolutions.ML.Tests/RaupianoTests.cs @@ -0,0 +1,16 @@ +namespace RhSolutions.ML.Tests; + +public class RaupianoTests : RhSolutionsTests +{ + [TestCase("Труба канализационная")] + [TestCase("Труба 110")] + [TestCase("Труба 110 500")] + public void WastePipeTest(string name) + => Execute(name, expectedGroup: "Труба RAUPIANO"); + + [TestCase("Тройник 50/50/45")] + [TestCase("Тройник 50/50/45°")] + [TestCase("Тройник 50 50 45")] + public void WastePipeBranchTest(string name) + => Execute(name, expectedGroup: "Тройник RAUPIANO"); +} diff --git a/RhSolutions.ML.Tests/RautitanFittingsTests.cs b/RhSolutions.ML.Tests/RautitanFittingsTests.cs new file mode 100644 index 0000000..376d7db --- /dev/null +++ b/RhSolutions.ML.Tests/RautitanFittingsTests.cs @@ -0,0 +1,65 @@ +namespace RhSolutions.ML.Tests; +public class RautitanFittingsTests : RhSolutionsTests +{ + [TestCase("Гильза 16")] + [TestCase("Пресс-втулка")] + public void SleevesTest(string name) + => Execute(name, expectedGroup: "Монтажная гильза"); + + [TestCase("Тройник 20")] + [TestCase("Тройник 20-16-16")] + [TestCase("Тройник 20х20х20")] + [TestCase("Тройник 32*32*32")] + [TestCase("Тройник 50-50-32")] + [TestCase("Тройник, 40 - 20 - 40")] + [TestCase("Тройник, 50 - 32 - 50")] + public void TPieceTest(string name) + => Execute(name, expectedGroup: "Тройник RAUTITAN"); + + [TestCase("Муфта соединительная равнопроходная 16 PX")] + [TestCase("Муфта соединительная переходная 25-16")] + [TestCase("Муфта 16")] + [TestCase("Переход 20-16")] + [TestCase("Переходник 20-16")] + [TestCase("Соединение труба-труба 50/50")] + [TestCase("Соединение труба-труба редукционное, 25 х 16")] + public void CouplingTest(string name) + => Execute(name, expectedGroup: "Муфта соединительная"); + + [TestCase("Переходник с наружной резьбой 20-R 3/4 RX+")] + [TestCase("Переходник с наружн. резьбой 20 1/2")] + [TestCase("Переходник 16 1/2 НР")] + [TestCase("ПНР 16")] + [TestCase("Переход НР 16 1/2")] + [TestCase("Муфта НР 16 1/2")] + [TestCase("Соединение прямое с ниппелем")] + [TestCase("Переходник на резьбу 20 1/2")] + [TestCase("переходник наружная резьба 16 1/2")] + public void AdapterExternalTest(string name) + => Execute(name, expectedGroup: "Переходник на наружную резьбу"); + + [TestCase("Переходник с внутренней резьбой 20-Rp 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) + => Execute(name, expectedGroup: "Переходник на внутреннюю резьбу"); + + [TestCase("Переходник с накидной гайкой 16-G 1/2 RX+")] + [TestCase("Переходник с накидн. гайкой 16 1/2")] + [TestCase("Переходник 16 1/2 НГ")] + [TestCase("ПНГ 16")] + [TestCase("Переход НГ 16 1/2")] + [TestCase("Муфта НГ 16 1/2")] + [TestCase("штуцер с накидной гайкой")] + public void AdapterScrewcapTest(string name) + => Execute(name, expectedGroup: "Переходник с накидной гайкой"); + + [TestCase("Угольник 16")] + [TestCase("Угольник 16 90")] + [TestCase("Угольник 50 45")] + public void ElbowTest(string name) + => Execute(name, expectedGroup: "Угольник RAUTITAN"); +} \ No newline at end of file diff --git a/RhSolutions.ML.Tests/RautitanPipesTests.cs b/RhSolutions.ML.Tests/RautitanPipesTests.cs new file mode 100644 index 0000000..c03782f --- /dev/null +++ b/RhSolutions.ML.Tests/RautitanPipesTests.cs @@ -0,0 +1,29 @@ +namespace RhSolutions.ML.Tests; + +public class RautitanPipesTests : RhSolutionsTests +{ + [TestCase("Труба stabil 16")] + [TestCase("Труба stabil")] + public void StabilPipeTest(string name) + => Execute(name, expectedGroup: "Stabil"); + + [TestCase("Труба flex 16")] + [TestCase("Труба flex")] + public void FlexPipeTest(string name) + => Execute(name, expectedGroup: "Flex"); + + [TestCase("Труба pink 16")] + [TestCase("Труба pink")] + public void PinkPipeTest(string name) + => Execute(name, expectedGroup: "Pink"); + + [TestCase("Труба black 16")] + [TestCase("Труба black")] + public void BlackPipeTest(string name) + => Execute(name, expectedGroup: "Black"); + + [TestCase("Фиксирующий желоб 16")] + [TestCase("Желоб 16")] + public void SupportingClipTest(string name) + => Execute(name, expectedGroup: "Желоб"); +} diff --git a/RhSolutions.ML.Tests/RhSolutionsTests.cs b/RhSolutions.ML.Tests/RhSolutionsTests.cs new file mode 100644 index 0000000..e1ec8f4 --- /dev/null +++ b/RhSolutions.ML.Tests/RhSolutionsTests.cs @@ -0,0 +1,27 @@ +namespace RhSolutions.ML.Tests; + +public abstract class RhSolutionsTests +{ + protected static string _appPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]) ?? "."; + protected static string _dataPath = Path.Combine(_appPath, "..", "..", "..", "..", "Models", "model.zip"); + protected MLContext _mlContext; + protected PredictionEngine _predEngine; + + [SetUp] + public void Setup() + { + _mlContext = new MLContext(seed: 0); + ITransformer loadedNodel = _mlContext.Model.Load(_dataPath, out var _); + _predEngine = _mlContext.Model.CreatePredictionEngine(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)); + } +} \ No newline at end of file diff --git a/RhSolutions.ML.Tests/Tests.cs b/RhSolutions.ML.Tests/Tests.cs deleted file mode 100644 index b1b2fd4..0000000 --- a/RhSolutions.ML.Tests/Tests.cs +++ /dev/null @@ -1,210 +0,0 @@ -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")] - [TestCase("Тройник, 40 - 20 - 40")] - [TestCase("Тройник, 50 - 32 - 50")] - 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°")] - [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")] - [TestCase("Соединение прямое с ниппелем")] - public void AdapterExternalTest(string name) - { - Product p = new() - { - Name = name - }; - var prediction = _predEngine.Predict(p); - Assert.That(prediction.Type, Is.EqualTo("Переходник на наружную резьбу")); - } - - [TestCase("Переходник с внутренней резьбой 20-Rp 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("Переходник с накидной гайкой 16-G 1/2 RX+")] - [TestCase("Переходник с накидн. гайкой 16 1/2")] - [TestCase("Переходник 16 1/2 НГ")] - [TestCase("ПНГ 16")] - [TestCase("Переход НГ 16 1/2")] - [TestCase("Муфта НГ 16 1/2")] - [TestCase("штуцер с накидной гайкой")] - public void AdapterScrewcapTest(string name) - { - Product p = new() - { - Name = name - }; - var prediction = _predEngine.Predict(p); - Assert.That(prediction.Type, Is.EqualTo("Переходник с накидной гайкой")); - } - - [TestCase("Угольник 16")] - [TestCase("Угольник 16 90")] - [TestCase("Угольник 50 45")] - public void ElbowTest(string name) - { - Product p = new() - { - Name = name - }; - var prediction = _predEngine.Predict(p); - Assert.That(prediction.Type, Is.EqualTo("Угольник RAUTITAN")); - } - - [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("Фиксирующий желоб 16")] - [TestCase("Желоб 16")] - public void SupportingClipTest(string name) - { - Product p = new() - { - Name = name - }; - var prediction = _predEngine.Predict(p); - Assert.That(prediction.Type, Is.EqualTo("Желоб")); - } - - [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")); - } -} \ No newline at end of file