Hej,
Czy ktoś ma pomysł dlaczego zmienna offset czasem jest ujemna???
Jak na razie wiem tylko, że zależy od danych. Na małej ilości danych działał dobrze i długo (kilka tysięcy przebiegów). Na nowych danych, które wydają się poprawne, od razu był wyjątek (indeks tablicy ujemny, zawsze w okolicy -90, mimo, że dostęp losowy).
Dzięki.
public double getData(int dataTableIndex, int dataOffsetIndex) {
assert data.size() >= 0: "data.size";
assert maximumOffset >= 0: "maximumOffset";
int tableIndex = (dataTableIndex < 0 ? -dataTableIndex : dataTableIndex) % data.size();
int offset = (dataOffsetIndex < 0 ? -dataOffsetIndex : dataOffsetIndex) % maximumOffset;
assert tableIndex >= 0: "tableIndex";
assert offset >= 0: "offset"; // tu wyrzuca assertion error
if (offset >= data.get(tableIndex).length)
throw new NotEnoughDataException();
else
return data.get(tableIndex)[offset]; // tu był wyjątek jak nie było assertów
}