mirror of
https://github.com/crowlabs-hq/luna.git
synced 2026-06-21 04:02:30 +02:00
Luhn validation library for OCaml
- OCaml 74.7%
- Makefile 14.5%
- Dune 10.8%
| lib | ||
| test | ||
| .gitignore | ||
| dune-project | ||
| LICENSE | ||
| luna.opam | ||
| Makefile | ||
| README.md | ||
Luna
Luna is a validation library implementing the Luhn algorithm for OCaml.
Installation
To start using the library, you can install it via opam :
opam install luna
Usage
Luna can be used as follows:
Validating a number
let is_valid nb =
if Luna.validate nb then
Printf.printf "%s: Valid number !\n" nb
else Printf.printf "%s: Invalid number !\n" nb
let () =
is_valid "17893729974";
is_valid "28924292203"
(*
17893729974: Valid number !
28924292203: Invalid number !
*)
Calculating the check digit
Given s as the input number string, the check digit is the smallest digit (possibly zero) that can be added to s to make it Luhn-valid.
let get_digit nb =
let result = Luna.checksum_digit nb in
Printf.printf "The check digit for number %s is %d\n" nb result
let () =
get_digit "1789372997";
get_digit "28924292203"
(*
The check digit for number 1789372997 is 4
The check digit for number 28924292203 is 6
*)
License
This project is licensed under the MIT License - see the LICENSE file for details.