W mojej aplikacji jest kilka predefiniowanych szablonów wyrażeń, których można użyć do filtrowania danych. Jednym z nich jest „ between x and y
”. Inżynier ds. Kontroli jakości twierdzi, że w definicji występuje defekt, ponieważ „ between 100 and 200
” daje inne wyniki niż „ between 200 and 100
”. Wyrażenie jest wewnętrznie przetłumaczone na „ value >= x and value <= y
”, więc oczywiście nie ma wyników, gdy druga granica jest niższa niż pierwsza. Sprawdziłem, czy to samo zachowanie jest w SQL - „ between x and y
” zakłada, że y> = x lub nie ma żadnych wyników. Oznacza to, że operator nie jest przemienny, przynajmniej w SQL.
Czy więc kontrola jakości ma rację, że „ between x and y
” powinno być przemienne?
between
należy uwzględnić lub wykluczyć niższe i wyższe wartości. Osoba zapewniająca jakość może być pedantyczna, ale dopóki istnieje niepewność, ktoś musi wyjaśnić historie / wymagania użytkowników. Może się okazać, że sposób, w jaki to jest zrobione, jest taki, jak powinien, ale trzeba podjąć decyzję.