aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/old/vlib/strings/textscanner/textscanner_test.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/old/vlib/strings/textscanner/textscanner_test.v')
-rw-r--r--v_windows/v/old/vlib/strings/textscanner/textscanner_test.v159
1 files changed, 159 insertions, 0 deletions
diff --git a/v_windows/v/old/vlib/strings/textscanner/textscanner_test.v b/v_windows/v/old/vlib/strings/textscanner/textscanner_test.v
new file mode 100644
index 0000000..e9d2487
--- /dev/null
+++ b/v_windows/v/old/vlib/strings/textscanner/textscanner_test.v
@@ -0,0 +1,159 @@
+import strings.textscanner
+
+fn test_remaining() {
+ mut s := textscanner.new('abc')
+ assert s.remaining() == 3
+ s.next()
+ s.next()
+ assert s.remaining() == 1
+ s.next()
+ assert s.remaining() == 0
+ s.next()
+ s.next()
+ assert s.remaining() == 0
+ s.reset()
+ assert s.remaining() == 3
+}
+
+fn test_next() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ assert s.next() == `b`
+ assert s.next() == `c`
+ assert s.next() == -1
+ assert s.next() == -1
+ assert s.next() == -1
+}
+
+fn test_skip() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ s.skip()
+ assert s.next() == `c`
+ assert s.next() == -1
+}
+
+fn test_skip_n() {
+ mut s := textscanner.new('abc')
+ s.skip_n(2)
+ assert s.next() == `c`
+ assert s.next() == -1
+}
+
+fn test_peek() {
+ mut s := textscanner.new('abc')
+ assert s.peek() == `a`
+ assert s.peek() == `a`
+ assert s.peek() == `a`
+ //
+ assert s.next() == `a`
+ assert s.next() == `b`
+ assert s.next() == `c`
+ assert s.next() == -1
+}
+
+fn test_peek_n() {
+ mut s := textscanner.new('abc')
+ assert s.peek_n(0) == `a`
+ assert s.peek_n(1) == `b`
+ assert s.peek_n(2) == `c`
+ assert s.peek_n(3) == -1
+ assert s.peek_n(4) == -1
+ //
+ assert s.next() == `a`
+ assert s.next() == `b`
+ assert s.next() == `c`
+ assert s.next() == -1
+}
+
+fn test_back() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ s.back()
+ assert s.next() == `a`
+ assert s.next() == `b`
+ s.back()
+ assert s.next() == `b`
+ assert s.next() == `c`
+ assert s.next() == -1
+}
+
+fn test_back_n() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ s.back_n(10)
+ assert s.next() == `a`
+ assert s.next() == `b`
+ assert s.next() == `c`
+ s.back_n(2)
+ assert s.next() == `b`
+}
+
+fn test_peek_back() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ assert s.next() == `b`
+ // check that calling .peek_back() multiple times
+ // does not change the state:
+ assert s.peek_back() == `a`
+ assert s.peek_back() == `a`
+ assert s.peek_back() == `a`
+ // advance, then peek_back again:
+ assert s.next() == `c`
+ assert s.peek_back() == `b`
+ // peeking before the start:
+ s.reset()
+ assert s.peek_back() == -1
+ // peeking right at the end:
+ s.goto_end()
+ assert s.peek_back() == `b`
+}
+
+fn test_peek_back_n() {
+ mut s := textscanner.new('abc')
+ s.goto_end()
+ assert s.peek_back_n(0) == `c`
+ assert s.peek_back_n(1) == `b`
+ assert s.peek_back_n(2) == `a`
+ assert s.peek_back_n(3) == -1
+ assert s.peek_back_n(4) == -1
+}
+
+fn test_reset() {
+ mut s := textscanner.new('abc')
+ assert s.next() == `a`
+ s.next()
+ s.next()
+ assert s.next() == -1
+ s.reset()
+ assert s.next() == `a`
+}
+
+fn test_current() {
+ mut s := textscanner.new('abc')
+ assert s.current() == -1
+ assert s.next() == `a`
+ assert s.current() == `a`
+ assert s.current() == `a`
+ assert s.peek_back() == -1
+ assert s.next() == `b`
+ assert s.current() == `b`
+ assert s.current() == `b`
+ assert s.peek_back() == `a`
+ assert s.next() == `c`
+ assert s.current() == `c`
+ assert s.next() == -1
+ assert s.current() == `c`
+ assert s.next() == -1
+ assert s.current() == `c`
+ s.reset()
+ assert s.current() == -1
+ assert s.next() == `a`
+ assert s.current() == `a`
+}
+
+fn test_goto_end() {
+ mut s := textscanner.new('abc')
+ s.goto_end()
+ assert s.current() == `c`
+}