Digamos que estou implementando algo simples, como pesquisar uma lista / matriz classificada. A função (em c #) seria semelhante a:
static int FindIndex(int[] sortedList, int i);
Eu poderia implementar e testar isso em termos de funcionalidade, mas, por razões óbvias, eu normalmente preferiria uma pesquisa binária a uma pesquisa linear ou algo intencionalmente estúpido.
Portanto, minha pergunta é: devemos tentar escrever testes que garantam desempenho em termos de complexidade algorítmica e, em caso afirmativo, como?
Comecei a argumentar nos dois lados da parte "você deveria" desta pergunta, mas eu gostaria de ver o que as pessoas dizem sem meus argumentos para induzi-las.
Em termos de "como", isso fica muito interessante :) Você pode parametrizar o operador de comparação e fazer um teste cujo operador de comparação conta comparações ou algo parecido. Mas só porque você pode, não significa que você deveria ...
Alguém mais considerou isso (provavelmente)? Obrigado.