File: lf.pl

package info (click to toggle)
libunicode-linebreak-perl 0.0.20140601-2%2Bdeb8u2
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 4,124 kB
  • ctags: 1,278
  • sloc: ansic: 32,274; perl: 783; makefile: 2
file content (87 lines) | stat: -rw-r--r-- 2,139 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
use strict;
use Text::LineFold;

sub dounfoldtest {
    my $in = shift;
    my $out = shift;
    my $method = shift;

    open IN, "<test-data/$in.in" or die "open: $!";
    my $instring = join '', <IN>;
    close IN;
    my $lf = Text::LineFold->new(@_);
    my $unfolded = $lf->unfold($instring, $method);

    my $outstring = '';
    if (open OUT, "<test-data/$out.out") {
        $outstring = join '', <OUT>;
        close OUT;
    } else {
        open XXX, ">test-data/$out.xxx";
        print XXX $unfolded;
        close XXX;
    }

    is($unfolded, $outstring, "unfold $in, method=$method");
}

sub do5tests {
    my $in = shift;
    my $out = shift;

    open IN, "<test-data/$in.in" or die "open: $!";
    my $instring = join '', <IN>;
    close IN;
    my $lf = Text::LineFold->new(@_);
    my %folded = ();
    foreach my $method (qw(PLAIN FIXED FLOWED)) {
	$folded{$method} = $lf->fold($instring, $method);
	my $outstring = '';
	if (open OUT, "<test-data/$out.".(lc $method).".out") {
	    $outstring = join '', <OUT>;
	    close OUT;
	} else {
	    open XXX, ">test-data/$out.".(lc $method).".xxx";
	    print XXX $folded{$method};
	    close XXX;
	}
	is($folded{$method}, $outstring, "fold $in, method=$method");
    }
    foreach my $method (qw(FIXED FLOWED)) {
	my $outstring = $lf->unfold($folded{$method}, $method);
	if (open IN, "<test-data/$in.norm.in") {
	    $instring = join '', <IN>;
	    close IN;
	}
	is($outstring, $instring, "unfold $out, method=$method");
	#XXXopen XXX, ">test-data/$out.".(lc $method).".xxx";
	#XXXprint XXX $outstring;
	#XXXclose XXX;
    }
}    

sub dowraptest {
    my $in = shift;
    my $out = shift;

    open IN, "<test-data/$in.in" or die "open: $!";
    my $instring = join '', <IN>;
    close IN;
    my $lf = Text::LineFold->new(@_);
    my $folded = $lf->fold("\t", ' ' x 4, $instring);

    my $outstring = '';
    if (open OUT, "<test-data/$out.wrap.out") {
        $outstring = join '', <OUT>;
        close OUT;
    } else {
        open XXX, ">test-data/$out.wrap.xxx";
        print XXX $folded;
        close XXX;
    }

    is($folded, $outstring, "wrap $in");
}

1;