У моїй програмі є деякі заздалегідь задані шаблони виразів, які можна використовувати для фільтрації даних. Один з них - " between x and y
". Інженер із контролю якості заявляє, що в його визначенні є дефект, оскільки " between 100 and 200
" дає інші результати, ніж " between 200 and 100
". Вираз внутрішньо перекладається на " value >= x and value <= y
", тому очевидно немає результатів, коли друга межа є нижчою за першу. Я перевірив, що така ж поведінка є в SQL - " between x and y
" передбачає, що y> = x або немає результатів. Це означає, що оператор не комутативний, принаймні у SQL.
Отже, чи правильно право на якість, що " between x and y
" має бути комутативним?
between
слід включати чи виключати нижчі та вищі значення. Особа, що відповідає за якість, може бути педантичною, але поки є невизначеність, комусь потрібно роз'яснити історію / вимоги користувачів. Може виявитися, що вони так і роблять, як це має бути, але рішення має бути прийняте.