Progress ======== The progress and final grade of a student must be calculated from the grades of 3 exams. #. The progress is a string with the following possible values: - ``constant`` if all grades are equal. - ``positive`` if every grade is greater or equal than the previous one (and is not constant). - ``negative`` if every grade is less or equan than the previous one (and is not constant). - ``peak`` if the second grade is greater than the other two. - ``valley`` if second grade is less than the other two. #. The average is calculated as the average of the **two best** partial grades (the worst is **discarded**) except if the progress is ``negative`` where no grade will be discarded. If any of the 3 given grades is not between 0.0 and 10.0 included, then will consider that an error happened. In this case, no matter what, the progress must be ``error`` and the average -1.0. Please, implement the following Python function in the module :mod:`progress` (file :file:`progress.py`) according to the following specification: ``progress(g1, g2, g3)`` | *takes* | ``g1, g2, g3`` :class:`float` values | *returns* 2 values: | - a :class:`str` corresponding to the grades progress as specified above | - a :class:`float` corresponding to grades average as specified above and rounded to 1 decimal. Exemples: .. literalinclude:: progress-test.txt :language: python3 :lines: 3- Doctests are available at the :download:`progress-test.txt` file.