Сэкономил на спичках
Sep. 23rd, 2014 09:33 amВ нашей программе в какой-то момент нужно разделить портфель актива на две части. Известен размер одной части N, отпиливаем все активы пропорционально, чтобы в сумме была эта сумма, а во второй остаётся сдача. В силу архитектуры программы, идёт два вызова метода setPartPortefeuille (обожаю наш franglais) у двух изначально идентичных объектов. Первому передаётся N, он откусывает себе N. Второму передаётся -N, и он оставляет себе всё, кроме N. В коде, конечно же, первой строчкой if (N > 0).
Вчера весь день сидел и пытался понять, почему не работает, казалось бы, простой тест. Тест заключался в N = 0...
Сэкономил одну переменную, блин. День работы коту под хвост.
Поставил себе TODO: переписать setPartPortefeuille(N) на setPartPortefeuille(N, sign).
А в качестве временного решения в тесте поставил N = 1 :-)
Вчера весь день сидел и пытался понять, почему не работает, казалось бы, простой тест. Тест заключался в N = 0...
Сэкономил одну переменную, блин. День работы коту под хвост.
Поставил себе TODO: переписать setPartPortefeuille(N) на setPartPortefeuille(N, sign).
А в качестве временного решения в тесте поставил N = 1 :-)
no subject
Date: 2014-09-23 08:25 am (UTC)no subject
Date: 2014-09-23 08:37 am (UTC)if (N > 0)
откусить N
else
оставить (всё - N)
end
Проблема именно в том, что вместо того, чтобы откусить 0 в первой части и оставить всё во второй, он два раза брал себе 0 - в процессе распила на две части терялся весь портфель.
no subject
Date: 2014-09-23 08:51 am (UTC)no subject
Date: 2014-09-23 09:12 am (UTC)no subject
Date: 2014-09-23 03:22 pm (UTC)(А по хорошему, вторая переменная должна называться не sign, а, например, withdraw (true/false), или как там одна из операция называется. А совсем по-хорошему, это вообще должен быть enum :) )
no subject
Date: 2014-09-23 05:54 pm (UTC)