[SkipList] Added random-lvel generators for max height 32/24/16
[libcds.git] / test / stress / data / split.pl
1 #!/bin/perl\r
2 \r
3 my %words ;\r
4 \r
5 my $input_file = shift;\r
6 my $output_file = shift;\r
7 \r
8 open( my $f, $input_file ) or die "Cannot open input file $input_file";\r
9 binmode $f ;\r
10 \r
11 my $text = ''   ;\r
12 $text .= $_ while (<$f>) ;\r
13 close $f ;\r
14 \r
15 my @a = split /[^\w'-]/, $text ;\r
16 foreach my $w (@a) {\r
17         $words{$w} += 1 if $w ;\r
18 }\r
19 for (my $j = 1; $j < 30; ++$j ) {\r
20         for ( my $i = 0; $i + $j - 1 < @a; $i += 1 ) {\r
21                 my $s = '';\r
22                 for ( my $k = 0; $k < $j; ++$k ) {\r
23                         $s .= ' '.$a[$i+$k];\r
24                 }\r
25                 $s =~ /\s*(\S.+\S)\s*/;\r
26                 $s = $1 ;\r
27                 $s =~ s/\s\s+/ /g ;\r
28                 $words{$s} += 1 ;\r
29         }\r
30 }\r
31 \r
32 open (my $dst, ">$output_file") or die "Cannot open output file $output_file";\r
33 binmode $dst ;\r
34 \r
35 my $nCount = 0 ;\r
36 $nCount++ foreach (keys %words) ;\r
37 print $dst $nCount, "\n" ;\r
38 \r
39 print "Generate test dictionary $output_file ...\n" ;\r
40 print $dst $_, "\n" foreach (keys %words)       ;\r
41 \r
42 close $dst  ;\r