summaryrefslogtreecommitdiff
path: root/examples/romanNumerals.py
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2019-10-31 21:10:28 -0700
committerPaul McGuire <ptmcg@users.noreply.github.com>2019-10-31 23:10:28 -0500
commit53d1b4a6f48a53c4c4ec4ac7031362b691c0366d (patch)
tree088ad3cf3561b78a00af4fb2fd474f4a2b8ca70c /examples/romanNumerals.py
parent41752aa52cc97c710474bb2972cceab057b52ad4 (diff)
downloadpyparsing-git-53d1b4a6f48a53c4c4ec4ac7031362b691c0366d.tar.gz
Blacken the project (#141)
Diffstat (limited to 'examples/romanNumerals.py')
-rw-r--r--examples/romanNumerals.py56
1 files changed, 39 insertions, 17 deletions
diff --git a/examples/romanNumerals.py b/examples/romanNumerals.py
index 757a925..932daa6 100644
--- a/examples/romanNumerals.py
+++ b/examples/romanNumerals.py
@@ -5,26 +5,40 @@
import pyparsing as pp
+
def romanNumeralLiteral(numeralString, value):
return pp.Literal(numeralString).setParseAction(pp.replaceWith(value))
-one = romanNumeralLiteral("I", 1)
-four = romanNumeralLiteral("IV", 4)
-five = romanNumeralLiteral("V", 5)
-nine = romanNumeralLiteral("IX", 9)
-ten = romanNumeralLiteral("X", 10)
-forty = romanNumeralLiteral("XL", 40)
-fifty = romanNumeralLiteral("L", 50)
-ninety = romanNumeralLiteral("XC", 90)
-onehundred = romanNumeralLiteral("C", 100)
+
+one = romanNumeralLiteral("I", 1)
+four = romanNumeralLiteral("IV", 4)
+five = romanNumeralLiteral("V", 5)
+nine = romanNumeralLiteral("IX", 9)
+ten = romanNumeralLiteral("X", 10)
+forty = romanNumeralLiteral("XL", 40)
+fifty = romanNumeralLiteral("L", 50)
+ninety = romanNumeralLiteral("XC", 90)
+onehundred = romanNumeralLiteral("C", 100)
fourhundred = romanNumeralLiteral("CD", 400)
fivehundred = romanNumeralLiteral("D", 500)
ninehundred = romanNumeralLiteral("CM", 900)
onethousand = romanNumeralLiteral("M", 1000)
-numeral = (onethousand | ninehundred | fivehundred | fourhundred
- | onehundred | ninety | fifty | forty | ten | nine | five
- | four | one).leaveWhitespace()
+numeral = (
+ onethousand
+ | ninehundred
+ | fivehundred
+ | fourhundred
+ | onehundred
+ | ninety
+ | fifty
+ | forty
+ | ten
+ | nine
+ | five
+ | four
+ | one
+).leaveWhitespace()
romanNumeral = numeral[1, ...].setParseAction(sum)
@@ -52,8 +66,9 @@ def makeRomanNumeral(n):
n, ret = addDigits(n, 1, "I", ret)
return ret
+
# make a string of all roman numerals from I to MMMMM
-tests = " ".join(makeRomanNumeral(i) for i in range(1, 5000+1))
+tests = " ".join(makeRomanNumeral(i) for i in range(1, 5000 + 1))
# parse each roman numeral, and populate map for validation below
roman_int_map = {}
@@ -63,17 +78,24 @@ for expected, (t, s, e) in enumerate(romanNumeral.scanString(tests), start=1):
print("{} {} {}".format("==>", t, orig))
roman_int_map[orig] = t[0]
+
def verify_value(s, tokens):
expected = roman_int_map[s]
if tokens[0] != expected:
- raise Exception("incorrect value for {} ({}), expected {}".format(s, tokens[0], expected ))
+ raise Exception(
+ "incorrect value for {} ({}), expected {}".format(s, tokens[0], expected)
+ )
+
-romanNumeral.runTests("""\
+romanNumeral.runTests(
+ """\
XVI
XXXIX
XIV
XIX
MCMLXXX
MMVI
- """, fullDump=False,
- postParse=verify_value)
+ """,
+ fullDump=False,
+ postParse=verify_value,
+)