ЛР34. Анотації типів, тести й аналіз правдоподібного коду
Коротко про роботу
Коротка функція обмежує значення зверху, але має помилку на межі. Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Коротка функція обмежує значення зверху, але має помилку на межі.
Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.
2. Що треба знати
Робота виконується після Л1–Л13. Потрібні поняття:
- анотації типів
- тести
- граничні випадки
- аналіз коду
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л13. Не використовуйте динамічне виконання коду, exec або прихований глобальний стан.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Зміст |
|---|---|
probe_inputs |
відкриті контрольні значення |
limit |
верхня межа результату |
Поля результату
| Поле | Зміст |
|---|---|
probe_outputs |
результати виправленої функції на контрольних даних |
regression_ok |
ознака проходження відкритого набору регресійних тестів |
Назви полів результату не змінюйте.
4. Терміни і правила
Терміни
- відтворити дефект — отримати помилковий результат на конкретних даних до виправлення.
- регресійний тест — тест, який після виправлення підтверджує, що відомий дефект більше не виникає.
- анотація типу — анотація очікуваного типу параметра або результату в Python.
Правила
- Початковий дефект: для
value >= limitпомилкова версія повертаєlimit - 1замістьlimit. - До виправлення використайте контрольне значення, що дорівнює
limit, і покажіть невідповідність очікуванню. - Виправлена
capped(value: int, limit: int) -> intповертаєvalue, колиvalue < limit, інакшеlimit. regression_okмає бутиtrueпісля перевірки всіхprobe_inputs.
5. Завдання
Завдання 1
Перевірте помилкове правило на значенні value = limit. Покажіть, що воно повертає limit - 1 замість limit.
Завдання 2
Реалізуйте виправлену capped(value: int, limit: int) -> int.
Завдання 3
Обчисліть probe_outputs для всіх probe_inputs. Запишіть результат перевірок у regression_ok.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR34_Прізвище_Група_VNN.pdf.