Coverage Summary for Class: Swift11RuGenerator (ru.eda.plgn.bizgen.core.generator.impl)

Class Class, % Method, % Branch, % Line, % Instruction, %
Swift11RuGenerator 100% (1/1) 100% (2/2) 100% (3/3) 100% (13/13)


 package ru.eda.plgn.bizgen.core.generator.impl
 
 import ru.eda.plgn.bizgen.core.generator.GeneratorResult
 import ru.eda.plgn.bizgen.core.generator.GeneratorResultWithEscape
 import ru.eda.plgn.bizgen.core.generator.GeneratorStr
 import ru.eda.plgn.bizgen.core.generator.impl.SwiftRuGeneratorInner.generate11
 import ru.eda.plgn.bizgen.core.generator.impl.SwiftRuGeneratorInner.generate8
 import kotlin.random.Random
 
 /**
  * **SWIFT-код российских банков.**
  *
  * *SWIFT-код (BIC, Bank Identifier Code) — это международный идентификатор банка, используемый для международных платежей.*
  *
  * Формат кода регулируется стандартом ISO 9362.
  *
  * SWIFT-код из 8 символов (буквы + цифры).
  *
  * Формат: AAAABBCC.
  * - *AAAA - Банковский код 4 симв.	Код банка или организации (только буквы)*
  * - *BB - Код страны 2 симв.	Код страны (ISO 3166, только буквы)*
  * - *CC - Код местоположения 2 симв.	Код города/региона (буквы/цифры)*
  *
  * @author Dmitry_Emelyanenko
  */
 class Swift8RuGenerator : GeneratorStr {
   override val uniqueDistance: Int = 3
 
   override fun generate(): GeneratorResult<String> = GeneratorResultWithEscape(data = generate8())
 }
 
 /**
  * **SWIFT-код российских банков.**
  *
  * *SWIFT-код (BIC, Bank Identifier Code) — это международный идентификатор банка, используемый для международных платежей.*
  *
  * Формат кода регулируется стандартом ISO 9362.
  *
  * SWIFT-код из 111 символов (буквы + цифры).
  *
  * Формат: AAAABBCC.
  * - *AAAA - Банковский код 4 симв.	Код банка или организации (только буквы)*
  * - *BB - Код страны 2 симв.	Код страны (ISO 3166, только буквы)*
  * - *CC - Код местоположения 2 симв.	Код города/региона (буквы/цифры)*
  * - *DDD - Код филиала 3 симв. (опционально)	Код отделения (XXX = головной офис)
  *
  * @author Dmitry_Emelyanenko
  */
 class Swift11RuGenerator : GeneratorStr {
   override val uniqueDistance: Int = 50
 
   override fun generate(): GeneratorResult<String> = GeneratorResultWithEscape(data = generate11())
 }
 
 private object SwiftRuGeneratorInner {
   fun generate8() = russianBankSwiftCodes.random()
 
   fun generate11() = russianBankSwiftCodes.random() + "%03d".format(Random.nextInt(1, 1_000))
 
 
   private val russianBankSwiftCodes = setOf(
     // Топ-20 федеральных банков
     "GAZPRUMM", // 1. Газпромбанк
     "SABRRUMM", // 2. Сбербанк
     "VTBRRUMM", // 3. ВТБ
     "RUAGRUMM", // 4. Россельхозбанк
     "ALFARUMM", // 5. Альфа-Банк
     "HYPTRUMM", // 6. Открытие
     "RZBKRUMM", // 7. Райффайзенбанк
     "SOVKRUMM", // 8. Совкомбанк
     "PSBKRUMM", // 9. Промсвязьбанк
     "TICSRUMM", // 10. Тинькофф
     "RSBNRUMM", // 11. Росбанк
     "CBGURUMM", // 12. ВБРР (Возрождение)
     "JSNLRUMM", // 13. Банк Санкт-Петербург
     "KREDRUMM", // 14. Кредит Европа Банк
     "MTUZRUMM", // 15. МТС-Банк
     "RNCBRUMM", // 16. Ренессанс Кредит
     "RUSSRUMM", // 17. Русский Стандарт
     "UNJCRUMM", // 18. ЮниКредит Банк
     "AVBKRUMM", // 19. Авангард
     "ESKRRUMM", // 20. Экспобанк
 
     // Крупные региональные банки
     "ZOLTRUMM", // 21. Зенит (Татарстан)
     "VLGKRUMM", // 22. Волго-Камский (Пермь)
     "UBLKRUMM", // 23. УБРиР (Екатеринбург)
     "RNBKRUMM", // 24. РНКБ (Крым)
     "PRMSRUMM", // 25. Примсоцбанк (Владивосток)
     "OLMDRUMM", // 26. Восточный (Хабаровск)
     "DOLNRUMM", // 27. Долинск (Сахалин)
     "KHKBRUMM", // 28. Хакасский (Абакан)
     "KURSRUMM", // 29. Курскпромбанк
     "CHELRUMM", // 30. Челябинвестбанк
 
     // Иностранные банки в РФ
     "CITIRUMM", // 31. Ситибанк
     "DEUTRUMM", // 32. Дойче Банк
     "BNPARUMM", // 33. BNP Paribas
     "INGBRUMM", // 34. ING Bank
     "HSBCRUMM", // 35. HSBC
     "OTPHRUMM", // 36. OTP Bank
     "CRLYRUMM", // 37. Credit Agricole
     "COBKRUMM", // 38. Commerzbank
     "GENORUMM", // 39. Дженерали Банк
     "JPMORUMM", // 40. J.P. Morgan
 
     // Нишевые и специализированные банки
     "QIWIRUMM", // 41. QIWI Банк
     "POISRUMM", // 42. Пойдём!
     "MIRBRUMM", // 43. Мир Бизнес Банк
     "RFFDRUMM", // 44. Росэксимбанк
     "VTBKRUMM", // 45. ВТБ Капитал
     "SBERRU8X", // 46. Сбер CIB (инвестиционный)
     "GAZPRU8X", // 47. Газпромбанк КИБ
     "ALFARU8X", // 48. Альфа КИБ
     "VTBKRU8X", // 49. ВТБ КИБ
     "RUACRUMM", // 50. РосАгроКредит
 
     // Дополнительные региональные банки
     "AKMBRUMM", // 51. АК Барс
     "BKRURUMM", // 52. БКР (Башкортостан)
     "TATRRUMM", // 53. Татфондбанк
     "UDMURUMM", // 54. Удмуртский
     "MBOGRUMM", // 55. Оргбанк
     "DVCCRUMM", // 56. Дальневосточный
     "NSVZRUMM", // 57. НС Банк (Новосибирск)
     "SLMKRUMM", // 58. Славия (Краснодар)
     "KLUCRUMM", // 59. Клюква (Калининград)
     "AMTBRUMM", // 60. Амта (Якутия)
 
     // Банки с особыми лицензиями
     "RUSMRUMM", // 61. Руснарбанк
     "EFGKRUMM", // 62. Эксперт Банк
     "FCOMRUMM", // 63. ФК Открытие
     "VESTRUMM", // 64. Веста (расчётный центр)
     "NSHKRUMM", // 65. Наш Банк
     "ELBKRUMM", // 66. Елизаветинский
     "PLATRUMM", // 67. Платина (эквайринг)
     "METRRUMM", // 68. Металлинвестбанк
     "INVKRUMM", // 69. Инвестторгбанк
     "EURARUMM", // 70. Евроазиатский
 
     // Малые и цифровые банки
     "MODNRUMM", // 71. Модный Банк
     "TOUCRUMM", // 72. Точка
     "DELORUMM", // 73. Дело Банк
     "SOLNRUMM", // 74. Солнце (Солар)
     "RUBLRUMM", // 75. Рублёв
     "DOBKRUMM", // 76. Добродел
     "ZEMKRUMM", // 77. Земский
     "SKOLRUMM", // 78. Сколково
     "INFKRUMM", // 79. Инфин
     "FIXIRUMM", // 80. Фикси
 
     // Исторические/переименованные
     "MDMKRUMM", // 81. МДМ Банк
     "PETZRUMM", // 82. Петрокоммерц (бывший)
     "NORDRUMM", // 83. Нордеа Банк (бывший ОРГРЭС)
     "MOSWRUMM", // 84. Мосстройэкономбанк
     "PERVRUMM", // 85. Первый Дортрансбанк
     "TRANRUMM", // 86. Транскапиталбанк
     "SMPLRUMM", // 87. СМП Банк (санация)
     "BINBRUMM", // 88. Бинбанк (санация)
     "FOTBRUMM", // 89. Фора-Банк (лицензия отозвана)
     "VEFKRUMM", // 90. ВЕФК (ликвидирован)
 
     // Расчетные/клиринговые центры
     "NCCLRUMM", // 91. НКО НКЦ (Национальный клиринговый центр)
     "CRDCRUMM", // 92. КРД (Клиринговый дом)
     "RTSBRUMM", // 93. РТС-Банк (расчетная система)
     "VTBCRUMM", // 94. ВТБ Клиринг
     "GPBKRU8X", // 95. ГПБ Клиринг
 
     // Специализированные финансовые институты
     "EXIARUMM", // 96. ЭКСАР (экспортное страхование)
     "RUSMRU8X", // 97. Росмединвест (медицинские проекты)
     "DOMBRUMM", // 98. Дом.РФ (ипотечный)
     "SVIZRUMM", // 99. Связь-Банк (почтовые услуги)
     "ROSNRUMM"  // 100. Роснефтебанк (топливный сектор)
   )
 }