$/ = undef;
$_ = <DATA>;
for my $name ( qw( watch hilite_diff ) ) {
    my $program = $_;
    $program =~ s/XXX/$name/g;
    open my $fh, "> t/20$name.tmpl" or die $!;
    print $fh $program or die $!;
    close $fh or die $!;
    system "$^X t/20$name.tmpl > t/20$name.t";
}
__DATA__
#!perl
# This script is generated by t/mk-test and generates some .t files.
use strict;
use warnings;
use lib 'lib';
use Term::HiliteDiff 'XXX';

my $orig = " " x 10;
$orig .= "\n";
$orig x= 10;

my @out;
for my $count ( reverse 1 .. $orig =~ tr/ / / ) {
    my $this = $orig;
    my $offset = 0;
    $this =~ / /g while $count--;
    substr $this, $-[0], 1, 'X';
    $this =~ s/(?: +\n)+\z//;

    push @out, [ $this, XXX $this ];
}

print "#!perl
# This script is automatically generated by t/mk-test
use Test::More tests => " . scalar(6*@out) . ";
use Term::HiliteDiff 'XXX';
";
for ( @out ) {
    $_->[1] =~ s/\e/\\e/g;
    $_->[1] =~ s/\n/\\n/g;
    $_->[0] =~ s/\n/\\n/g;
    print qq{ok( XXX("$_->[0]"), "$_->[1]" );
};
}
print "for ( 1 .. 5 ) {
    my \$obj = Term::HiliteDiff->new;
";

for ( @out ) {
    print qq{ok( \$obj->XXX("$_->[0]"), "$_->[1]" );
};
}

print "}
";

unlink $0;
