{ "metadata": { "name": "", "signature": "sha256:3e20a13a53ac81141303078fc09ae29e13de014829ecadd5686f48f0d9429025" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Isopsephy test cases\n", "\n", "See [Isopsephy project from GitHub](https://github.com/markomanninen/isopsephy) for more information about the library itself." ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Load ipynbtester script" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%load_ext ipynbtester" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "The ipynbtester module is not an IPython extension.\n" ] } ], "prompt_number": 1 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Import functions for tests" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from isopsephy import isopsephy, to_roman, to_greek, preprocess_roman, preprocess_greek, IsopsephyException, \\\n", " find_cumulative_indices, find, char_table, digital_root, digital_sum, digital_product" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Define tests" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# all supported greek letters\n", "greek_letters = \"\u03b1,\u0391,\u03b2,\u0392,\u03b3,\u0393,\u03b4,\u0394,\u03b5,\u0395,\u03db,\u03da,\u03dc,\u03dd,\u03b6,\u0396,\u03b7,\u0397,\u03b8,\u0398,\u03b9,\u0399,\u03c5,\u03d2,\u03ba,\u039a,\u03e1,\u03e0,\u0372,\u0373,\u03bb,\u039b,\u03c9,\u03a9,\u03bc,\u039c,\u03c4,\u03a4,\u03bd,\u039d,\u03be,\u039e,\u03bf,\u039f,\u03c3,\u03a3,\u03f9,\u03f2,\u03c2,\u03c0,\u03a0,\u03c7,\u03a7,\u03d9,\u03d8,\u03de,\u03df,\u03c1,\u03a1,\u03c8,\u03a8,\u03c6,\u03a6\".split(',')\n", "# all supported roman letters\n", "roman_letters = \"aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUwWxXyYzZ\".split(',')\n", "# john 1:1\n", "verse = \"E\u03bd \u03b1\u03c1\u03c7\u03b7 \u03b7\u03bd \u03bf \u039b\u03bf\u03b3\u03bf\u03c2 \u03ba\u03b1\u03b9 \u03bf \u039b\u03bf\u03b3\u03bf\u03c2 \u03b7\u03bd \u03c0\u03c1\u03bf\u03c2 \u03c4\u03bf\u03bd \u0398\u03b5\u03bf\u03bd \u03ba\u03b1\u03b9 \u0398\u03b5\u03bf\u03c2 \u03b7\u03bd \u03bf \u039b\u03bf\u03b3\u03bf\u03c2\"\n", "\n", "def set_up():\n", " pass\n", "\n", "def test_every_supported_greek_letter_isopsephy_is_int():\n", " set_up()\n", " for letter in greek_letters:\n", " assert type(isopsephy(letter)) == int\n", "\n", "def test_total_isopsephy_of_all_supported_greek_letters():\n", " set_up()\n", " #assert isopsephy(''.join(greek_letters)) == 13282\n", " assert isopsephy(''.join(greek_letters)) == 12582\n", "\n", "def test_total_isopsephy_of_all_supported_roman_letters():\n", " set_up()\n", " assert isopsephy(''.join(roman_letters)) == 8374\n", "\n", "def test_every_supported_roman_letter_isopsephy_is_int():\n", " set_up()\n", " for letter in roman_letters:\n", " assert type(isopsephy(letter)) == int\n", " \n", "def test_unsupported_roman_letters_isopsephy():\n", " set_up()\n", " for letter in ['v']:\n", " try:\n", " isopsephy(letter)\n", " assert False\n", " except IsopsephyException:\n", " assert True\n", "\n", "def test_unsupported_letters_isopsephy():\n", " set_up()\n", " for letter in ['0', '9', '\u00f6', '\u044f']:\n", " try:\n", " isopsephy(letter)\n", " assert False\n", " except IsopsephyException:\n", " assert True\n", "\n", "def test_space_isopsephy():\n", " set_up()\n", " assert isopsephy(' ') == 0\n", "\n", "accents = \"\u03ce,\u03cd,\u03cc,\u03cb,\u03ca,\u1f01,\u03ac,\u03ad,\u03ae,\u03af,\u03b0,\u0388,\u0389,\u038a,\u038c,\u038e,\u038f,\u0386,\u0390,\u1f59,\u1f5b,\u1f5d,\u1f5f,\u1f51,\u1f50,\u1f53,\u1f52,\u1f55,\u1f54,\u1f57,\u1f56,\u1f49,\u1f48,\u1f4b,\u1f4a,\u1f4d,\u1f4c,\u1f41,\u1f40,\u1f43,\u1f42,\u1f45,\u1f44,\u1f78,\u1f7a,\u1f7c,\u1f70,\u1f72,\u1f74,\u1f76,\u1f69,\u1f68,\u1f6b,\u1f6a,\u1f6d,\u1f6c,\u1f6f,\u1f6e,\u1f61,\u1f60,\u1f63,\u1f62,\u1f65,\u1f64,\u1f67,\u1f66,\u1f1c,\u1f1d,\u1f1a,\u1f1b,\u1f18,\u1f19,\u1f14,\u1f15,\u1f12,\u1f13,\u1f10,\u1f11,\u1f0e,\u1f0f,\u1f0c,\u1f0d,\u1f0a,\u1f0b,\u1f08,\u1f09,\u1f06,\u1f07,\u1f04,\u1f05,\u1f02,\u1f03,\u1f00,\u1ff2,\u1f3e,\u1f3f,\u1f3c,\u1f3d,\u1f3a,\u1f3b,\u1f38,\u1f39,\u1f36,\u1f37,\u1f34,\u1f35,\u1f32,\u1f33,\u1f30,\u1f31,\u1f2e,\u1f2f,\u1f2c,\u1f2d,\u1f2a,\u1f2b,\u1f28,\u1f29,\u1f26,\u1f27,\u1f24,\u1f25,\u1f22,\u1f23,\u1f20,\u1f21,\u1fd7,\u1fd6,\u1fd2,\u1fda,\u1fc7,\u1fc6,\u1fc4,\u1fc3,\u1fc2,\u1fcc,\u1fca,\u1fc8,\u1ff7,\u1ff6,\u1ff4,\u1ff3,\u00ee,\u00ec,\u1ffc,\u1ffa,\u1ff8,\u1fe7,\u1fe6,\u00f9,\u1fe4,\u1fe2,\u1fe1,\u1fe0,\u00f3,\u00f2,\u1fec,\u1fea,\u1fe9,\u00f4,\u1f94,\u1f95,\u1f96,\u1f97,\u1f90,\u1f91,\u1f92,\u1f93,\u1f9c,\u1f9d,\u1f9e,\u1f9f,\u1f98,\u1f99,\u1f9a,\u1f9b,\u1f84,\u1f85,\u1f86,\u1f87,\u1f80,\u1f81,\u1f82,\u1f83,\u1f8c,\u1f8d,\u1f8e,\u1f8f,\u1f88,\u1f89,\u1f8a,\u1f8b,\u1fb4,\u1fb6,\u1fb7,\u1fb2,\u1fb3,\u1fbc,\u1fba,\u1fa4,\u1fa5,\u1fa6,\u1fa7,\u1fa0,\u1fa1,\u1fa2,\u1fa3,\u1fac,\u1fad,\u1fae,\u1faf,\u1fa8,\u1fa9,\u1faa,\u1fab,\u1fe5\"\n", "\n", "def test_all_accents():\n", " set_up()\n", " x = preprocess_greek(''.join(accents.split(',')))\n", " #assert isopsephy(x) == 45958\n", " assert isopsephy(x) == 46688\n", " \n", "def test_word_isopsephy():\n", " set_up()\n", " # isopsephia\n", " assert isopsephy(\"\u03b9\u03c3\u03bf\u03c8\u03b7\u03c6\u03b9\u03b1\") == 1499\n", " \n", "def test_phrase_isopsephy():\n", " set_up()\n", " # john 1:1\n", " assert isopsephy(verse) == 3617\n", "\n", "def test_phrase_isopsephy_via_read_file():\n", " set_up()\n", " filename = \"./john1_1.txt\"\n", " with open (filename, \"r\") as resource:\n", " data = resource.read().replace('\\n', '')\n", " assert isopsephy(data) == 3617\n", "\n", "def test_seven_vowels_isopsephy():\n", " set_up()\n", " assert isopsephy(\"\u03b1\u03b5\u03b7\u03b9\u03bf\u03c5\u03c9\") == 1294\n", "\n", "def test_three_numerals_isopsephy():\n", " set_up()\n", " assert isopsephy(\"\u03db\u03d9\u03e1\") == 996\n", " \n", "def test_seventeen_consonants_isopsephy():\n", " set_up()\n", " assert isopsephy(\"\u03b2\u03b3\u03b4\u03b6\u03b8\u03ba\u03bb\u03bc\u03bd\u03be\u03c0\u03c1\u03c3\u03c4\u03c6\u03c7\u03c8\") == 2705\n", " \n", "def test_twentyfour_non_numerals_isopsephy():\n", " set_up()\n", " assert isopsephy(\"\u03b1\u03b5\u03b7\u03b9\u03bf\u03c5\u03c9\u03b2\u03b3\u03b4\u03b6\u03b8\u03ba\u03bb\u03bc\u03bd\u03be\u03c0\u03c1\u03c3\u03c4\u03c6\u03c7\u03c8\") == 3999\n", " \n", "def test_greek_to_roman():\n", " set_up()\n", " assert to_roman(''.join(greek_letters)) == \"aAbBgGdDeEwWWwzZ\u00ea\u00cahHiIuUkKjJJjlL\u00f4\u00d4mMtTnNcCoOsSSsspPxXqQQqrRyYfF\"\n", " \n", "def test_preprocess_roman():\n", " set_up()\n", " assert preprocess_roman(\"abcdefghijklmnopqrstuvwxyz0123456789\") == \"abcdefghijklmnopqrstuwxyz\"\n", "\n", "def test_preprocess_greek():\n", " set_up()\n", " assert preprocess_greek(\"\u00f6\u0396\u03ce9\") == \"\u0396\u03c9\"\n", "\n", "def test_small_roman_letters_to_greek():\n", " set_up()\n", " assert to_greek(\"abcde\u00eafghiklmno\u00f4pqrstuwxyz\") == \"\u03b1\u03b2\u03be\u03b4\u03b5\u03b7\u03c6\u03b3\u03b8\u03b9\u03ba\u03bb\u03bc\u03bd\u03bf\u03c9\u03c0\u03d9\u03c1\u03c3\u03c4\u03c5\u03dd\u03c7\u03c8\u03b6\"\n", "\n", "def test_capital_roman_letters_to_greek():\n", " set_up()\n", " assert to_greek(\"ABCDE\u00caFGHIJKLMNO\u00d4PQRSTUWXYZ\") == \"\u0391\u0392\u039e\u0394\u0395\u0397\u03a6\u0393\u0398\u0399\u03e0\u039a\u039b\u039c\u039d\u039f\u03a9\u03a0\u03d8\u03a1\u03a3\u03a4\u03a5\u03dc\u03a7\u03a8\u0396\"\n", "\n", "def test_unsupported_roman_letters_to_greek():\n", " set_up()\n", " assert to_greek(\"abc123\") == \"\u03b1\u03b2\u03be123\"\n", "\n", "def test_find():\n", " set_up()\n", " assert find(verse, 373) == ['\u039b\u03bf\u03b3\u03bf\u03c2', '\u039b\u03bf\u03b3\u03bf\u03c2', '\u039b\u03bf\u03b3\u03bf\u03c2']\n", " \n", "def test_find_cumulative():\n", " set_up()\n", " assert find(verse, 443, cumulative=True) == ['\u03bf \u039b\u03bf\u03b3\u03bf\u03c2', '\u03bf \u039b\u03bf\u03b3\u03bf\u03c2', '\u03ba\u03b1\u03b9 \u0398\u03b5\u03bf\u03c2 \u03b7\u03bd \u03bf', '\u03bf \u039b\u03bf\u03b3\u03bf\u03c2']\n", " \n", "def test_find_indices():\n", " set_up()\n", " assert find_cumulative_indices(map(isopsephy, verse.split()), 443) == [[3,4],[6,7],[12,13,14,15],[15,16]]\n", " \n", "def test_digital_root():\n", " set_up()\n", " assert digital_root(123456789) == 9\n", "\n", "def test_digital_sum():\n", " set_up()\n", " assert digital_sum(123456789) == 45\n", " \n", "def test_digital_product():\n", " set_up()\n", " assert digital_product(123456789) == 362880\n", " \n", "def test_char_table():\n", " set_up()\n", " assert str(char_table('\u03bf \u039b\u03bf\u03b3\u03bf\u03c2')) == '
\u03bf \u039b\u03bf\u03b3\u03bf\u03c2
\u03bf  \u039b\u03bf\u03b3\u03bf\u03c2
70 7373 4
443 11 / 2
oLogos
703070370200
'\n" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Run tests" ] }, { "cell_type": "code", "collapsed": false, "input": [ "%runaway" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "
Collected 28 tests.\n", "
Test function nameStatus
Successful28
Failed0
Errors0
Execution0.005226 seconds
test_all_accentssuccessful
test_every_supported_greek_letter_isopsephy_is_intsuccessful
test_twentyfour_non_numerals_isopsephysuccessful
test_seven_vowels_isopsephysuccessful
test_three_numerals_isopsephysuccessful
test_digital_productsuccessful
test_small_roman_letters_to_greeksuccessful
test_total_isopsephy_of_all_supported_greek_letterssuccessful
test_find_indicessuccessful
test_unsupported_letters_isopsephysuccessful
test_preprocess_greeksuccessful
test_preprocess_romansuccessful
test_greek_to_romansuccessful
test_phrase_isopsephy_via_read_filesuccessful
test_phrase_isopsephysuccessful
test_space_isopsephysuccessful
test_char_tablesuccessful
test_unsupported_roman_letters_to_greeksuccessful
test_findsuccessful
test_digital_sumsuccessful
test_word_isopsephysuccessful
test_seventeen_consonants_isopsephysuccessful
test_digital_rootsuccessful
test_capital_roman_letters_to_greeksuccessful
test_every_supported_roman_letter_isopsephy_is_intsuccessful
test_unsupported_roman_letters_isopsephysuccessful
test_find_cumulativesuccessful
test_total_isopsephy_of_all_supported_roman_letterssuccessful
" ], "metadata": {}, "output_type": "pyout", "prompt_number": 4, "text": [ "" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "Styles for tests table" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.core.display import HTML\n", "with open('isopsephy.css') as f:\n", " css = f.read()\n", "HTML('' % css)" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "pyout", "prompt_number": 5, "text": [ "" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## The [MIT](http://choosealicense.com/licenses/mit/) License\n", "\n", "Copyright (c) 2015 Marko Manninen" ] } ], "metadata": {} } ] }