#!/bin/env ruby -w require File.dirname(__FILE__) + '/../test_helper' require 'diff' include Diff class DiffTest < Test::Unit::TestCase def test_init assert(1 == 1, "tests working") assert_nothing_raised("object created") do s = SequenceMatcher.new "private Thread currentThread;", "private volatile Thread currentThread;", proc { |x| x == ' ' } end end def test_matching_blocks s = SequenceMatcher.new "abxcd", "abcd" assert(s.get_matching_blocks == [[0, 0, 2], [3, 2, 2], [5, 4, 0]], "get_matching_blocks works") end def test_ratio s = SequenceMatcher.new "abcd", "bcde" assert(s.ratio == 0.75, "ratio works") assert(s.quick_ratio == 0.75, "quick_ratio works") assert(s.real_quick_ratio == 1.0, "real_quick_ratio works") end def test_longest_match s = SequenceMatcher.new(" abcd", "abcd abcd") assert(s.find_longest_match(0, 5, 0, 9) == [0, 4, 5], "find_longest_match works") s = SequenceMatcher.new() end def test_opcodes s = SequenceMatcher.new("qabxcd", "abycdf") assert(s.get_opcodes == [ [:delete, 0, 1, 0, 0], [:equal, 1, 3, 0, 2], [:replace, 3, 4, 2, 3], [:equal, 4, 6, 3, 5], [:insert, 6, 6, 5, 6]], "get_opcodes works") end def test_count_leading assert(Diff.count_leading(' abc', ' ') == 3, "count_leading works") end def test_html2list a = "here is the original text" #p HTMLDiff.html2list(a) end def test_html_diff a = "this was the original string" b = "this is the super string" assert_equal 'this was ' + 'is the ' + 'original ' + 'super string', HTMLDiff.diff(a, b) end def test_html_diff_with_multiple_paragraphs a = "

this was the original string

" b = "

this is

\r\n

the super string

\r\n

around the world

" assert_equal( "

this was " + "is

\r\n

the " + "original " + "super string

\r\n" + "

around the world

", HTMLDiff.diff(a, b) ) end end