Four push

This commit is contained in:
2026-03-31 10:05:14 +05:00
parent 147acc195d
commit cd46c83af4
2 changed files with 63 additions and 1 deletions

62
Debug.txt Normal file
View File

@@ -0,0 +1,62 @@
string[] testMarks = {
// 1. Последовательная серия (проверка инкремента цифр)
"A001AA77", "A002AA77", "A003AA77", "A010AA77", "A099AA77", "A100AA77", "A500AA77", "A998AA77", "A999AA77",
// 2. Граничные переходы букв (A999AA -> B001AA)
"B999AA77", "X999AA77", "A999BA77", "A999XA77", "A999AX77", "X999XX77",
// 3. Разные регионы (2 и 3 знака)
"E555KK01", "M100HH02", "B777BB16", "T001TT99", "A123AA102", "X888XX177", "K001MK799", "C500CC190",
// 4. Группа случайных номеров для массовой проверки
"K123AB77", "M456BC77", "H789CE77", "P012EK77", "C345KH77", "T678HM77", "Y901MO77", "O234OP77",
"A567PC77", "B890CT77", "E111TY77", "K222YX77", "M333XA77", "H444XB77", "P555XE77", "C666XK77",
"T777XM77", "Y888XH77", "O999XO77", "A001XP77", "B010XC77", "E100XT77", "K200XY77", "M300XX77",
// 5. Номера с разными буквами (все 12 разрешенных)
"A111AA11", "B222BB22", "E333EE33", "K444KK44", "M555MM55", "H666HH66", "O777OO77", "P888PP88",
"C999CC99", "T100TT01", "Y200YY02", "X300XX03",
// 6. Еще немного из разных регионов (от 04 до 197)
"A001AA04", "B002BB05", "E003EE06", "K004KK07", "M005MM08", "H006HH09", "O007OO10", "P008PP11",
"C009CC12", "T010TT13", "Y011YY14", "X012XX15", "A013AA16", "B014BB17", "E015EE18", "K016KK19",
"M017MM21", "H018HH22", "O019OO23", "P020PP24", "C021CC25", "T022TT26", "Y023YY27", "X024XX28",
"A025AA29", "B026BB30", "E027EE31", "K028KK32", "M029MM33", "H030HH34", "O031OO35", "P032PP36",
"C033CC37", "T034TT38", "Y035YY39", "X036XX40", "A037AA41", "B038BB42", "E039EE43", "K040KK44",
"M041MM45", "H042HH46", "O043OO47", "P044PP48", "C045CC49", "T046TT50", "Y047YY51", "X048XX52",
"A100AA177", "B200BB197", "E300EE199", "K400KK777"
};
int i = 0;
int j = 0;
foreach (string v in testMarks)
{
bool isValid = REG_MARK_LIB.REG_MARK.CheckMark(v);
if (isValid)
{
i++;
// Генерируем границу: берем текущую серию (буквы) и ставим 999
// Пример: если v = "A123BC77", то rangeEnd будет "A999BC77"
string rangeEnd = $"{v[0]}999{v.Substring(4)}";
string nextMark = REG_MARK_LIB.REG_MARK.GetNextMarkAfter(v);
// В качестве rangeStart для метода логично передать сам v или следующий за ним
string nextInRange = REG_MARK_LIB.REG_MARK.GetNextMarkAfterInRange(v, v, rangeEnd);
Console.WriteLine($"Номер ТС: Верный");
Console.WriteLine($"Текущая марка: {v} \t Следующая марка: {nextMark}");
Console.WriteLine($"Интервал до {rangeEnd}: {nextInRange}");
}
else
{
j++;
Console.WriteLine($"Номер ТС: Не верный ({v})");
}
Console.WriteLine("--------------------------------------------------");
}
Console.WriteLine($"Успешно: {i}");
Console.WriteLine($"Не успешно: {j}");
Console.ReadLine();

View File

@@ -23,7 +23,7 @@ namespace REG_MARK_LIB
"174", "774", "177", "197", "199", "777", "797", "799", "178", "198", "778", "180", "181", "184", "185", "186", "196"
};
private static readonly char[] letters = { 'A', 'B', 'E', 'K', 'M', 'H', 'O', 'P', 'C', 'T', 'Y', 'X' };
private static string pattern = @"^[ABEKMHOPCTYXАВЕКМНОРСТУХ]\d{3}[ABEKMHOPCTYXАВЕКМНОРСТУХ]{2}\d{2,3}$";
private static string pattern = @"^[ABEKMHOPCTYXАВЕКМНОРСТУХ]\d{3}[ABEKMHOPCTYXАВЕКМНОРСТУХ]{2}(\d{2,3})$";
public static bool CheckMark(string mark)
{
if (string.IsNullOrEmpty(mark))