0
0

Update Misc External Adapter

This commit is contained in:
Serghei Cebotari 2023-10-03 21:43:15 +03:00
parent 9fabd57e79
commit 2f1a2459fa
7 changed files with 182 additions and 210 deletions

View File

@ -78,3 +78,19 @@
Переходник 50 НР Переходник на наружную резьбу Переходник 50 НР Переходник на наружную резьбу
Переходник 50 НР Переходник на наружную резьбу Переходник 50 НР Переходник на наружную резьбу
Переходник 63 НР Переходник на наружную резьбу Переходник 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+ Переходник на наружную резьбу

29
Data/tece_сoupling.txt Normal file
View File

@ -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, латунь Муфта соединительная

View File

@ -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");
}

View File

@ -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");
}

View File

@ -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: "Желоб");
}

View File

@ -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<Product, TypePrediction> _predEngine;
[SetUp]
public void Setup()
{
_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));
}
}

View File

@ -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<Product, TypePrediction> _predEngine;
[SetUp]
public void Setup()
{
_mlContext = new MLContext(seed: 0);
ITransformer loadedNodel = _mlContext.Model.Load(_dataPath, out var _);
_predEngine = _mlContext.Model.CreatePredictionEngine<Product, TypePrediction>(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"));
}
}