amarao (amarao_san) wrote,
amarao
amarao_san

Categories:

и ещё рефакторинг

Важный milestone: getPath сократилась до 100 строк, а всё это покрыто 60+ тестами. Надо бы больше, но некоторые кейсы я просто не могу нормально написать без софтмоков, а их ещё делать. (О чём речь: я не могу использовать untitest.mock, потому что это python2, и не могу использовать mock, потому что ограничения проекта). Мне предложили делать тесты, которые skip, если нет модуля mock, но эту штуку ещё отдельно писать надо.

На горизонте строки 425-994, которые представляют из себя остаток getSVG (из которой я, собственно, getPath и несколько других функций и вытащил). Да-да, добрая такая функция на 500+ строк, которая всё ещё делает Почти Всё.

В целом, я ощущаю, что оно чуть-чуть из рук выскользает, потому что в новом коде довольно много тестами не покрыто, но хочется дальше деребанить getPath. Но надо-таки покрывать то, что уже надёргано. Цикломатическая сложность понизилась, и самое-самое время начинать заморачиваться с тестами всяких corner case'ов, потому что в них как раз баги и обитаются...

Вот, например, из вытащенного:

def toSpline(edge):
    bspline = edge.Curve.toBSpline(edge.FirstParameter, edge.LastParameter)
    if bspline.Degree > 3 or bspline.isRational():
        try:
            bspline = bspline.approximateBSpline(0.05, 50, 3, 'C0')
        except RuntimeError:
            print("Debug: unable to approximate bspline")
    return bspline


Мне нужны тесты на:
1) кривые с Degree > 3
2) isRational (насколько я понимаю, это кривая Безье, описывающаяся полиномом с дробной степенью)
3) На ситуацию, что кривую не аппроксимировать.

Понятно, что моки спасут отца русской демократии, но мне хотелось бы записать в тесты всё-таки настоящий результат - с такой самой кривой, у которой такие загогулины.
Tags: freecad, рефакторинг
Subscribe

  • война за wifi

    В офисе wifi работает только с опцией freq_list=... В свежей бубунте nm не умеет её (проверял грепом по сырцам) А в гите умеет. И git blame…

  • Продолжение адских приключений: UEFI

    Сегодня день великомученника админского, то есть меня. Полез в биос, посмотреть, нет ли там чего-то странного. Решил сбросить настройки. Кто бы мог…

  • bleeding blue edge

    Я сижу на альфе убунты (Trusty). И у меня всё равно bluez-4.101, а не 5+, коих килограммы. Это не настоящий bleeding. Ща буду пытаться вкрутить 5ую…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment