Open XubeiX opened 9 years ago
Nie tylko wyjątki z RedCode'a trzeba sprawdzić.
W niektórych funkcjach są If'y które zmieniają return'a i je też trzeba sprawdzić czy działają.
Dorzucam przykład(mam nadzieję ze poprawny, jak nie to zbesztać):
Opis w klasie Core:
Rozwiązanie w teście:
Potwierdzam. W niektórych metodach tak jest, że if zmienia wynik i to też należy sprawdzić. Częściej występuje to w metodach Lookback.
Pamiętajcie również, że każda metoda występuje w dwóch wariantach jedna dla tablicy double[] a druga na float[]. Sprawdzić należy obie.
By pokrycie kodu wyniosło w danej metodzie 100% należy również sprawdzić wyjątki tej metody. A mianowicie niektóre metody zwracają wyjątki w postaci
Lista wyjątków jakie możecie spotkać. RetCode.BadParam RetCode.OutOfRangeStartIndex RetCode.OutOfRangeEndIndex RetCode.AllocErr RetCode.InternalError
W przypadku gdy ominie się sprawdzanie czy dane wyjątki działają poprawnie, pokrycie kody może wynosić np. 74% jak dla metody SMA.![image](https://cloud.githubusercontent.com/assets/9266046/7922926/c870ec5e-08af-11e5-8585-d9e33f80e0b7.png)
By poprawić ten wynik należy sprawdzić czy metoda działa dobrze i zwraca te wyjątki jak np. indeks startowy jest ujemny. Wtedy metoda powinna zwrócić błąd w postaci RetCode.OutOfRangeStartIndex
Przykład: RedCode rb = core.sma(-10, 99, inputsinReal, 100, outBegIdx, outNBElement, outReal); assertEquals(RetCode.OutOfRangeStartIndex.toString(),rb.toString());
Po dodaniu tych dwóch linijek pokrycie kodu metody wzrasta do 80%.