File tree Expand file tree Collapse file tree 2 files changed +40
-2
lines changed
Expand file tree Collapse file tree 2 files changed +40
-2
lines changed Original file line number Diff line number Diff line change @@ -728,4 +728,25 @@ type Cardizer =
728728 [ 6 ; 7 ; 6 ; 7 ; 7 ; 0 ]
729729 [ 6 ; 7 ; 6 ; 7 ; 7 ; 4 ] ].[ Cardizer.next 3 ]
730730
731- Cardizer.GenerateCard prefix length
731+ Cardizer.GenerateCard prefix length
732+
733+ /// <summary >Returns a random UkrCard number.</summary >
734+ /// <returns >Random UkrCard number</returns >
735+ /// <example >
736+ /// This sample shows how to call the <see cref =" NextUkrCard " /> method.
737+ /// <code >
738+ /// void PrintUkrCard()
739+ /// {
740+ /// Console.WriteLine(Cardizer.NextUkrCard());
741+ /// }
742+ /// </code >
743+ /// </example >
744+ static member NextUkrCard ( [<Optional; DefaultParameterValue( From16To19.Random) >] ukrCardLengthOption ) =
745+ let length =
746+ match ukrCardLengthOption with
747+ | From16To19.Random -> Cardizer.NextInRange 16 19
748+ | _ -> int ukrCardLengthOption
749+
750+ let prefix = Cardizer.NextSeqInRange 60400100 60420099
751+
752+ Cardizer.GenerateCard prefix length
Original file line number Diff line number Diff line change @@ -433,4 +433,21 @@ let ``Should generate valid Maestro UK`` length expectedLength =
433433
434434 prefixInRange |> should be True
435435 card |> should haveLength expectedLength
436- card |> luhn |> should be LuhnCheck
436+ card |> luhn |> should be LuhnCheck
437+
438+ [<Theory>]
439+ [<InlineData( From16To19.Sixteen, 16 ) >]
440+ [<InlineData( From16To19.Seventeen, 17 ) >]
441+ [<InlineData( From16To19.Eighteen, 18 ) >]
442+ [<InlineData( From16To19.Nineteen, 19 ) >]
443+ let ``Should generate valid UkrCard`` length expectedLength =
444+ let card = Cardizer.NextUkrCard length
445+
446+ let start = card.Substring( 0 , 8 ) |> int
447+
448+ let prefixInRange =
449+ ( start >= 60400100 && start <= 60420099 )
450+
451+ prefixInRange |> should be True
452+ card |> should haveLength expectedLength
453+ card |> luhn |> should be LuhnCheck
You can’t perform that action at this time.
0 commit comments