Sha256: ae7c73925be3f373983219cf6dd49ea9d40585ed96a2e327b2205953a7303906

Contents?: true

Size: 1.07 KB

Versions: 26

Compression:

Stored size: 1.07 KB

Contents

ROW = 4
COL = 3


def split_ocr(ocr):
    return [[ocr[i][COL * j:COL * (j + 1)] for i in range(ROW)]
            for j in range(len(ocr[0]) // COL)]

ALL = ['    _  _     _  _  _  _  _  _ ',
       '  | _| _||_||_ |_   ||_||_|| |',
       '  ||_  _|  | _||_|  ||_| _||_|',
       '                              ']

OCR_LIST = split_ocr(ALL)
OCR_LIST = [OCR_LIST[-1]] + OCR_LIST[:9]


def number(ocr):
    if (len(ocr) != ROW or len(ocr[0]) % COL or
            any(len(r) != len(ocr[0]) for r in ocr)):
        raise ValueError('Wrong grid size.')
    numbers = split_ocr(ocr)
    digits = ''
    for n in numbers:
        try:
            digits += str(OCR_LIST.index(n))
        except ValueError:
            digits += '?'
    return digits


def grid(digits):
    try:
        if not digits.isdigit():
            raise ValueError('String should be numeric.')
    except AttributeError:
        raise ValueError('Argument should be a string.')
    ocr = ['' for i in range(ROW)]
    for d in digits:
        for r in range(ROW):
            ocr[r] += OCR_LIST[int(d)][r]
    return ocr

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
trackler-2.0.3.0 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.2.0 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.1.2 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.1.1 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.1.0 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.10 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.9 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.8 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.7 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.6 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.5 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.4 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.3 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.2 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.1 tracks/python/exercises/ocr-numbers/example.py
trackler-2.0.0.0 tracks/python/exercises/ocr-numbers/example.py
trackler-1.0.4.1 tracks/python/exercises/ocr-numbers/example.py
trackler-1.0.4.0 tracks/python/exercises/ocr-numbers/example.py
trackler-1.0.3.0 tracks/python/exercises/ocr-numbers/example.py
trackler-1.0.2.1 tracks/python/exercises/ocr-numbers/example.py