/[jsFind]/trunk/t/10homer.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/t/10homer.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 36 - (hide annotations)
Sat Oct 30 20:50:39 2004 UTC (19 years, 6 months ago) by dpavlin
File MIME type: application/x-troff
File size: 1800 byte(s)
remove all capital letters from base62 encoding which made it base 36 I
guess. They are not supported under Windows (because filesystem is case
preserving, you can burn files with capital and lower letters, but browser
will read wrong one)

1 dpavlin 20 #!/usr/bin/perl
2    
3     use strict;
4     use warnings;
5    
6 dpavlin 28 use Test::More tests => 7;
7 dpavlin 20 use blib;
8     use jsFind;
9     use Data::Dumper;
10    
11     BEGIN { use_ok('jsFind'); }
12    
13 dpavlin 36 my $t = new jsFind B => 100;
14 dpavlin 20
15 dpavlin 21 ok(-e "t/homer.txt", "Homer: The Odyssey preface");
16 dpavlin 20
17 dpavlin 25 my $line = 0;
18 dpavlin 20 my $text = '';
19 dpavlin 28 my %words_usage;
20 dpavlin 23 my $word_count = 0;
21 dpavlin 28 my $max_words;
22     #$max_words = 100;
23 dpavlin 20
24     my $res;
25    
26 dpavlin 23 my $full_text;
27    
28 dpavlin 21 ok(open(U, "t/homer.txt"), "open homer.txt");
29 dpavlin 20 while(<U>) {
30     chomp;
31 dpavlin 25 $line++;
32     next if (/^\s*$/);
33 dpavlin 20
34 dpavlin 25 $full_text = "$line: ";
35 dpavlin 23
36 dpavlin 25 my %usage;
37 dpavlin 20
38 dpavlin 25 my @words = split(/\s+/,lc($_));
39 dpavlin 23
40 dpavlin 25 foreach (@words) {
41     $usage{$_}++;
42     }
43 dpavlin 23
44 dpavlin 25 foreach my $word (@words) {
45 dpavlin 20
46 dpavlin 25 next if ($word eq '');
47 dpavlin 20
48 dpavlin 28 $words_usage{"$word $line"} = $usage{$word};
49 dpavlin 20
50 dpavlin 25 $res->{$word}->{$line} = $usage{$word};
51 dpavlin 20
52 dpavlin 25 $t->B_search(
53     Key => $word,
54     Data => { "$line" => {
55     t => "Odyssey line $line",
56     f => $usage{$word},
57 dpavlin 20 },
58 dpavlin 25 },
59     Insert => 1,
60     Append => 1,
61     );
62 dpavlin 23
63 dpavlin 25 $word_count++;
64 dpavlin 23
65 dpavlin 25 $full_text .= "$word ";
66 dpavlin 23
67 dpavlin 25 }
68 dpavlin 20
69 dpavlin 25 $full_text = "\n";
70 dpavlin 20
71 dpavlin 25 last if ($max_words && $word_count >= $max_words);
72 dpavlin 20 }
73    
74     my $test_data = Dumper($res);
75     $test_data =~ s/=>/:/gs;
76     $test_data =~ s/\$VAR1/var test_data/;
77 dpavlin 28 ok(open(JS, "> html/test_data.js"), "test_data.js");
78 dpavlin 20 print JS $test_data;
79     close(JS);
80    
81     ok($test_data, "test_data saved");
82    
83 dpavlin 28 my $sum = 0;
84     ok(open(TD, "> homer_freq.txt"), "homer_freq.txt");
85     foreach my $w (keys %words_usage) {
86     print TD "$w: $words_usage{$w}\n";
87     $sum += $words_usage{$w};
88     }
89     close(TD);
90     diag "homer_freq.txt created";
91 dpavlin 20
92 dpavlin 23 if (open(T,"> homer_text.txt")) {
93     print T $full_text;
94     close(T);
95     }
96     diag "homer_text.txt created";
97    
98     if (open(T,"> homer_words.txt")) {
99     print T $t->to_string;
100     close(T);
101     }
102     diag "homer_words.txt created";
103    
104 dpavlin 28 my $total_words = scalar keys %words_usage;
105 dpavlin 20
106 dpavlin 35 cmp_ok($t->to_jsfind(dir=>"./html/homer"), '==', $total_words, " jsfind index with $total_words words");
107 dpavlin 25
108 dpavlin 28 #print Dumper($t);

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26