summaryrefslogtreecommitdiff
path: root/ruby_1_8_5/test/ruby/test_whileuntil.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_5/test/ruby/test_whileuntil.rb')
-rw-r--r--ruby_1_8_5/test/ruby/test_whileuntil.rb77
1 files changed, 77 insertions, 0 deletions
diff --git a/ruby_1_8_5/test/ruby/test_whileuntil.rb b/ruby_1_8_5/test/ruby/test_whileuntil.rb
new file mode 100644
index 0000000000..6faed31160
--- /dev/null
+++ b/ruby_1_8_5/test/ruby/test_whileuntil.rb
@@ -0,0 +1,77 @@
+require 'test/unit'
+
+class TestWhileuntil < Test::Unit::TestCase
+ def test_while
+ tmp = open("while_tmp", "w")
+ tmp.print "tvi925\n";
+ tmp.print "tvi920\n";
+ tmp.print "vt100\n";
+ tmp.print "Amiga\n";
+ tmp.print "paper\n";
+ tmp.close
+
+ tmp = open("while_tmp", "r")
+ assert_instance_of(File, tmp)
+
+ while line = tmp.gets()
+ break if /vt100/ =~ line
+ end
+
+ assert(!tmp.eof?)
+ assert_match(/vt100/, line)
+ tmp.close
+
+ tmp = open("while_tmp", "r")
+ while line = tmp.gets()
+ next if /vt100/ =~ line
+ assert_no_match(/vt100/, line)
+ end
+ assert(tmp.eof?)
+ assert_no_match(/vt100/, line)
+ tmp.close
+
+ tmp = open("while_tmp", "r")
+ while tmp.gets()
+ line = $_
+ gsub(/vt100/, 'VT100')
+ if $_ != line
+ $_.gsub!('VT100', 'Vt100')
+ redo
+ end
+ assert_no_match(/vt100/, $_)
+ assert_no_match(/VT100/, $_)
+ end
+ assert(tmp.eof?)
+ tmp.close
+
+ sum=0
+ for i in 1..10
+ sum += i
+ i -= 1
+ if i > 0
+ redo
+ end
+ end
+ assert_equal(220, sum)
+
+ tmp = open("while_tmp", "r")
+ while line = tmp.gets()
+ break if 3
+ assert_no_match(/vt100/, line)
+ assert_no_match(/Amiga/, line)
+ assert_no_match(/paper/, line)
+ end
+ tmp.close
+
+ File.unlink "while_tmp" or `/bin/rm -f "while_tmp"`
+ assert(!File.exist?("while_tmp"))
+ end
+
+ def test_until
+ i = 0
+ until i>4
+ i+=1
+ end
+ assert(i>4)
+ end
+end