#!/usr/bin/perl
use Test::More tests => 2;
use_ok("Text::Ngrams");
require 't/auxfunctions.pl';
my $ng = Text::Ngrams->new(windowsize=>2, type=>'word');
$ng->process_files('t/05.in');
#putfile('t/09.out', $ng->to_string( orderby=>'frequency', onlyfirst=>2 ));
my $producedout = normalize($ng->to_string( orderby=>'frequency', onlyfirst=>2 ));
my $oldout = normalize(scalar(getfile('t/09.out')));
# ordering may vary, so let us normalize it further
$producedout = &normalize1( $producedout );
$oldout = &normalize1( $oldout );
is($producedout, $oldout);
sub normalize1 {
my $s = shift;
my $r;
while ($s) {
if ($s =~ /\n---+\n/) {
$r .= "$`$&";
$s = $';
} else { return "$r$s" }
while ($s =~ /^\S+\t(\d+)\n/) {
my $n = $1;
my @a;
while ($s =~ /^\S+\t$n\n/)
{ push @a, $&; $s = $'; }
$r .= join('',sort(@a));
}
}
return $r;
}