LLumaGauge
Сценарии

Сценарии работы с кодом · Контраст относительной яркости

03
Вокруг ваших задач

Конкретная отправная точка

Вычислите контраст относительной яркости двух цветов RGB с тремя восьмибитными каналами. Проверьте чёрный и белый, одинаковые цвета и перестановку аргументов, отклоняя нецелые каналы и выход за диапазон без объявления отношения полной оценкой доступности.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Контраст относительной яркости

Конкретная отправная точка
def contrast_ratio(left, right):
    def luminance(rgb):
        if type(rgb) not in (list, tuple) or len(rgb) != 3:
            raise ValueError("rgb.container")
        rgb = tuple(rgb)
        if len(rgb) != 3 or any(type(c) is not int or not 0 <= c <= 255 for c in rgb):
            raise ValueError("rgb.channel")
        channels = [c / 255 for c in rgb]
        linear = [c / 12.92 if c <= 0.04045 else ((c + 0.055) / 1.055)**2.4
                  for c in channels]
        return sum(c * w for c, w in zip(linear, (0.2126, 0.7152, 0.0722)))
    a, b = sorted((luminance(left), luminance(right)))
    return (b + 0.05) / (a + 0.05)

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗