%load_ext ipynbtester from isopsephy import isopsephy, to_roman, to_greek, preprocess_roman, preprocess_greek, IsopsephyException, \ find_cumulative_indices, find, char_table, digital_root, digital_sum, digital_product # all supported greek letters greek_letters = "α,Α,β,Β,γ,Γ,δ,Δ,ε,Ε,ϛ,Ϛ,Ϝ,ϝ,ζ,Ζ,η,Η,θ,Θ,ι,Ι,υ,ϒ,κ,Κ,ϡ,Ϡ,Ͳ,ͳ,λ,Λ,ω,Ω,μ,Μ,τ,Τ,ν,Ν,ξ,Ξ,ο,Ο,σ,Σ,Ϲ,ϲ,ς,π,Π,χ,Χ,ϙ,Ϙ,Ϟ,ϟ,ρ,Ρ,ψ,Ψ,φ,Φ".split(',') # all supported roman letters roman_letters = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUwWxXyYzZ".split(',') # john 1:1 verse = "Eν αρχη ην ο Λογος και ο Λογος ην προς τον Θεον και Θεος ην ο Λογος" def set_up(): pass def test_every_supported_greek_letter_isopsephy_is_int(): set_up() for letter in greek_letters: assert type(isopsephy(letter)) == int def test_total_isopsephy_of_all_supported_greek_letters(): set_up() #assert isopsephy(''.join(greek_letters)) == 13282 assert isopsephy(''.join(greek_letters)) == 12582 def test_total_isopsephy_of_all_supported_roman_letters(): set_up() assert isopsephy(''.join(roman_letters)) == 8374 def test_every_supported_roman_letter_isopsephy_is_int(): set_up() for letter in roman_letters: assert type(isopsephy(letter)) == int def test_unsupported_roman_letters_isopsephy(): set_up() for letter in ['v']: try: isopsephy(letter) assert False except IsopsephyException: assert True def test_unsupported_letters_isopsephy(): set_up() for letter in ['0', '9', 'ö', 'я']: try: isopsephy(letter) assert False except IsopsephyException: assert True def test_space_isopsephy(): set_up() assert isopsephy(' ') == 0 accents = "ώ,ύ,ό,ϋ,ϊ,ἁ,ά,έ,ή,ί,ΰ,Έ,Ή,Ί,Ό,Ύ,Ώ,Ά,ΐ,Ὑ,Ὓ,Ὕ,Ὗ,ὑ,ὐ,ὓ,ὒ,ὕ,ὔ,ὗ,ὖ,Ὁ,Ὀ,Ὃ,Ὂ,Ὅ,Ὄ,ὁ,ὀ,ὃ,ὂ,ὅ,ὄ,ὸ,ὺ,ὼ,ὰ,ὲ,ὴ,ὶ,Ὡ,Ὠ,Ὣ,Ὢ,Ὥ,Ὤ,Ὧ,Ὦ,ὡ,ὠ,ὣ,ὢ,ὥ,ὤ,ὧ,ὦ,Ἔ,Ἕ,Ἒ,Ἓ,Ἐ,Ἑ,ἔ,ἕ,ἒ,ἓ,ἐ,ἑ,Ἆ,Ἇ,Ἄ,Ἅ,Ἂ,Ἃ,Ἀ,Ἁ,ἆ,ἇ,ἄ,ἅ,ἂ,ἃ,ἀ,ῲ,Ἶ,Ἷ,Ἴ,Ἵ,Ἲ,Ἳ,Ἰ,Ἱ,ἶ,ἷ,ἴ,ἵ,ἲ,ἳ,ἰ,ἱ,Ἦ,Ἧ,Ἤ,Ἥ,Ἢ,Ἣ,Ἠ,Ἡ,ἦ,ἧ,ἤ,ἥ,ἢ,ἣ,ἠ,ἡ,ῗ,ῖ,ῒ,Ὶ,ῇ,ῆ,ῄ,ῃ,ῂ,ῌ,Ὴ,Ὲ,ῷ,ῶ,ῴ,ῳ,î,ì,ῼ,Ὼ,Ὸ,ῧ,ῦ,ù,ῤ,ῢ,ῡ,ῠ,ó,ò,Ῥ,Ὺ,Ῡ,ô,ᾔ,ᾕ,ᾖ,ᾗ,ᾐ,ᾑ,ᾒ,ᾓ,ᾜ,ᾝ,ᾞ,ᾟ,ᾘ,ᾙ,ᾚ,ᾛ,ᾄ,ᾅ,ᾆ,ᾇ,ᾀ,ᾁ,ᾂ,ᾃ,ᾌ,ᾍ,ᾎ,ᾏ,ᾈ,ᾉ,ᾊ,ᾋ,ᾴ,ᾶ,ᾷ,ᾲ,ᾳ,ᾼ,Ὰ,ᾤ,ᾥ,ᾦ,ᾧ,ᾠ,ᾡ,ᾢ,ᾣ,ᾬ,ᾭ,ᾮ,ᾯ,ᾨ,ᾩ,ᾪ,ᾫ,ῥ" def test_all_accents(): set_up() x = preprocess_greek(''.join(accents.split(','))) #assert isopsephy(x) == 45958 assert isopsephy(x) == 46688 def test_word_isopsephy(): set_up() # isopsephia assert isopsephy("ισοψηφια") == 1499 def test_phrase_isopsephy(): set_up() # john 1:1 assert isopsephy(verse) == 3617 def test_phrase_isopsephy_via_read_file(): set_up() filename = "./john1_1.txt" with open (filename, "r") as resource: data = resource.read().replace('\n', '') assert isopsephy(data) == 3617 def test_seven_vowels_isopsephy(): set_up() assert isopsephy("αεηιουω") == 1294 def test_three_numerals_isopsephy(): set_up() assert isopsephy("ϛϙϡ") == 996 def test_seventeen_consonants_isopsephy(): set_up() assert isopsephy("βγδζθκλμνξπρστφχψ") == 2705 def test_twentyfour_non_numerals_isopsephy(): set_up() assert isopsephy("αεηιουωβγδζθκλμνξπρστφχψ") == 3999 def test_greek_to_roman(): set_up() assert to_roman(''.join(greek_letters)) == "aAbBgGdDeEwWWwzZêÊhHiIuUkKjJJjlLôÔmMtTnNcCoOsSSsspPxXqQQqrRyYfF" def test_preprocess_roman(): set_up() assert preprocess_roman("abcdefghijklmnopqrstuvwxyz0123456789") == "abcdefghijklmnopqrstuwxyz" def test_preprocess_greek(): set_up() assert preprocess_greek("öΖώ9") == "Ζω" def test_small_roman_letters_to_greek(): set_up() assert to_greek("abcdeêfghiklmnoôpqrstuwxyz") == "αβξδεηφγθικλμνοωπϙρστυϝχψζ" def test_capital_roman_letters_to_greek(): set_up() assert to_greek("ABCDEÊFGHIJKLMNOÔPQRSTUWXYZ") == "ΑΒΞΔΕΗΦΓΘΙϠΚΛΜΝΟΩΠϘΡΣΤΥϜΧΨΖ" def test_unsupported_roman_letters_to_greek(): set_up() assert to_greek("abc123") == "αβξ123" def test_find(): set_up() assert find(verse, 373) == ['Λογος', 'Λογος', 'Λογος'] def test_find_cumulative(): set_up() assert find(verse, 443, cumulative=True) == ['ο Λογος', 'ο Λογος', 'και Θεος ην ο', 'ο Λογος'] def test_find_indices(): set_up() assert find_cumulative_indices(map(isopsephy, verse.split()), 443) == [[3,4],[6,7],[12,13,14,15],[15,16]] def test_digital_root(): set_up() assert digital_root(123456789) == 9 def test_digital_sum(): set_up() assert digital_sum(123456789) == 45 def test_digital_product(): set_up() assert digital_product(123456789) == 362880 def test_char_table(): set_up() assert str(char_table('ο Λογος')) == '
ο Λογος
ο  Λογος
70 7373 4
443 11 / 2
oLogos
703070370200
' %runaway from IPython.core.display import HTML with open('isopsephy.css') as f: css = f.read() HTML('' % css)