Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Run with the program you want to test as the first argument. Uses the test cases verbatim from the question.
- test_cases = <<END
- e -> e
- o -> o
- +ee -> e
- +eo -> o
- +oe -> o
- +oo -> e
- *ee -> e
- *eo -> e
- *oe -> e
- *oo -> o
- +e+ee -> e
- +e+eo -> o
- +e+oe -> o
- +e+oo -> e
- +e*ee -> e
- +e*eo -> e
- +e*oe -> e
- +e*oo -> o
- +o+ee -> o
- +o+eo -> e
- +o+oe -> e
- +o+oo -> o
- +o*ee -> o
- +o*eo -> o
- +o*oe -> o
- +o*oo -> e
- *e+ee -> e
- *e+eo -> e
- *e+oe -> e
- *e+oo -> e
- *e*ee -> e
- *e*eo -> e
- *e*oe -> e
- *e*oo -> e
- *o+ee -> e
- *o+eo -> o
- *o+oe -> o
- *o+oo -> e
- *o*ee -> e
- *o*eo -> e
- *o*oe -> e
- *o*oo -> o
- ++eee -> e
- ++eeo -> o
- ++eoe -> o
- ++eoo -> e
- ++oee -> o
- ++oeo -> e
- ++ooe -> e
- ++ooo -> o
- +*eee -> e
- +*eeo -> o
- +*eoe -> e
- +*eoo -> o
- +*oee -> e
- +*oeo -> o
- +*ooe -> o
- +*ooo -> e
- *+eee -> e
- *+eeo -> e
- *+eoe -> e
- *+eoo -> o
- *+oee -> e
- *+oeo -> o
- *+ooe -> e
- *+ooo -> e
- **eee -> e
- **eeo -> e
- **eoe -> e
- **eoo -> e
- **oee -> e
- **oeo -> e
- **ooe -> e
- **ooo -> o
- +e+e+e+ee -> e
- +o+o+o+oo -> o
- *e*e*e*ee -> e
- *o*o*o*oo -> o
- +e+o+e+oe -> e
- +o+e+o+eo -> o
- *e*o*e*oe -> e
- *o*e*o*eo -> e
- +e*e+e*ee -> e
- +o*o+o*oo -> o
- *e+e*e+ee -> e
- *o+o*o+oo -> o
- +**++*+*eeoeeooee -> e
- +**++*+***eooeoeooeoe -> e
- +**+***+**++**+eooeoeeoeeoeooeo -> o
- +e*o*e**eoe -> e
- +*e+e+o+e**eeoe -> e
- **o++*ee*++eoe*eo+eoo -> o
- END
- tests = test_cases.gsub("\n\n","\n").split("\n").map{|s| s.split(" -> ")}
- name = ARGV[0] || 'even-odd.rb'
- tests.each do |test,expect|
- puts "#{test} -> #{expect}"
- io = IO.popen("ruby #{name}",'w+')
- io.puts test
- if expect != io.gets.chomp
- puts "failed on #{test}, expected #{expect}"
- exit
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement