bin/marutest in maruku-0.4.0 vs bin/marutest in maruku-0.4.1

- old
+ new

@@ -7,21 +7,33 @@ def marker(x) "\n*** Output of #{x} ***\n" end +# a = expected b = found def equals(a, b) a = a.split("\n") b = b.split("\n") for i in 0..([a.size-1,b.size-1].max) la = a[i] lb = b[i] if la != lb puts "\n" - puts "Line #{i}:\n#{la.inspect}\n" - puts "#{lb.inspect}\n" + + def write_lines(i, j, lines, prefix, i_star) + i = [i, 0].max + j = [j, lines.size-1].min + for a in i..j + l = lines[a].gsub(/\t/,' ') + puts ("%s %3d" % [prefix, a]) + + (a==i_star ? " -->" : " ")+lines[a] + end + end + + write_lines(i-3, i+3, a, "expected", i ) + write_lines(i-3, i+3, b, " found", i ) return false end end return true end @@ -119,10 +131,10 @@ # actual[:inspect] = m.instance_eval(actual[:inspect]) # expected[:inspect] = m.instance_eval(expected[:inspect]) TOTEST.each do |x| - if not equals(actual[x], expected[x]) + if not equals(expected[x], actual[x]) if its_ok.include? x expected[x] = actual[x] $stdout.write " relax:#{x} " relaxed << x else