New functions

This commit is contained in:
Felix Weiß
2023-07-23 15:29:29 +02:00
parent eec1479406
commit bf78156a9d
17 changed files with 701 additions and 175 deletions

View File

@@ -3,17 +3,64 @@ using Xunit;
using Xunit.Abstractions;
using MewtocolNet.Helpers;
using Newtonsoft.Json.Linq;
using System.Linq;
namespace MewtocolTests {
public class TestPlcTypeEnumDuplicates {
private readonly List<string[]> allowedSynonims = new() {
PlcType.FP1_0c9k__C14_C16.GetSynonims(),
PlcType.FPdM_2c7k__C20R_C20T_C32T.GetSynonims(),
PlcType.FPdM_5k__C20RC_C20TC_C32TC.GetSynonims(),
PlcType.FPdC_16k.GetSynonims(),
PlcType.FP10S_30k.GetSynonims(),
};
private readonly ITestOutputHelper output;
public TestPlcTypeEnumDuplicates(ITestOutputHelper output) {
this.output = output;
}
[Fact(DisplayName = "Check if the PLC type enums contain duplicates")]
public void NumericRegisterMewtocolIdentifiers() {
int nameCount = Enum.GetNames<PlcType>().Length;
int enumCount = Enum.GetValues<PlcType>().Cast<int>().Distinct().Count();
var groupedCodes = Enum.GetValues<PlcType>().Cast<int>().GroupBy(x => x);
foreach (var item in groupedCodes) {
if (item.Count() <= 1) continue;
output.WriteLine($"Code: {item.Key.ToString("X6")}");
var synonims = ((PlcType)item.Key).GetSynonims();
var sononymousGroup = allowedSynonims.FirstOrDefault(x => x.Contains(synonims.First()));
if (sononymousGroup == null) Assert.Fail($"The synonymous group doesn't exist ({synonims.First()})");
Assert.Equal(sononymousGroup.OrderBy(x => x).ToArray(), synonims.OrderBy(x => x).ToArray());
foreach (var syn in synonims) {
output.WriteLine($"Synonim: {syn}");
}
}
output.WriteLine($"Indivual names: {nameCount}");
output.WriteLine($"Indivual enums: {enumCount}");
}
}
}