CClockMoraine
Сценарии

Сценарии работы с кодом · Причинные отношения векторных часов

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

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

Сравните векторные часы с числом именованных счётчиков до 64 в каждой карте и значениями от нуля до 10^12. Считайте отсутствующие записи нулями, проверьте равные, ранние, поздние и параллельные события, отклоняя логические счётчики и неверные ключи без изменения карт.

01

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

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

02

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

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

03

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

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

04

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

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

Причинные отношения векторных часов

Конкретная отправная точка
def clock_relation(a, b):
    for clock in (a, b):
        if type(clock) is not dict or len(clock) > 64:
            raise ValueError("clock.map")
        if any(type(k) is not str or not 1 <= len(k) <= 32 or type(v) is not int or not 0 <= v <= 10**12 for k, v in clock.items()):
            raise ValueError("clock.entry")
    keys = a.keys() | b.keys()
    less = any(a.get(k, 0) < b.get(k, 0) for k in keys)
    more = any(a.get(k, 0) > b.get(k, 0) for k in keys)
    return "concurrent" if less and more else "before" if less else "after" if more else "equal"

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

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

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

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