signed_overpunch v0.2.0 SignedOverpunch View Source

Module for converting a string in signed overpunch format into the corresponding integer.

Conversion Table:

CodeDigitSign
}0
J1
K2
L3
M4
N5
O6
P7
Q8
R9
{0+
A1+
B2+
C3+
D4+
E5+
F6+
G7+
H8+
I9+

Link to this section Summary

Functions

Converts a string in signed overpunch format to an integer

Converts a string in signed overpunch format to an integer

Converts an integer to signed overpunch format

Converts an integer to signed overpunch format

Link to this section Functions

Converts a string in signed overpunch format to an integer.

If successful, returns a tuple in the form of {:ok, integer}. Otherwise, it returns :error.

Examples

iex> SignedOverpunch.convert("100{")
{:ok, 1000}

iex> SignedOverpunch.convert("100}")
{:ok, -1000}

iex> SignedOverpunch.convert("00I")
{:ok, 9}

iex> SignedOverpunch.convert("000")
:error

iex> SignedOverpunch.convert("GOTCHA")
:error

Converts a string in signed overpunch format to an integer.

Similar to SignedOverpunch.convert/1, but raises an ArgumentError if the input provided is not valid signed overpunch.

Examples

iex> SignedOverpunch.convert!("100{")
1000

iex> SignedOverpunch.convert!("100}")
-1000

iex> SignedOverpunch.convert!("00I")
9

iex> SignedOverpunch.convert!("000")
** (ArgumentError) invalid signed overpunch value: 000

iex> SignedOverpunch.convert!("GOTCHA")
** (ArgumentError) invalid signed overpunch value: GOTCHA

Converts an integer to signed overpunch format.

If successful, returns a tuple in the form of {:ok, string}. Otherwise, it returns :error.

Examples

iex> SignedOverpunch.to_s(1000)
{:ok, "100{"}

iex> SignedOverpunch.to_s(-1000)
{:ok, "100}"}

iex> SignedOverpunch.to_s(9)
{:ok, "I"}

iex> SignedOverpunch.to_s("GOTCHA")
:error

Converts an integer to signed overpunch format.

Similar to SignedOverpunch.to_string/1, but raises an ArgumentError if the input provided is not an integer.

Examples

iex> SignedOverpunch.to_s!(1000)
"100{"

iex> SignedOverpunch.to_s!(-1000)
"100}"

iex> SignedOverpunch.to_s!(9)
"I"

iex> SignedOverpunch.to_s!("000")
** (ArgumentError) invalid integer: 000

iex> SignedOverpunch.to_s!("GOTCHA")
** (ArgumentError) invalid integer: GOTCHA

iex> SignedOverpunch.to_s!(10.0)
** (ArgumentError) invalid integer: 10.0