A practical Roman numerals implementation (also an example of Python project structure)
Switch branches/tags
Nothing to show
Clone or download
Latest commit c1fe87d Mar 5, 2015

README.rst

Rome

Overview

Rome is the first industrial-strength Roman numerals implementation for Python. It features Roman-to-Arabic and Arabic-to-Roman numerals convertion, as well as normalization of denormalized Roman numerals using unified object-oriented interface. It is developed using test-driven development, and features an extensive test-suite.

Installation

pip install rome==0.0.3

Usage

>>> from rome import Roman

>>> Roman('IX')
Roman('IX')

>>> str(Roman('IX'))
'IX'

>>> int(Roman('IX'))  # to Arabic numerals
9

>>> Roman('IX') == 9
True

>>> Roman('IX') + Roman('XI') == Roman('XX')
True

>>> Roman('XXI') - 13 == 8
True

>>> Roman(4)  # from Arabic numerals
Roman('IV')

>>> Roman(1903)
Roman('MCMIII')

>>> Roman('IIII')  # bring to normalized form
Roman('IV')

>>> Roman('MDCCCCLXXXXVIIII')
Roman('MCMXCIX')

>>> int(Roman('MCMXCIX'))
1999

>>> int(Roman('M cM xC iX'))  # spaces and mixed case are
...                           # allowed for readability
1999