Sha256: ab482977218273220ea8a38cb88b86701ff3fdff54d1b02e989f632133bf0bec

Contents?: true

Size: 1.07 KB

Versions: 254

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

254 entries across 254 versions & 1 rubygems

Version Path
trackler-2.2.1.62 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.61 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.60 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.59 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.58 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.57 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.56 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.55 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.54 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.53 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.52 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.51 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.50 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.49 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.48 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.47 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.46 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.45 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.44 tracks/python/exercises/ocr-numbers/example.py
trackler-2.2.1.43 tracks/python/exercises/ocr-numbers/example.py