assay
test suite

operator

115 tests · 105 with documented divergences

Test Subject Formula Category DVs
add-numbers ADD =ADD(2, 3) value 1
add-negatives ADD =ADD(-4, 1) value 1
add-zero ADD =ADD(0, 0) value 1
add-decimals ADD =ADD(0.1, 0.2) value 1
add-boolean-coerces-to-1 ADD =ADD(TRUE, 1) value 2
add-string-number-coerces ADD =ADD("2", 3) value 2
add-non-numeric-string ADD =ADD("abc", 1) value
add-matches-plus-operator ADD =ADD(7, 11)=7+11 value 1
minus-numbers MINUS =MINUS(10, 3) value 1
minus-negative-result MINUS =MINUS(3, 10) value 1
minus-zero MINUS =MINUS(5, 5) value 1
minus-boolean-coerces MINUS =MINUS(TRUE, FALSE) value 1
minus-string-coerces MINUS =MINUS("10", "4") value 1
minus-matches-minus-operator MINUS =MINUS(9, 4)=9-4 value 1
multiply-numbers MULTIPLY =MULTIPLY(6, 7) value 1
multiply-by-zero MULTIPLY =MULTIPLY(123, 0) value 1
multiply-negative MULTIPLY =MULTIPLY(-3, 4) value 1
multiply-boolean-coerces MULTIPLY =MULTIPLY(TRUE, 5) value 1
multiply-string-coerces MULTIPLY =MULTIPLY("3", 4) value 1
multiply-matches-star-operator MULTIPLY =MULTIPLY(6, 7)=6*7 value 1
divide-numbers DIVIDE =DIVIDE(20, 4) value 1
divide-by-zero DIVIDE =DIVIDE(1, 0) value 1
divide-fractional DIVIDE =DIVIDE(1, 3) value 1
divide-negative DIVIDE =DIVIDE(-12, 4) value 1
divide-string-coerces DIVIDE =DIVIDE("10", "2") value 1
divide-matches-slash-operator DIVIDE =DIVIDE(100, 4)=100/4 value 1
pow-integer POW =POW(2, 10) value 1
pow-zero-exponent POW =POW(5, 0) value 1
pow-negative-exponent POW =POW(2, -3) value 1
pow-fractional-exponent POW =POW(2, 0.5) value 1
pow-negative-base-fractional-exponent POW =POW(-1, 0.5) value 2
pow-zero-to-zero POW =POW(0, 0) value 1
pow-matches-caret-operator POW =POW(3, 4)=3^4 value 1
uminus-positive UMINUS =UMINUS(5) value 1
uminus-negative UMINUS =UMINUS(-3) value 1
uminus-zero UMINUS =UMINUS(0) value 1
uminus-boolean-coerces UMINUS =UMINUS(TRUE) value 1
uminus-string-coerces UMINUS =UMINUS("7") value 1
uminus-matches-unary-minus UMINUS =UMINUS(42)=-42 value 1
uplus-positive UPLUS =UPLUS(5) value 1
uplus-negative UPLUS =UPLUS(-3) value 1
uplus-zero UPLUS =UPLUS(0) value 1
uplus-boolean UPLUS =UPLUS(TRUE) value 1
uplus-string UPLUS =UPLUS("hello") value 1
uplus-numeric-string UPLUS =UPLUS("3.14") value 1
unary-percent-fifty UNARY_PERCENT =UNARY_PERCENT(50) value 1
unary-percent-one UNARY_PERCENT =UNARY_PERCENT(1) value 1
unary-percent-zero UNARY_PERCENT =UNARY_PERCENT(0) value 1
unary-percent-negative UNARY_PERCENT =UNARY_PERCENT(-25) value 1
unary-percent-hundred UNARY_PERCENT =UNARY_PERCENT(100) value 1
unary-percent-string-coerces UNARY_PERCENT =UNARY_PERCENT("50") value 1
unary-percent-matches-percent-operator UNARY_PERCENT =UNARY_PERCENT(75)=75% value 1
concat-strings CONCAT =CONCAT("hello", " ", "world") value 2
concat-two-strings CONCAT =CONCAT("foo", "bar") value 1
concat-numbers-become-strings CONCAT =CONCAT(1, 2) value 1
concat-mixed-types CONCAT =CONCAT("x=", 42) value 1
concat-booleans CONCAT =CONCAT(TRUE, FALSE) value 1
concat-float-formatting CONCAT =CONCAT(1.5, 2.25) value 1
concat-empty-string CONCAT =CONCAT("", "abc") value 1
concat-matches-ampersand-operator CONCAT =CONCAT("a", "b")="a"&"b" value 1
eq-numbers-equal EQ =EQ(1, 1) value 1
eq-numbers-unequal EQ =EQ(1, 2) value 1
eq-strings-equal EQ =EQ("abc", "abc") value 1
eq-case-sensitivity EQ =EQ("ABC", "abc") value 1
eq-string-matches-number EQ =EQ("1", 1) value 1
eq-boolean-to-number EQ =EQ(TRUE, 1) value 1
eq-empty-vs-zero EQ =EQ("", 0) value 1
eq-matches-equals-operator EQ =EQ(5, 5)=(5=5) value 1
ne-numbers-unequal NE =NE(1, 2) value 1
ne-numbers-equal NE =NE(1, 1) value 1
ne-strings-unequal NE =NE("a", "b") value 1
ne-string-vs-number NE =NE("1", 1) value 1
ne-case-difference NE =NE("ABC", "abc") value 1
ne-matches-neq-operator NE =NE(1, 2)=(1<>2) value 1
gt-greater GT =GT(5, 3) value 1
gt-equal GT =GT(5, 5) value 1
gt-less GT =GT(2, 5) value 1
gt-strings-lex GT =GT("b", "a") value 1
gt-string-vs-number GT =GT("10", 9) value 1
gt-boolean-vs-number GT =GT(TRUE, 0) value
gt-matches-gt-operator GT =GT(5, 3)=(5>3) value 1
gte-greater GTE =GTE(5, 3) value 1
gte-equal GTE =GTE(5, 5) value 1
gte-less GTE =GTE(2, 5) value 1
gte-string-vs-number GTE =GTE("5", 5) value 1
gte-boolean GTE =GTE(TRUE, 1) value
gte-matches-gte-operator GTE =GTE(5, 5)=(5>=5) value 1
lt-less LT =LT(2, 5) value 1
lt-equal LT =LT(5, 5) value 1
lt-greater LT =LT(5, 2) value 1
lt-strings-lex LT =LT("a", "b") value 1
lt-string-vs-number LT =LT("9", 10) value 1
lt-matches-lt-operator LT =LT(2, 5)=(2<5) value 1
lte-less LTE =LTE(2, 5) value 1
lte-equal LTE =LTE(5, 5) value 1
lte-greater LTE =LTE(5, 2) value 1
lte-string-vs-number LTE =LTE("5", 5) value 1
lte-boolean LTE =LTE(FALSE, 0) value
lte-matches-lte-operator LTE =LTE(2, 5)=(2<=5) value 1
isbetween-inside ISBETWEEN =ISBETWEEN(5, 1, 10) value 1
isbetween-below ISBETWEEN =ISBETWEEN(0, 1, 10) value 1
isbetween-above ISBETWEEN =ISBETWEEN(11, 1, 10) value 1
isbetween-lower-boundary-default-inclusive ISBETWEEN =ISBETWEEN(1, 1, 10) value 1
isbetween-upper-boundary-default-inclusive ISBETWEEN =ISBETWEEN(10, 1, 10) value 1
isbetween-lower-exclusive-boundary ISBETWEEN =ISBETWEEN(1, 1, 10, FALSE) value 1
isbetween-upper-exclusive-boundary ISBETWEEN =ISBETWEEN(10, 1, 10, TRUE, FALSE) value 1
isbetween-both-exclusive-inside ISBETWEEN =ISBETWEEN(5, 1, 10, FALSE, FALSE) value 1
isbetween-string-value ISBETWEEN =ISBETWEEN("5", 1, 10) value 1
isbetween-negative-range ISBETWEEN =ISBETWEEN(-5, -10, -1) value 1
unique-1d-column UNIQUE =UNIQUE(A1:A5) value
unique-1d-strings UNIQUE =UNIQUE(A1:A4) value
unique-2d-rows UNIQUE =UNIQUE(A1:B4) value
unique-all-identical UNIQUE =UNIQUE(A1:A3) value
unique-no-duplicates UNIQUE =UNIQUE(A1:A3) value
unique-mixed-types-case UNIQUE =UNIQUE(A1:A3) value