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?
betweennależ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ę.