import unittest

from pylot.core.io.phases import getQualitiesfromxml


class TestQualityFromXML(unittest.TestCase):
    def setUp(self):
        self.path = '.'
        self.ErrorsP = [0.02, 0.04, 0.08, 0.16]
        self.ErrorsS = [0.04, 0.08, 0.16, 0.32]
        self.test0_result = [[0.0136956521739, 0.0126, 0.0101612903226, 0.00734848484849, 0.0135069444444,
                              0.00649659863946, 0.0129513888889, 0.0122747747748, 0.0119252873563, 0.0103947368421,
                              0.0092380952381, 0.00916666666667, 0.0104444444444, 0.0125333333333, 0.00904761904762,
                              0.00885714285714, 0.00911616161616, 0.0164166666667, 0.0128787878788, 0.0122756410256,
                              0.013653253667966917], [0.0239333333333, 0.0223791578953, 0.0217974304255],
                             [0.0504861111111, 0.0610833333333], [], [0.171029411765]], [
                                [0.0195, 0.0203623188406, 0.0212121212121, 0.0345833333333, 0.0196180555556,
                                 0.0202536231884, 0.0200347222222, 0.0189, 0.0210763888889, 0.018275862069,
                                 0.0213888888889, 0.0319791666667, 0.0205303030303, 0.0156388888889, 0.0192,
                                 0.0231349206349, 0.023625, 0.02875, 0.0195512820513, 0.0239393939394, 0.0234166666667,
                                 0.0174702380952, 0.0204151307995], [0.040314343081226646], [0.148555555556], [], []]
        self.test1_result = [77.77777777777777, 11.11111111111111, 7.407407407407407, 0, 3.7037037037037037],\
                            [92.0, 4.0, 4.0, 0, 0]

    def test_result_plotflag0(self):
        self.assertEqual(getQualitiesfromxml(self.path, self.ErrorsP, self.ErrorsS, 0), self.test0_result)

    def test_result_plotflag1(self):
        self.assertEqual(getQualitiesfromxml(self.path, self.ErrorsP, self.ErrorsS, 1), self.test1_result)


if __name__ == '__main__':
    unittest.main()