File Coverage

lib/Lingua/JA/Romaji/Valid/Filter/Kana.pm
Criterion Covered Total %
statement 39 39 100.0
branch 11 12 91.6
condition n/a
subroutine 11 11 100.0
pod 9 9 100.0
total 70 71 98.5


line stmt bran cond sub pod time code
1             package Lingua::JA::Romaji::Valid::Filter::Kana;
2              
3 4     4   24 use strict;
  4         8  
  4         142  
4 4     4   22 use warnings;
  4         7  
  4         3122  
5              
6 308     308 1 1756 sub new { bless {}, shift }
7              
8             sub normalize_syllabic_n_m {
9 230     230 1 396 my ($self, $kana_ref) = @_;
10              
11 230         345 $$kana_ref =~ s/^n([cdfghjklnrstvwyz])/$1/;
12 230         271 $$kana_ref =~ s/^m([bmp])/$1/;
13              
14 230         785 return 1;
15             }
16              
17             sub normalize_syllabic_n {
18 572     572 1 883 my ($self, $kana_ref) = @_;
19              
20 572         787 $$kana_ref =~ s/^n([bcdfghjklmnprstvwyz])/$1/;
21              
22 572         2082 return 1;
23             }
24              
25             sub normalize_syllabic_nn {
26 103     103 1 136 my ($self, $kana_ref) = @_;
27              
28 103         182 $$kana_ref =~ s/^nn([bcdfghjklmnprstvwyz])/$1/;
29              
30 103         351 return 1;
31             }
32              
33             sub normalize_syllabic_m {
34 103     103 1 353 my ($self, $kana_ref) = @_;
35              
36 103         139 $$kana_ref =~ s/^m([bmp])/$1/;
37              
38 103         320 return 1;
39             }
40              
41             sub normalize_geminate_tch {
42 544     544 1 645 my ($self, $kana_ref) = @_;
43              
44 544         1092 $$kana_ref =~ s/^([bdfghjklprstvz])\1/$1/;
45 544         609 $$kana_ref =~ s/^tch/ch/;
46              
47 544         2365 return 1;
48             }
49              
50             sub normalize_geminate_cch {
51 103     103 1 192 my ($self, $kana_ref) = @_;
52              
53 103         123 $$kana_ref =~ s/^tch/ch/;
54 103         204 $$kana_ref =~ s/^([bcdfghjklprstvz])\1/$1/;
55              
56 103         477 return 1;
57             }
58              
59             sub normalize_geminate {
60 155     155 1 265 my ($self, $kana_ref) = @_;
61              
62 155         318 $$kana_ref =~ s/^([bcdfghjklprstvz])\1/$1/;
63              
64 155         643 return 1;
65             }
66              
67             sub prohibit_foreign_kanas {
68 38     38 1 57 my ($self, $kana_ref) = @_;
69              
70 38 100       104 return if $$kana_ref =~ /^v/;
71 37 100       80 return if $$kana_ref =~ /^[kg]w/;
72 36 100       74 return if $$kana_ref =~ /y[ie]$/;
73 35 50       66 return if $$kana_ref =~ /w[^a]$/;
74 35 100       125 return if $$kana_ref =~ /(?:f|ts)[^u]$/;
75 34 100       89 return if $$kana_ref =~ /(?:j|ch|sh)e$/;
76              
77 31         130 return 1;
78             }
79              
80             1;
81              
82             __END__