Powiedzmy, że implementuję coś prostego, na przykład wyszukiwanie posortowanej listy / tablicy. Funkcja (w c #) wyglądałaby podobnie do:
static int FindIndex(int[] sortedList, int i);
Mogłem to zaimplementować i przetestować pod kątem funkcjonalności, ale z oczywistych powodów zwykle wolę wyszukiwanie binarne niż wyszukiwanie liniowe lub coś celowo głupiego.
Więc moje pytanie brzmi: czy powinniśmy pisać testy gwarantujące wydajność pod względem złożoności algorytmicznej, a jeśli tak, to w jaki sposób?
Zacząłem kłócić się po obu stronach części „czy powinieneś” tego pytania, ale chciałbym zobaczyć, co mówią ludzie bez moich argumentów, aby ich podpowiedzieć.
Jeśli chodzi o „jak”, to staje się bardzo interesujące :) Można było sparametryzować operator porównania i mieć test, którego operator porównania liczy porównania lub coś w tym rodzaju. Ale tylko dlatego, że możesz, nie oznacza, że powinieneś ...
Czy ktoś jeszcze to rozważał (prawdopodobnie)? Dzięki.