Второ домашно

  1. @Веселина, както вече и Харут коментира, но да потвърдя - да, ъглите се закръгляват надолу, т.е. 45 става 30, т.е. 1.

    @Димитър, функцията, за която питаш в първия си коментар - nums_to_angle, връща сума от ъгли, така че е валидно да върне 330. Уговорките за angles_to_nums са базирани на естеството на циферблата - просто 330 се счита за невалиден инпут.
    Тази, за която питаш във втория си кометар - text_to_nums, трябва да върне празен списък.

  2. nums_to_angle не е ли ОК да връща нормализиран и закръглен ъгъл като сума от такива ? Тоест при вход [9, 2], ако се придържаме да връщаме коректни нормализирани ъгли, да върнем 330 или 0 не е ли некоректно ? Да връщаме None като знак, че игнорираме и третираме като несъществуващи ъгли, грешка ли е ?

  3. @Йоана, в усливето за nums_to_angle никъде не се казва, че ъгълът трябва да е закръглен. Трябва да е само нормализиран. При инпут [9, 2] дори не се изисква и нормализиране. Просто сумираш 270 + 60 ив връщаш 330.

    Всички бележки за закръгляване се касаят само за случаите, в които получавате ъгли като инпут.

    Отностно отговор None - това е невалиден отговор на функцията, ако приемем, че входът е бил валиден. Ние тестваме само с валидни данни и очакваме само валидни отговори.

  4. @Цветан, @Мариян, при работа с комбинация от нули, валидно е както ' ' (три интервала) -> [0, 0, 0], така и [0, -1, 0, -1, 0].
    Обратното също. [0, 0, 0] -> един или три интервала са валидни.
    Роберт Борисов вече зададе този въпрос.

    @Огнян, интервалът е валид инпут за text_to_nums, връщайки 0, a 0 е валиден инпут за nums_to_angle, връщайки 300, така че интервали в инпута на is_phone_tastic са валидни.

  5. @Лиляна, разбирам объркването. По-удачна дефиниция би била "кратен на броя символи". Мога да те уверя, че няма да тестваме за думи, съдържащи интервали, така че и двете интерпретации са валидни за пред тестовете.

  6. Привет и от мен с няколко теста, които ползвах аз: https://pastebin.com/mi85yePt :)

    Някои от тях са на други колеги, които са ги публикували тук във формуа - тях съм ги писал като "Test from forum N."

    На тестовете, в които има 0/' ' съм сложил assertTrue(... in [possible_result1, possible_result2]), тъй като от дискусиите тук разбрах, че считаме и двата варианта за валидни.

  7. Имайте предвид, че това, че колегите публикуват тестовете и даваме звездички не ги прави меродавни.
    Пример, Георги Събев (умишлено с фамилия) е написал следният тест:

        def test_5(self):
            """Test invalid input."""
            self.assertEqual(nums_to_angle(['a', 10]), 0)
    

    Това важи за неговата имплементация, но при вас може би ще фейлне... Което е окей, защото ние тестваме спрямо изискванията, които сме дефинирали.
    С други думи, след като Дъ Георги (нищо лично, просто сме като Мадона в сайта) е отговорил (неколкократно), че няма да тестваме за невалидни данни - няма да тестваме за невалидни данни.

    Казвам го за да не се юрнете да изпълнявате излишни requirement-и, само защото сме дали звездичка за тестове.

Трябва да сте влезли в системата, за да може да отговаряте на теми.