Skip to content

Commit 5a4fdd6

Browse files
committed
adds testing for XString comparison operators
1 parent 764f01b commit 5a4fdd6

File tree

1 file changed

+54
-4
lines changed

1 file changed

+54
-4
lines changed

tests/testthat/test-XString-class.R

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,64 @@ test_that("equality methods work as advertised", {
137137
expect_true(AAString(aastr) != BString(bstr))
138138
expect_true(bstr == BString(bstr))
139139

140+
## comparisons against character
141+
expect_true(DNAString("AAA") == "AAA")
142+
expect_true(DNAString("AAA") != "BBB")
143+
expect_false(RNAString("UUU") == "TTT")
144+
expect_true(AAString("UUU") == "UUU")
145+
## these may seem redundant but need to ensure that order doesn't matter
146+
expect_true("AAA" == DNAString("AAA"))
147+
expect_true("BBB" != DNAString("AAA"))
148+
expect_false("TTT" == RNAString("UUU"))
149+
expect_true("UUU" == AAString("UUU"))
150+
151+
## invalid comparisons
152+
expect_error(DNAString() == AAString(),
153+
"comparison between a \"DNAString\" instance and a \"AAString\" instance is not supported")
154+
expect_error(DNAString() == BString(),
155+
"comparison between a \"DNAString\" instance and a \"BString\" instance is not supported")
156+
expect_error(RNAString() == AAString(),
157+
"comparison between a \"RNAString\" instance and a \"AAString\" instance is not supported")
158+
expect_error(RNAString() == BString(),
159+
"comparison between a \"RNAString\" instance and a \"BString\" instance is not supported")
160+
})
161+
162+
test_that("inequality methods work as advertised", {
163+
## Basic cases
164+
expect_true(DNAString("AAA") <= DNAString("AAAA"))
165+
expect_false(DNAString("AAA") > DNAString("AAAA"))
166+
expect_true(DNAString("AAA") <= DNAString("AAA"))
167+
expect_true(DNAString("A") <= DNAString("C"))
168+
expect_false(DNAString("ATTT") > RNAString("AUUU"))
169+
expect_true(AAString("AAA") <= AAString("BBB"))
170+
expect_true(BString("Testing") <= BString("ZZZTesting"))
171+
172+
## have to check every combination for XString - character comparisons
173+
## due to how dispatch works
174+
expect_true(BString("ABCDEFG") <= "ABCDEFG")
175+
expect_true(BString("ABCDEFG") < "ZYXWVUT")
176+
expect_true(BString("ABCDEFG") >= "ABCDEFG")
177+
expect_false(BString("ABCDEFG") > "ABCDEFG")
178+
179+
expect_true("ABCDEFG" <= BString("ABCDEFG"))
180+
expect_false("ZYXWVUT" < BString("ABCDEFG"))
181+
expect_true("ABCDEFG" >= BString("ABCDEFG"))
182+
expect_false("ABCDEFG" > BString("ABCDEFG"))
183+
184+
## Cases with potentially invalid characters
185+
expect_true(DNAString("AAA") < "BBB")
186+
expect_true(DNAString("CCC") > "BBB")
187+
expect_true(RNAString("UUU") >= "TTT")
188+
expect_true(RNAString("UUU") >= "UUU")
189+
140190
## invalid comparisons
141-
expect_error(DNAString(dnastr) == AAString(aastr),
191+
expect_error(DNAString() <= AAString(),
142192
"comparison between a \"DNAString\" instance and a \"AAString\" instance is not supported")
143-
expect_error(DNAString(dnastr) == BString(bstr),
193+
expect_error(DNAString() <= BString(),
144194
"comparison between a \"DNAString\" instance and a \"BString\" instance is not supported")
145-
expect_error(RNAString(rnastr) == AAString(aastr),
195+
expect_error(RNAString() <= AAString(),
146196
"comparison between a \"RNAString\" instance and a \"AAString\" instance is not supported")
147-
expect_error(RNAString(rnastr) == BString(bstr),
197+
expect_error(RNAString() <= BString(),
148198
"comparison between a \"RNAString\" instance and a \"BString\" instance is not supported")
149199
})
150200

0 commit comments

Comments
 (0)