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