Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Виконайте циклічний зсув беззнакового слова ліворуч у межах ширини від 1 до 64 бітів.
def rotate_left(value, count, width):
if any(type(x) is not int for x in (value, count, width)):
raise ValueError("rotate.type")
if not 1 <= width <= 64 or not 0 <= value < (1 << width) or count < 0:
raise ValueError("rotate.range")
count %= width
mask = (1 << width) - 1
return ((value << count) | (value >> (width - count))) & maskПорівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Перевірте нульовий і повний оберти зі зведенням кількості кроків за модулем ширини, відхиляючи від’ємні кроки та завеликі значення.
def rotate_left(value, count, width):
if any(type(x) is not int for x in (value, count, width)):
raise ValueError("rotate.type")
if not 1 <= width <= 64 or not 0 <= value < (1 << width) or count < 0:
raise ValueError("rotate.range")
count %= width
mask = (1 << width) - 1
return ((value << count) | (value >> (width - count))) & maskBitWhorl надає середовище проєкту для Windows, де можна обговорювати зміни коду, залежні від точного подання даних. Відкрийте код і опишіть значення, яких очікує решта застосунку. Перш ніж просити рефакторинг, попросіть модель пояснити відповідні обмеження вхідних даних, щоб на вигляд простіший вираз непомітно не змінив операцію.
Конкретним завданням для такого сеансу може бути rotate_word.py. Вкажіть ширину слова й очікувану поведінку, коли кількість позицій зсуву перевищує цю ширину, а потім перевірте запропонований код разом із кодом виклику. Приклад задає розмові обмежений контракт; він не означає, що середовище постачає бібліотеку бітових операцій.
Перевірте пропозицію у своєму середовищі на кількох незалежно визначених тестових прикладах. Додайте нульовий зсув, зсув на повну ширину та значення зі встановленим найстаршим допустимим бітом. Перевірте також відхилювані вхідні дані, особливо якщо інший шар перетворює значення перед викликом допоміжної функції. Протягом усієї зміни зберігайте домовленість застосунку про подання даних.
Аблітерована модель ШІ може допомогти, якщо її пропонує підтримувана OpenAI-сумісна кінцева точка або кінцева точка Anthropic. Налаштуйте це підключення та потрібні облікові дані в середовищі. Обмеження моделі, місткість контексту й доступність інструментів усе одно залежать від вибраного сервера, тому перевірка прийнятності належить вашому проєкту, а не назві категорії моделі.
Перевірте поточний контракт, перш ніж припускати, що це означає зсув у протилежний бік. Приклад відхиляє від’ємні значення. Якщо потрібна знакова кількість позицій, запитайте це як явну зміну поведінки й визначте очікувані результати по обидва боки нуля.
Те саме ціле число й та сама кількість позицій можуть давати різні результати за різної ширини слова. Надайте всі три вхідні значення та очікуваний результат. Без цього контексту модель може пояснити коректну операцію, яка просто використовує інше подання, ніж ваш застосунок.
Вона може забезпечувати подання результату, тому її вилучення здатне змінити спостережувану поведінку. Запитайте, як правка утримує результат у допустимій ширині, та перевірте приклади зі старшим бітом. Перегляньте код, що серіалізує або порівнює результат за тією самою домовленістю.
Порівняйте його поведінку з незалежно вибраними граничними прикладами та наявними правилами вхідних даних. Прочитайте пояснення семантики зсувів у мові, а також сам вираз. Коротший код корисний лише тоді, коли зберігає потрібне подання та правила відхилення даних.
BitWhorl · Оновлено 2026-10-25