import os
import unittest

import pandas.testing as pdt

from تقدیر import مقام
from تقدیر.ذرائع import جمع, سی_اس_وی

راستہ = os.path.join(os.path.split(__file__)[0], 'وسائل/جمع')

مسلیں_جمع = {
    'جھنگ': {'مسل': 'جھنگ.csv', 'عرض': 71.83329773, 'طول': 30.83329964, 'بلندی': 158},
    'سرکودھا': {'مسل': 'سرگودھا.csv', 'عرض': 72.66670227, 'طول': 32.08330154, 'بلندی': 193},
    'فیصل آباد': {'مسل': 'فیصل آباد.csv', 'عرض': 73.09999847, 'طول': 31.43330002, 'بلندی': 184},
    'لاہور': {'مسل': 'لاہور.csv', 'عرض': 74.33329773, 'طول': 31.54999924, 'بلندی': 217},
    'ملتان': {'مسل': 'ملتان.csv', 'عرض': 71.43329620, 'طول': 30.20000076, 'بلندی': 122}
}
for ج in مسلیں_جمع.values():
    ج["مسل"] = os.path.join(راستہ, ج["مسل"])


class امتحان_جمع(unittest.TestCase):
    @classmethod
    def setUpClass(قسم):
        ذرائع = [سی_اس_وی(**ل) for ل in مسلیں_جمع.values()]
        قسم.ذریعہ = جمع(ذرائع)

    def test_کریدج(خود):
        مقام(عرض=72, طول=31, بلندی=160).کوائف_پانا('۲۰۰۶-۰۱-۰۱', '۲۰۰۶-۰۱-۰۵', (خود.ذریعہ,))

    def test_توسیع_لاپتہ_نکتہ(خود):
        مقام(عرض=72.66670227, طول=32.08330154, بلندی=193).کوائف_پانا('۲۰۰۵-۰۱-۰۱', '۲۰۰۶-۰۱-۰۵', (خود.ذریعہ,))

    def test_توسیع_لاپتہ_لمبہ(خود):
        مقام(عرض=72.66670227, طول=32.08330154, بلندی=193).کوائف_پانا('۲۰۰۵-۰۱-۰۱', '۲۰۰۶-۰۱-۱۵', (خود.ذریعہ,))

    def test_توسیع_ضرور_نہیں(خود):
        مق = مقام(عرض=72.66670227, طول=32.08330154, بلندی=193)
        کو = مق.کوائف_پانا('2005-01-01', '2005-01-05', (خود.ذریعہ,))

        pdt.assert_frame_equal(
            کو.روزانہ(),
            مق.کوائف_پانا('2005-01-01', '2005-01-05', (سی_اس_وی(**مسلیں_جمع['سرکودھا']),)).روزانہ()
        )
