#!/usr/bin/python
import sys
import pytest

from src import KanaText

#非表示指定の「a-i」「q-y」の動作
testcase01i = [
    #テストケース
    # 1 2 3 4 5 6 7 8 9101112131415
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五',
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^',
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q11', #1
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1r21', #2
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1s31', #3
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1t41', #4
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1u51', #5
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1v61', #6
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1w71', #7
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1x81', #8
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1y91', #9
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1m1',
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q11', #1
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q21', #2
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q31', #3
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q41', #4
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q51', #5
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q61', #6
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q71', #7
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q81', #8
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q91', #9
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1z1',
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^y9y9', #99
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^q9q9', #99
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1y9y91', #99
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q9q91', #99
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1v6v61', 
    'いろはにほへとちりぬるをわかよ|壱弐参四五六七八九拾壱弐参四五^1q5q51', 
] 

testcase01o = [
    #期待する結果
    [(False, '壱弐参四五六七八九拾壱弐参四五')],
    [(True, ('壱弐参四五六七八九拾壱弐参四五', 'いろはにほへとちりぬるをわかよ'))],
    [(True, ('壱', 'い')),(False, '弐'),(True, ('参', 'は')),
        (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参'),(True, ('四', 'に')),
        (False, '五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四'),(True, ('五', 'ほ')),
        (False, '六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五'),(True, ('六', 'へ')),
        (False, '七八九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五六'),(True, ('七', 'と')),
        (False, '八九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五六七'),(True, ('八', 'ち')),
        (False, '九拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五六七八'),(True, ('九', 'り')),
        (False, '拾壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五六七八九'),(True, ('拾', 'ぬ')),
        (False, '壱弐参四五')],
    [(True, ('壱', 'い')),(False, '弐参四五六七八九拾'),(True, ('壱', 'る')),
        (False, '弐参四五')],
    [(True, ('壱', 'い')), (True, ('弐', 'ろ')), (False, '参四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'は')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'に')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'ほ')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'へ')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'と')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'ち')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'り')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'ぬ')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'),
        (True, ('参', 'る')), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (True, ('弐', 'ろ')), (False, '参四五六七八九拾壱弐参四五')],
    [(False, '壱弐参四五六七八九'), (False, '拾壱弐参四五')],
    [(False, '壱'), (False, '弐'), (False, '参四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐参四五六七八九拾'), (False, '壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐'), (False, '参'), (False, '四五六七八九拾壱弐参四五')],
    [(True, ('壱', 'い')), (False, '弐参四五六七'),
        (False, '八九拾壱弐参'), (True, ('四', 'か')), (False, '五')],
    [(True, ('壱', 'い')), (False, '弐'), (False, '参'), (True, ('四', 'を')),
        (False, '五六七八九拾壱弐参四五')],
]

#非表示指定の「a-i」「q-y」の動作
def test01_aslist():
    for t, e in zip(testcase01i, testcase01o):
        term = KanaText(t)
        rslt = term.aslist()
        assert rslt == e
