from cmath import exp
from tkinter import E
from src.apps.pdf_loader import convert_parsed_txt, check_parsed_txt


def test_convert_parsed_txt():
    # 想定されている入力のサンプルデータ
    sample_input = ['TARO YAMADA || 01-01-2021', 'TARO YAMADA', '', 'あなたのクリフトンストレングス34の結果 ', '', 'あなたには唯一無二の力があります。 独自のクリフトンストレングス34プロファイルが、他者と全く異なるあなたの', '姿を特定します。 これがあなたの才能のDNAです。テスト回答を基に順位付けされています。 ', '', '本レポートを使用して、上位資質を最大限に活用し、残りの資質を確認し、可能性を最大限に引き出しましょう： ', '', '•  結果を読んで振り返り', '', '結果を読んで振り返り、あなたが自然に行っている得意な行動を理解する。 ', '', '•  最も高いクリフトンストレングスを日々活かす方法を学ぶ', '', '活かす方法を学ぶ。 ', '', '•  結果を他者と共有し', '', '結果を他者と共有し、強固な人間関係を構築し、チームワークを深める。 ', '', '強化する ', '強化する ', '', '確認する ', '確認する ', '', 'コミュニケーション ', '1. 1.  コミュニケーション ', '2. 2.  着想 着想 ', '3. 3.  戦略性 戦略性 ', '4. 4.  責任感 責任感 ', '5. 5.  活発性 活発性 ', '6.  包含 ', '7.  回復志向 ', '8.  社交性 ', '9.  成長促進 ', '10.  ポジティブ ', '', '11.  個別化 ', '12.  親密性 ', '13.  達成欲 ', '14.  目標志向 ', '15.  アレンジ ', '16.  適応性 ',
                    '17.  学習欲 ', '18.  自我 ', '19.  未来志向 ', '20.  自己確信 ', '21.  共感性 ', '22.  信念 ', '23.  運命思考 ', '24.  分析思考 ', '25.  指令性 ', '26.  競争性 ', '27.  規律性 ', '28.  最上志向 ', '29.  慎重さ ', '30.  調和性 ', '31.  収集心 ', '32.  公平性 ', '33.  内省 ', '34.  原点思考 ', '', 'あなたは、クリフトンストレングス', 'の資質 ', '「影響力」 に強みがあります。 ', '「影響力」', '', '「実行力」 は、物事を成し遂げる', ' 「実行力」', '', 'のに役立つ資質です。 ', '', '「影響力」 は、主導権を握り、はっ', ' 「影響力」', '', 'きりと意見を表明し、確実に他の人の', '', '耳を傾けさせるのに役立つ資質です。 ', '', '「人間関係構築力」 は、チームを', ' 「人間関係構築力」', '', '団結させる強力な人間関係を構築す', '', 'るのに役立つ資質です。 ', '', '「戦略的思考力」 は、情報を取り', ' 「戦略的思考力」', '', '入れ、分析し、より適切な判断を下す', '', 'のに役立つ資質です。 ', '', '「あなた独自の貢献を特定する：クリフ', 'トンストレングスの領域」セクションを', '', 'お読みください：詳細 ', '', 'Copyright © 2000, 2018 Gallup, Inc. All rights reserved.', '', '1', '', '\x0c']

    expected = ['コミュニケーション', '着想', '戦略性', '責任感', '活発性', '包含', '回復志向', '社交性', '成長促進', 'ポジティブ', '個別化', '親密性', '達成欲', '目標志向', 'アレンジ', '適応性',
                '学習欲', '自我', '未来志向', '自己確信', '共感性', '信念', '運命思考', '分析思考', '指令性', '競争性', '規律性', '最上志向', '慎重さ', '調和性', '収集心', '公平性', '内省', '原点思考']

    actual = convert_parsed_txt(sample_input)

    assert actual == expected


def test_check_parsed_txt():
    # 正常系のサンプルデータ
    sample_ok_input = ['コミュニケーション', '着想', '戦略性', '責任感', '活発性', '包含', '回復志向', '社交性', '成長促進', 'ポジティブ', '個別化', '親密性', '達成欲', '目標志向', 'アレンジ', '適応性',
                       '学習欲', '自我', '未来志向', '自己確信', '共感性', '信念', '運命思考', '分析思考', '指令性', '競争性', '規律性', '最上志向', '慎重さ', '調和性', '収集心', '公平性', '内省', '原点思考']

    # 異常系のサンプルデータ
    sample_ng_input = ['コミュニケーション', '着想', '戦略性', '責任感', '活発性', '包含', '回復志向', '社交性', '成長促進', 'ポジティブ', '個別化', '親密性', '達成欲', '目標志向', 'アレンジ', '適応性']

    actual_ok = check_parsed_txt(sample_ok_input)
    actual_ng = check_parsed_txt(sample_ng_input)

    # 正常系の場合はTrue,異常の場合はFalse
    expected_ok = True
    expected_ng = False

    assert actual_ok == expected_ok
    assert actual_ng == expected_ng
