Best Mockery code snippet using Not
Fips181Generator.php
Source:Fips181Generator.php
1<?php2namespace TweedeGolf\GeneratorBundle\Generator\Password;3use Symfony\Component\Security\Core\Util\SecureRandomInterface;4class Fips181Generator extends AbstractPasswordGenerator5{6 // flags7 const MAX_UNACCEPTABLE = 20;8 // gram rules:9 const NOT_BEGIN_SYLLABLE = 0x08;10 const NO_FINAL_SPLIT = 0x04;11 const VOWEL = 0x02;12 const ALTERNATE_VOWEL = 0x01;13 const NO_SPECIAL_RULE = 0x00;14 // digram rules:15 const BEGIN = 0x80;16 const NOT_BEGIN = 0x40;17 const BREAK_GRAM = 0x40;18 const PREFIX = 0x20;19 const ILLEGAL_PAIR = 0x10;20 const SUFFIX = 0x04;21 const END = 0x02;22 const NOT_END = 0x01;23 const ANY_COMBINATION = 0x00;24 private $grams;25 private $vowelGrams;26 private $gramRules;27 private $digramRules;28 private $separator;29 public function __construct(SecureRandomInterface $rng, $separator = '-')30 {31 parent::__construct($rng);32 $this->setSeparator($separator);33 $this->grams = [34 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',35 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u',36 'v', 'w', 'x', 'y', 'z', 'ch', 'gh', 'ph', 'rh',37 'sh', 'th', 'wh', 'qu', 'ck',38 ];39 $this->vowelGrams = [40 'a', 'e', 'i', 'o', 'u', 'y',41 ];42 $this->generateGramRules();43 $this->generateDigramRules();44 }45 public function generateGramRules()46 {47 // gram rules48 $this->gramRules = [];49 foreach ($this->grams as $gram) {50 $this->gramRules[$gram] = self::NO_SPECIAL_RULE;51 }52 foreach ($this->vowelGrams as $gram) {53 $this->gramRules[$gram] = self::VOWEL;54 }55 $this->gramRules['e'] |= self::NO_FINAL_SPLIT;56 $this->gramRules['y'] |= self::ALTERNATE_VOWEL;57 $this->gramRules['x'] = self::NOT_BEGIN_SYLLABLE;58 $this->gramRules['ck'] = self::NOT_BEGIN_SYLLABLE;59 }60 public function generateDigramRules()61 {62 // digram rules63 $this->digramRules = [];64 $this->digramRules['a'] = [];65 $this->digramRules['a']['a'] = self::ILLEGAL_PAIR;66 $this->digramRules['a']['b'] = self::ANY_COMBINATION;67 $this->digramRules['a']['c'] = self::ANY_COMBINATION;68 $this->digramRules['a']['d'] = self::ANY_COMBINATION;69 $this->digramRules['a']['e'] = self::ILLEGAL_PAIR;70 $this->digramRules['a']['f'] = self::ANY_COMBINATION;71 $this->digramRules['a']['g'] = self::ANY_COMBINATION;72 $this->digramRules['a']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;73 $this->digramRules['a']['i'] = self::ANY_COMBINATION;74 $this->digramRules['a']['j'] = self::ANY_COMBINATION;75 $this->digramRules['a']['k'] = self::ANY_COMBINATION;76 $this->digramRules['a']['l'] = self::ANY_COMBINATION;77 $this->digramRules['a']['m'] = self::ANY_COMBINATION;78 $this->digramRules['a']['n'] = self::ANY_COMBINATION;79 $this->digramRules['a']['o'] = self::ILLEGAL_PAIR;80 $this->digramRules['a']['p'] = self::ANY_COMBINATION;81 $this->digramRules['a']['r'] = self::ANY_COMBINATION;82 $this->digramRules['a']['s'] = self::ANY_COMBINATION;83 $this->digramRules['a']['t'] = self::ANY_COMBINATION;84 $this->digramRules['a']['u'] = self::ANY_COMBINATION;85 $this->digramRules['a']['v'] = self::ANY_COMBINATION;86 $this->digramRules['a']['w'] = self::ANY_COMBINATION;87 $this->digramRules['a']['x'] = self::ANY_COMBINATION;88 $this->digramRules['a']['y'] = self::ANY_COMBINATION;89 $this->digramRules['a']['z'] = self::ANY_COMBINATION;90 $this->digramRules['a']['ch'] = self::ANY_COMBINATION;91 $this->digramRules['a']['gh'] = self::ILLEGAL_PAIR;92 $this->digramRules['a']['ph'] = self::ANY_COMBINATION;93 $this->digramRules['a']['rh'] = self::ILLEGAL_PAIR;94 $this->digramRules['a']['sh'] = self::ANY_COMBINATION;95 $this->digramRules['a']['th'] = self::ANY_COMBINATION;96 $this->digramRules['a']['wh'] = self::ILLEGAL_PAIR;97 $this->digramRules['a']['qu'] = self::BREAK_GRAM | self::NOT_END;98 $this->digramRules['a']['ck'] = self::ANY_COMBINATION;99 $this->digramRules['b'] = [];100 $this->digramRules['b']['a'] = self::ANY_COMBINATION;101 $this->digramRules['b']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;102 $this->digramRules['b']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;103 $this->digramRules['b']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;104 $this->digramRules['b']['e'] = self::ANY_COMBINATION;105 $this->digramRules['b']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;106 $this->digramRules['b']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;107 $this->digramRules['b']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;108 $this->digramRules['b']['i'] = self::ANY_COMBINATION;109 $this->digramRules['b']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;110 $this->digramRules['b']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;111 $this->digramRules['b']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;112 $this->digramRules['b']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;113 $this->digramRules['b']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;114 $this->digramRules['b']['o'] = self::ANY_COMBINATION;115 $this->digramRules['b']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;116 $this->digramRules['b']['r'] = self::BEGIN | self::END;117 $this->digramRules['b']['s'] = self::NOT_BEGIN;118 $this->digramRules['b']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;119 $this->digramRules['b']['u'] = self::ANY_COMBINATION;120 $this->digramRules['b']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;121 $this->digramRules['b']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;122 $this->digramRules['b']['x'] = self::ILLEGAL_PAIR;123 $this->digramRules['b']['y'] = self::ANY_COMBINATION;124 $this->digramRules['b']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;125 $this->digramRules['b']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;126 $this->digramRules['b']['gh'] = self::ILLEGAL_PAIR;127 $this->digramRules['b']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;128 $this->digramRules['b']['rh'] = self::ILLEGAL_PAIR;129 $this->digramRules['b']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;130 $this->digramRules['b']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;131 $this->digramRules['b']['wh'] = self::ILLEGAL_PAIR;132 $this->digramRules['b']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;133 $this->digramRules['b']['ck'] = self::ILLEGAL_PAIR;134 $this->digramRules['c'] = [];135 $this->digramRules['c']['a'] = self::ANY_COMBINATION;136 $this->digramRules['c']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;137 $this->digramRules['c']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;138 $this->digramRules['c']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;139 $this->digramRules['c']['e'] = self::ANY_COMBINATION;140 $this->digramRules['c']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;141 $this->digramRules['c']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;142 $this->digramRules['c']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;143 $this->digramRules['c']['i'] = self::ANY_COMBINATION;144 $this->digramRules['c']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;145 $this->digramRules['c']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;146 $this->digramRules['c']['l'] = self::SUFFIX | self::NOT_END;147 $this->digramRules['c']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;148 $this->digramRules['c']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;149 $this->digramRules['c']['o'] = self::ANY_COMBINATION;150 $this->digramRules['c']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;151 $this->digramRules['c']['r'] = self::NOT_END;152 $this->digramRules['c']['s'] = self::NOT_BEGIN | self::END;153 $this->digramRules['c']['t'] = self::NOT_BEGIN | self::PREFIX;154 $this->digramRules['c']['u'] = self::ANY_COMBINATION;155 $this->digramRules['c']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;156 $this->digramRules['c']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;157 $this->digramRules['c']['x'] = self::ILLEGAL_PAIR;158 $this->digramRules['c']['y'] = self::ANY_COMBINATION;159 $this->digramRules['c']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;160 $this->digramRules['c']['ch'] = self::ILLEGAL_PAIR;161 $this->digramRules['c']['gh'] = self::ILLEGAL_PAIR;162 $this->digramRules['c']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;163 $this->digramRules['c']['rh'] = self::ILLEGAL_PAIR;164 $this->digramRules['c']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;165 $this->digramRules['c']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;166 $this->digramRules['c']['wh'] = self::ILLEGAL_PAIR;167 $this->digramRules['c']['qu'] = self::NOT_BEGIN | self::SUFFIX | self::NOT_END;168 $this->digramRules['c']['ck'] = self::ILLEGAL_PAIR;169 $this->digramRules['d'] = [];170 $this->digramRules['d']['a'] = self::ANY_COMBINATION;171 $this->digramRules['d']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;172 $this->digramRules['d']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;173 $this->digramRules['d']['d'] = self::NOT_BEGIN;174 $this->digramRules['d']['e'] = self::ANY_COMBINATION;175 $this->digramRules['d']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;176 $this->digramRules['d']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;177 $this->digramRules['d']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;178 $this->digramRules['d']['i'] = self::ANY_COMBINATION;179 $this->digramRules['d']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;180 $this->digramRules['d']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;181 $this->digramRules['d']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;182 $this->digramRules['d']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;183 $this->digramRules['d']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;184 $this->digramRules['d']['o'] = self::ANY_COMBINATION;185 $this->digramRules['d']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;186 $this->digramRules['d']['r'] = self::BEGIN | self::NOT_END;187 $this->digramRules['d']['s'] = self::NOT_BEGIN | self::END;188 $this->digramRules['d']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;189 $this->digramRules['d']['u'] = self::ANY_COMBINATION;190 $this->digramRules['d']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;191 $this->digramRules['d']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;192 $this->digramRules['d']['x'] = self::ILLEGAL_PAIR;193 $this->digramRules['d']['y'] = self::ANY_COMBINATION;194 $this->digramRules['d']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;195 $this->digramRules['d']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;196 $this->digramRules['d']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;197 $this->digramRules['d']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;198 $this->digramRules['d']['rh'] = self::ILLEGAL_PAIR;199 $this->digramRules['d']['sh'] = self::NOT_BEGIN | self::NOT_END;200 $this->digramRules['d']['th'] = self::NOT_BEGIN | self::PREFIX;201 $this->digramRules['d']['wh'] = self::ILLEGAL_PAIR;202 $this->digramRules['d']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;203 $this->digramRules['d']['ck'] = self::ILLEGAL_PAIR;204 $this->digramRules['e'] = [];205 $this->digramRules['e']['a'] = self::ANY_COMBINATION;206 $this->digramRules['e']['b'] = self::ANY_COMBINATION;207 $this->digramRules['e']['c'] = self::ANY_COMBINATION;208 $this->digramRules['e']['d'] = self::ANY_COMBINATION;209 $this->digramRules['e']['e'] = self::ANY_COMBINATION;210 $this->digramRules['e']['f'] = self::ANY_COMBINATION;211 $this->digramRules['e']['g'] = self::ANY_COMBINATION;212 $this->digramRules['e']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;213 $this->digramRules['e']['i'] = self::NOT_END;214 $this->digramRules['e']['j'] = self::ANY_COMBINATION;215 $this->digramRules['e']['k'] = self::ANY_COMBINATION;216 $this->digramRules['e']['l'] = self::ANY_COMBINATION;217 $this->digramRules['e']['m'] = self::ANY_COMBINATION;218 $this->digramRules['e']['n'] = self::ANY_COMBINATION;219 $this->digramRules['e']['o'] = self::BREAK_GRAM;220 $this->digramRules['e']['p'] = self::ANY_COMBINATION;221 $this->digramRules['e']['r'] = self::ANY_COMBINATION;222 $this->digramRules['e']['s'] = self::ANY_COMBINATION;223 $this->digramRules['e']['t'] = self::ANY_COMBINATION;224 $this->digramRules['e']['u'] = self::ANY_COMBINATION;225 $this->digramRules['e']['v'] = self::ANY_COMBINATION;226 $this->digramRules['e']['w'] = self::ANY_COMBINATION;227 $this->digramRules['e']['x'] = self::ANY_COMBINATION;228 $this->digramRules['e']['y'] = self::ANY_COMBINATION;229 $this->digramRules['e']['z'] = self::ANY_COMBINATION;230 $this->digramRules['e']['ch'] = self::ANY_COMBINATION;231 $this->digramRules['e']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;232 $this->digramRules['e']['ph'] = self::ANY_COMBINATION;233 $this->digramRules['e']['rh'] = self::ILLEGAL_PAIR;234 $this->digramRules['e']['sh'] = self::ANY_COMBINATION;235 $this->digramRules['e']['th'] = self::ANY_COMBINATION;236 $this->digramRules['e']['wh'] = self::ILLEGAL_PAIR;237 $this->digramRules['e']['qu'] = self::BREAK_GRAM | self::NOT_END;238 $this->digramRules['e']['ck'] = self::ANY_COMBINATION;239 $this->digramRules['f'] = [];240 $this->digramRules['f']['a'] = self::ANY_COMBINATION;241 $this->digramRules['f']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;242 $this->digramRules['f']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;243 $this->digramRules['f']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;244 $this->digramRules['f']['e'] = self::ANY_COMBINATION;245 $this->digramRules['f']['f'] = self::NOT_BEGIN;246 $this->digramRules['f']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;247 $this->digramRules['f']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;248 $this->digramRules['f']['i'] = self::ANY_COMBINATION;249 $this->digramRules['f']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;250 $this->digramRules['f']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;251 $this->digramRules['f']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;252 $this->digramRules['f']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;253 $this->digramRules['f']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;254 $this->digramRules['f']['o'] = self::ANY_COMBINATION;255 $this->digramRules['f']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;256 $this->digramRules['f']['r'] = self::BEGIN | self::NOT_END;257 $this->digramRules['f']['s'] = self::NOT_BEGIN;258 $this->digramRules['f']['t'] = self::NOT_BEGIN;259 $this->digramRules['f']['u'] = self::ANY_COMBINATION;260 $this->digramRules['f']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;261 $this->digramRules['f']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;262 $this->digramRules['f']['x'] = self::ILLEGAL_PAIR;263 $this->digramRules['f']['y'] = self::NOT_BEGIN;264 $this->digramRules['f']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;265 $this->digramRules['f']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;266 $this->digramRules['f']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;267 $this->digramRules['f']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;268 $this->digramRules['f']['rh'] = self::ILLEGAL_PAIR;269 $this->digramRules['f']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;270 $this->digramRules['f']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;271 $this->digramRules['f']['wh'] = self::ILLEGAL_PAIR;272 $this->digramRules['f']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;273 $this->digramRules['f']['ck'] = self::ILLEGAL_PAIR;274 $this->digramRules['g'] = [];275 $this->digramRules['g']['a'] = self::ANY_COMBINATION;276 $this->digramRules['g']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;277 $this->digramRules['g']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;278 $this->digramRules['g']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;279 $this->digramRules['g']['e'] = self::ANY_COMBINATION;280 $this->digramRules['g']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;281 $this->digramRules['g']['g'] = self::NOT_BEGIN;282 $this->digramRules['g']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;283 $this->digramRules['g']['i'] = self::ANY_COMBINATION;284 $this->digramRules['g']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;285 $this->digramRules['g']['k'] = self::ILLEGAL_PAIR;286 $this->digramRules['g']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;287 $this->digramRules['g']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;288 $this->digramRules['g']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;289 $this->digramRules['g']['o'] = self::ANY_COMBINATION;290 $this->digramRules['g']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;291 $this->digramRules['g']['r'] = self::BEGIN | self::NOT_END;292 $this->digramRules['g']['s'] = self::NOT_BEGIN | self::END;293 $this->digramRules['g']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;294 $this->digramRules['g']['u'] = self::ANY_COMBINATION;295 $this->digramRules['g']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;296 $this->digramRules['g']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;297 $this->digramRules['g']['x'] = self::ILLEGAL_PAIR;298 $this->digramRules['g']['y'] = self::NOT_BEGIN;299 $this->digramRules['g']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;300 $this->digramRules['g']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;301 $this->digramRules['g']['gh'] = self::ILLEGAL_PAIR;302 $this->digramRules['g']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;303 $this->digramRules['g']['rh'] = self::ILLEGAL_PAIR;304 $this->digramRules['g']['sh'] = self::NOT_BEGIN;305 $this->digramRules['g']['th'] = self::NOT_BEGIN;306 $this->digramRules['g']['wh'] = self::ILLEGAL_PAIR;307 $this->digramRules['g']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;308 $this->digramRules['g']['ck'] = self::ILLEGAL_PAIR;309 $this->digramRules['h'] = [];310 $this->digramRules['h']['a'] = self::ANY_COMBINATION;311 $this->digramRules['h']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;312 $this->digramRules['h']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;313 $this->digramRules['h']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;314 $this->digramRules['h']['e'] = self::ANY_COMBINATION;315 $this->digramRules['h']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;316 $this->digramRules['h']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;317 $this->digramRules['h']['h'] = self::ILLEGAL_PAIR;318 $this->digramRules['h']['i'] = self::ANY_COMBINATION;319 $this->digramRules['h']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;320 $this->digramRules['h']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;321 $this->digramRules['h']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;322 $this->digramRules['h']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;323 $this->digramRules['h']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;324 $this->digramRules['h']['o'] = self::ANY_COMBINATION;325 $this->digramRules['h']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;326 $this->digramRules['h']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;327 $this->digramRules['h']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;328 $this->digramRules['h']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;329 $this->digramRules['h']['u'] = self::ANY_COMBINATION;330 $this->digramRules['h']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;331 $this->digramRules['h']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;332 $this->digramRules['h']['x'] = self::ILLEGAL_PAIR;333 $this->digramRules['h']['y'] = self::ANY_COMBINATION;334 $this->digramRules['h']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;335 $this->digramRules['h']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;336 $this->digramRules['h']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;337 $this->digramRules['h']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;338 $this->digramRules['h']['rh'] = self::ILLEGAL_PAIR;339 $this->digramRules['h']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;340 $this->digramRules['h']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;341 $this->digramRules['h']['wh'] = self::ILLEGAL_PAIR;342 $this->digramRules['h']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;343 $this->digramRules['h']['ck'] = self::ILLEGAL_PAIR;344 $this->digramRules['i'] = [];345 $this->digramRules['i']['a'] = self::ANY_COMBINATION;346 $this->digramRules['i']['b'] = self::ANY_COMBINATION;347 $this->digramRules['i']['c'] = self::ANY_COMBINATION;348 $this->digramRules['i']['d'] = self::ANY_COMBINATION;349 $this->digramRules['i']['e'] = self::NOT_BEGIN;350 $this->digramRules['i']['f'] = self::ANY_COMBINATION;351 $this->digramRules['i']['g'] = self::ANY_COMBINATION;352 $this->digramRules['i']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;353 $this->digramRules['i']['i'] = self::ILLEGAL_PAIR;354 $this->digramRules['i']['j'] = self::ANY_COMBINATION;355 $this->digramRules['i']['k'] = self::ANY_COMBINATION;356 $this->digramRules['i']['l'] = self::ANY_COMBINATION;357 $this->digramRules['i']['m'] = self::ANY_COMBINATION;358 $this->digramRules['i']['n'] = self::ANY_COMBINATION;359 $this->digramRules['i']['o'] = self::BREAK_GRAM;360 $this->digramRules['i']['p'] = self::ANY_COMBINATION;361 $this->digramRules['i']['r'] = self::ANY_COMBINATION;362 $this->digramRules['i']['s'] = self::ANY_COMBINATION;363 $this->digramRules['i']['t'] = self::ANY_COMBINATION;364 $this->digramRules['i']['u'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;365 $this->digramRules['i']['v'] = self::ANY_COMBINATION;366 $this->digramRules['i']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;367 $this->digramRules['i']['x'] = self::ANY_COMBINATION;368 $this->digramRules['i']['y'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;369 $this->digramRules['i']['z'] = self::ANY_COMBINATION;370 $this->digramRules['i']['ch'] = self::ANY_COMBINATION;371 $this->digramRules['i']['gh'] = self::NOT_BEGIN;372 $this->digramRules['i']['ph'] = self::ANY_COMBINATION;373 $this->digramRules['i']['rh'] = self::ILLEGAL_PAIR;374 $this->digramRules['i']['sh'] = self::ANY_COMBINATION;375 $this->digramRules['i']['th'] = self::ANY_COMBINATION;376 $this->digramRules['i']['wh'] = self::ILLEGAL_PAIR;377 $this->digramRules['i']['qu'] = self::BREAK_GRAM | self::NOT_END;378 $this->digramRules['i']['ck'] = self::ANY_COMBINATION;379 $this->digramRules['j'] = [];380 $this->digramRules['j']['a'] = self::ANY_COMBINATION;381 $this->digramRules['j']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;382 $this->digramRules['j']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;383 $this->digramRules['j']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;384 $this->digramRules['j']['e'] = self::ANY_COMBINATION;385 $this->digramRules['j']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;386 $this->digramRules['j']['g'] = self::ILLEGAL_PAIR;387 $this->digramRules['j']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;388 $this->digramRules['j']['i'] = self::ANY_COMBINATION;389 $this->digramRules['j']['j'] = self::ILLEGAL_PAIR;390 $this->digramRules['j']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;391 $this->digramRules['j']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;392 $this->digramRules['j']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;393 $this->digramRules['j']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;394 $this->digramRules['j']['o'] = self::ANY_COMBINATION;395 $this->digramRules['j']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;396 $this->digramRules['j']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;397 $this->digramRules['j']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;398 $this->digramRules['j']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;399 $this->digramRules['j']['u'] = self::ANY_COMBINATION;400 $this->digramRules['j']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;401 $this->digramRules['j']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;402 $this->digramRules['j']['x'] = self::ILLEGAL_PAIR;403 $this->digramRules['j']['y'] = self::NOT_BEGIN;404 $this->digramRules['j']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;405 $this->digramRules['j']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;406 $this->digramRules['j']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;407 $this->digramRules['j']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;408 $this->digramRules['j']['rh'] = self::ILLEGAL_PAIR;409 $this->digramRules['j']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;410 $this->digramRules['j']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;411 $this->digramRules['j']['wh'] = self::ILLEGAL_PAIR;412 $this->digramRules['j']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;413 $this->digramRules['j']['ck'] = self::ILLEGAL_PAIR;414 $this->digramRules['k'] = [];415 $this->digramRules['k']['a'] = self::ANY_COMBINATION;416 $this->digramRules['k']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;417 $this->digramRules['k']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;418 $this->digramRules['k']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;419 $this->digramRules['k']['e'] = self::ANY_COMBINATION;420 $this->digramRules['k']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;421 $this->digramRules['k']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;422 $this->digramRules['k']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;423 $this->digramRules['k']['i'] = self::ANY_COMBINATION;424 $this->digramRules['k']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;425 $this->digramRules['k']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;426 $this->digramRules['k']['l'] = self::SUFFIX | self::NOT_END;427 $this->digramRules['k']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;428 $this->digramRules['k']['n'] = self::BEGIN | self::SUFFIX | self::NOT_END;429 $this->digramRules['k']['o'] = self::ANY_COMBINATION;430 $this->digramRules['k']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;431 $this->digramRules['k']['r'] = self::SUFFIX | self::NOT_END;432 $this->digramRules['k']['s'] = self::NOT_BEGIN | self::END;433 $this->digramRules['k']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;434 $this->digramRules['k']['u'] = self::ANY_COMBINATION;435 $this->digramRules['k']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;436 $this->digramRules['k']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;437 $this->digramRules['k']['x'] = self::ILLEGAL_PAIR;438 $this->digramRules['k']['y'] = self::NOT_BEGIN;439 $this->digramRules['k']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;440 $this->digramRules['k']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;441 $this->digramRules['k']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;442 $this->digramRules['k']['ph'] = self::NOT_BEGIN | self::PREFIX;443 $this->digramRules['k']['rh'] = self::ILLEGAL_PAIR;444 $this->digramRules['k']['sh'] = self::NOT_BEGIN;445 $this->digramRules['k']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;446 $this->digramRules['k']['wh'] = self::ILLEGAL_PAIR;447 $this->digramRules['k']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;448 $this->digramRules['k']['ck'] = self::ILLEGAL_PAIR;449 $this->digramRules['l'] = [];450 $this->digramRules['l']['a'] = self::ANY_COMBINATION;451 $this->digramRules['l']['b'] = self::NOT_BEGIN | self::PREFIX;452 $this->digramRules['l']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;453 $this->digramRules['l']['d'] = self::NOT_BEGIN | self::PREFIX;454 $this->digramRules['l']['e'] = self::ANY_COMBINATION;455 $this->digramRules['l']['f'] = self::NOT_BEGIN | self::PREFIX;456 $this->digramRules['l']['g'] = self::NOT_BEGIN | self::PREFIX;457 $this->digramRules['l']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;458 $this->digramRules['l']['i'] = self::ANY_COMBINATION;459 $this->digramRules['l']['j'] = self::NOT_BEGIN | self::PREFIX;460 $this->digramRules['l']['k'] = self::NOT_BEGIN | self::PREFIX;461 $this->digramRules['l']['l'] = self::NOT_BEGIN | self::PREFIX;462 $this->digramRules['l']['m'] = self::NOT_BEGIN | self::PREFIX;463 $this->digramRules['l']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;464 $this->digramRules['l']['o'] = self::ANY_COMBINATION;465 $this->digramRules['l']['p'] = self::NOT_BEGIN | self::PREFIX;466 $this->digramRules['l']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;467 $this->digramRules['l']['s'] = self::NOT_BEGIN;468 $this->digramRules['l']['t'] = self::NOT_BEGIN | self::PREFIX;469 $this->digramRules['l']['u'] = self::ANY_COMBINATION;470 $this->digramRules['l']['v'] = self::NOT_BEGIN | self::PREFIX;471 $this->digramRules['l']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;472 $this->digramRules['l']['x'] = self::ILLEGAL_PAIR;473 $this->digramRules['l']['y'] = self::ANY_COMBINATION;474 $this->digramRules['l']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;475 $this->digramRules['l']['ch'] = self::NOT_BEGIN | self::PREFIX;476 $this->digramRules['l']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;477 $this->digramRules['l']['ph'] = self::NOT_BEGIN | self::PREFIX;478 $this->digramRules['l']['rh'] = self::ILLEGAL_PAIR;479 $this->digramRules['l']['sh'] = self::NOT_BEGIN | self::PREFIX;480 $this->digramRules['l']['th'] = self::NOT_BEGIN | self::PREFIX;481 $this->digramRules['l']['wh'] = self::ILLEGAL_PAIR;482 $this->digramRules['l']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;483 $this->digramRules['l']['ck'] = self::ILLEGAL_PAIR;484 $this->digramRules['m'] = [];485 $this->digramRules['m']['a'] = self::ANY_COMBINATION;486 $this->digramRules['m']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;487 $this->digramRules['m']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;488 $this->digramRules['m']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;489 $this->digramRules['m']['e'] = self::ANY_COMBINATION;490 $this->digramRules['m']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;491 $this->digramRules['m']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;492 $this->digramRules['m']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;493 $this->digramRules['m']['i'] = self::ANY_COMBINATION;494 $this->digramRules['m']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;495 $this->digramRules['m']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;496 $this->digramRules['m']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;497 $this->digramRules['m']['m'] = self::NOT_BEGIN;498 $this->digramRules['m']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;499 $this->digramRules['m']['o'] = self::ANY_COMBINATION;500 $this->digramRules['m']['p'] = self::NOT_BEGIN;501 $this->digramRules['m']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;502 $this->digramRules['m']['s'] = self::NOT_BEGIN;503 $this->digramRules['m']['t'] = self::NOT_BEGIN;504 $this->digramRules['m']['u'] = self::ANY_COMBINATION;505 $this->digramRules['m']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;506 $this->digramRules['m']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;507 $this->digramRules['m']['x'] = self::ILLEGAL_PAIR;508 $this->digramRules['m']['y'] = self::ANY_COMBINATION;509 $this->digramRules['m']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;510 $this->digramRules['m']['ch'] = self::NOT_BEGIN | self::PREFIX;511 $this->digramRules['m']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;512 $this->digramRules['m']['ph'] = self::NOT_BEGIN;513 $this->digramRules['m']['rh'] = self::ILLEGAL_PAIR;514 $this->digramRules['m']['sh'] = self::NOT_BEGIN;515 $this->digramRules['m']['th'] = self::NOT_BEGIN;516 $this->digramRules['m']['wh'] = self::ILLEGAL_PAIR;517 $this->digramRules['m']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;518 $this->digramRules['m']['ck'] = self::ILLEGAL_PAIR;519 $this->digramRules['n'] = [];520 $this->digramRules['n']['a'] = self::ANY_COMBINATION;521 $this->digramRules['n']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;522 $this->digramRules['n']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;523 $this->digramRules['n']['d'] = self::NOT_BEGIN;524 $this->digramRules['n']['e'] = self::ANY_COMBINATION;525 $this->digramRules['n']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;526 $this->digramRules['n']['g'] = self::NOT_BEGIN | self::PREFIX;527 $this->digramRules['n']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;528 $this->digramRules['n']['i'] = self::ANY_COMBINATION;529 $this->digramRules['n']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;530 $this->digramRules['n']['k'] = self::NOT_BEGIN | self::PREFIX;531 $this->digramRules['n']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;532 $this->digramRules['n']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;533 $this->digramRules['n']['n'] = self::NOT_BEGIN;534 $this->digramRules['n']['o'] = self::ANY_COMBINATION;535 $this->digramRules['n']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;536 $this->digramRules['n']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;537 $this->digramRules['n']['s'] = self::NOT_BEGIN;538 $this->digramRules['n']['t'] = self::NOT_BEGIN;539 $this->digramRules['n']['u'] = self::ANY_COMBINATION;540 $this->digramRules['n']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;541 $this->digramRules['n']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;542 $this->digramRules['n']['x'] = self::ILLEGAL_PAIR;543 $this->digramRules['n']['y'] = self::NOT_BEGIN;544 $this->digramRules['n']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;545 $this->digramRules['n']['ch'] = self::NOT_BEGIN | self::PREFIX;546 $this->digramRules['n']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;547 $this->digramRules['n']['ph'] = self::NOT_BEGIN | self::PREFIX;548 $this->digramRules['n']['rh'] = self::ILLEGAL_PAIR;549 $this->digramRules['n']['sh'] = self::NOT_BEGIN;550 $this->digramRules['n']['th'] = self::NOT_BEGIN;551 $this->digramRules['n']['wh'] = self::ILLEGAL_PAIR;552 $this->digramRules['n']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;553 $this->digramRules['n']['ck'] = self::NOT_BEGIN | self::PREFIX;554 $this->digramRules['o'] = [];555 $this->digramRules['o']['a'] = self::ANY_COMBINATION;556 $this->digramRules['o']['b'] = self::ANY_COMBINATION;557 $this->digramRules['o']['c'] = self::ANY_COMBINATION;558 $this->digramRules['o']['d'] = self::ANY_COMBINATION;559 $this->digramRules['o']['e'] = self::ILLEGAL_PAIR;560 $this->digramRules['o']['f'] = self::ANY_COMBINATION;561 $this->digramRules['o']['g'] = self::ANY_COMBINATION;562 $this->digramRules['o']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;563 $this->digramRules['o']['i'] = self::ANY_COMBINATION;564 $this->digramRules['o']['j'] = self::ANY_COMBINATION;565 $this->digramRules['o']['k'] = self::ANY_COMBINATION;566 $this->digramRules['o']['l'] = self::ANY_COMBINATION;567 $this->digramRules['o']['m'] = self::ANY_COMBINATION;568 $this->digramRules['o']['n'] = self::ANY_COMBINATION;569 $this->digramRules['o']['o'] = self::ANY_COMBINATION;570 $this->digramRules['o']['p'] = self::ANY_COMBINATION;571 $this->digramRules['o']['r'] = self::ANY_COMBINATION;572 $this->digramRules['o']['s'] = self::ANY_COMBINATION;573 $this->digramRules['o']['t'] = self::ANY_COMBINATION;574 $this->digramRules['o']['u'] = self::ANY_COMBINATION;575 $this->digramRules['o']['v'] = self::ANY_COMBINATION;576 $this->digramRules['o']['w'] = self::ANY_COMBINATION;577 $this->digramRules['o']['x'] = self::ANY_COMBINATION;578 $this->digramRules['o']['y'] = self::ANY_COMBINATION;579 $this->digramRules['o']['z'] = self::ANY_COMBINATION;580 $this->digramRules['o']['ch'] = self::ANY_COMBINATION;581 $this->digramRules['o']['gh'] = self::NOT_BEGIN;582 $this->digramRules['o']['ph'] = self::ANY_COMBINATION;583 $this->digramRules['o']['rh'] = self::ILLEGAL_PAIR;584 $this->digramRules['o']['sh'] = self::ANY_COMBINATION;585 $this->digramRules['o']['th'] = self::ANY_COMBINATION;586 $this->digramRules['o']['wh'] = self::ILLEGAL_PAIR;587 $this->digramRules['o']['qu'] = self::BREAK_GRAM | self::NOT_END;588 $this->digramRules['o']['ck'] = self::ANY_COMBINATION;589 $this->digramRules['p'] = [];590 $this->digramRules['p']['a'] = self::ANY_COMBINATION;591 $this->digramRules['p']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;592 $this->digramRules['p']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;593 $this->digramRules['p']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;594 $this->digramRules['p']['e'] = self::ANY_COMBINATION;595 $this->digramRules['p']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;596 $this->digramRules['p']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;597 $this->digramRules['p']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;598 $this->digramRules['p']['i'] = self::ANY_COMBINATION;599 $this->digramRules['p']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;600 $this->digramRules['p']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;601 $this->digramRules['p']['l'] = self::SUFFIX | self::NOT_END;602 $this->digramRules['p']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;603 $this->digramRules['p']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;604 $this->digramRules['p']['o'] = self::ANY_COMBINATION;605 $this->digramRules['p']['p'] = self::NOT_BEGIN | self::PREFIX;606 $this->digramRules['p']['r'] = self::NOT_END;607 $this->digramRules['p']['s'] = self::NOT_BEGIN | self::END;608 $this->digramRules['p']['t'] = self::NOT_BEGIN | self::END;609 $this->digramRules['p']['u'] = self::NOT_BEGIN | self::END;610 $this->digramRules['p']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;611 $this->digramRules['p']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;612 $this->digramRules['p']['x'] = self::ILLEGAL_PAIR;613 $this->digramRules['p']['y'] = self::ANY_COMBINATION;614 $this->digramRules['p']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;615 $this->digramRules['p']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;616 $this->digramRules['p']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;617 $this->digramRules['p']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;618 $this->digramRules['p']['rh'] = self::ILLEGAL_PAIR;619 $this->digramRules['p']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;620 $this->digramRules['p']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;621 $this->digramRules['p']['wh'] = self::ILLEGAL_PAIR;622 $this->digramRules['p']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;623 $this->digramRules['p']['ck'] = self::ILLEGAL_PAIR;624 $this->digramRules['r'] = [];625 $this->digramRules['r']['a'] = self::ANY_COMBINATION;626 $this->digramRules['r']['b'] = self::NOT_BEGIN | self::PREFIX;627 $this->digramRules['r']['c'] = self::NOT_BEGIN | self::PREFIX;628 $this->digramRules['r']['d'] = self::NOT_BEGIN | self::PREFIX;629 $this->digramRules['r']['e'] = self::ANY_COMBINATION;630 $this->digramRules['r']['f'] = self::NOT_BEGIN | self::PREFIX;631 $this->digramRules['r']['g'] = self::NOT_BEGIN | self::PREFIX;632 $this->digramRules['r']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;633 $this->digramRules['r']['i'] = self::ANY_COMBINATION;634 $this->digramRules['r']['j'] = self::NOT_BEGIN | self::PREFIX;635 $this->digramRules['r']['k'] = self::NOT_BEGIN | self::PREFIX;636 $this->digramRules['r']['l'] = self::NOT_BEGIN | self::PREFIX;637 $this->digramRules['r']['m'] = self::NOT_BEGIN | self::PREFIX;638 $this->digramRules['r']['n'] = self::NOT_BEGIN | self::PREFIX;639 $this->digramRules['r']['o'] = self::ANY_COMBINATION;640 $this->digramRules['r']['p'] = self::NOT_BEGIN | self::PREFIX;641 $this->digramRules['r']['r'] = self::NOT_BEGIN | self::PREFIX;642 $this->digramRules['r']['s'] = self::NOT_BEGIN | self::PREFIX;643 $this->digramRules['r']['t'] = self::NOT_BEGIN | self::PREFIX;644 $this->digramRules['r']['u'] = self::ANY_COMBINATION;645 $this->digramRules['r']['v'] = self::NOT_BEGIN | self::PREFIX;646 $this->digramRules['r']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;647 $this->digramRules['r']['x'] = self::ILLEGAL_PAIR;648 $this->digramRules['r']['y'] = self::ANY_COMBINATION;649 $this->digramRules['r']['z'] = self::NOT_BEGIN | self::PREFIX;650 $this->digramRules['r']['ch'] = self::NOT_BEGIN | self::PREFIX;651 $this->digramRules['r']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;652 $this->digramRules['r']['ph'] = self::NOT_BEGIN | self::PREFIX;653 $this->digramRules['r']['rh'] = self::ILLEGAL_PAIR;654 $this->digramRules['r']['sh'] = self::NOT_BEGIN | self::PREFIX;655 $this->digramRules['r']['th'] = self::NOT_BEGIN | self::PREFIX;656 $this->digramRules['r']['wh'] = self::ILLEGAL_PAIR;657 $this->digramRules['r']['qu'] = self::NOT_BEGIN | self::PREFIX | self::NOT_END;658 $this->digramRules['r']['ck'] = self::NOT_BEGIN | self::PREFIX;659 $this->digramRules['s'] = [];660 $this->digramRules['s']['a'] = self::ANY_COMBINATION;661 $this->digramRules['s']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;662 $this->digramRules['s']['c'] = self::NOT_END;663 $this->digramRules['s']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;664 $this->digramRules['s']['e'] = self::ANY_COMBINATION;665 $this->digramRules['s']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;666 $this->digramRules['s']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;667 $this->digramRules['s']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;668 $this->digramRules['s']['i'] = self::ANY_COMBINATION;669 $this->digramRules['s']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;670 $this->digramRules['s']['k'] = self::ANY_COMBINATION;671 $this->digramRules['s']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;672 $this->digramRules['s']['m'] = self::SUFFIX | self::NOT_END;673 $this->digramRules['s']['n'] = self::PREFIX | self::SUFFIX | self::NOT_END;674 $this->digramRules['s']['o'] = self::ANY_COMBINATION;675 $this->digramRules['s']['p'] = self::ANY_COMBINATION;676 $this->digramRules['s']['r'] = self::NOT_BEGIN | self::NOT_END;677 $this->digramRules['s']['s'] = self::NOT_BEGIN | self::PREFIX;678 $this->digramRules['s']['t'] = self::ANY_COMBINATION;679 $this->digramRules['s']['u'] = self::ANY_COMBINATION;680 $this->digramRules['s']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;681 $this->digramRules['s']['w'] = self::BEGIN | self::SUFFIX | self::NOT_END;682 $this->digramRules['s']['x'] = self::ILLEGAL_PAIR;683 $this->digramRules['s']['y'] = self::ANY_COMBINATION;684 $this->digramRules['s']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;685 $this->digramRules['s']['ch'] = self::BEGIN | self::SUFFIX | self::NOT_END;686 $this->digramRules['s']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;687 $this->digramRules['s']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;688 $this->digramRules['s']['rh'] = self::ILLEGAL_PAIR;689 $this->digramRules['s']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;690 $this->digramRules['s']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;691 $this->digramRules['s']['wh'] = self::ILLEGAL_PAIR;692 $this->digramRules['s']['qu'] = self::SUFFIX | self::NOT_END;693 $this->digramRules['s']['ck'] = self::NOT_BEGIN;694 $this->digramRules['t'] = [];695 $this->digramRules['t']['a'] = self::ANY_COMBINATION;696 $this->digramRules['t']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;697 $this->digramRules['t']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;698 $this->digramRules['t']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;699 $this->digramRules['t']['e'] = self::ANY_COMBINATION;700 $this->digramRules['t']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;701 $this->digramRules['t']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;702 $this->digramRules['t']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;703 $this->digramRules['t']['i'] = self::ANY_COMBINATION;704 $this->digramRules['t']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;705 $this->digramRules['t']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;706 $this->digramRules['t']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;707 $this->digramRules['t']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;708 $this->digramRules['t']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;709 $this->digramRules['t']['o'] = self::ANY_COMBINATION;710 $this->digramRules['t']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;711 $this->digramRules['t']['r'] = self::NOT_END;712 $this->digramRules['t']['s'] = self::NOT_BEGIN | self::END;713 $this->digramRules['t']['t'] = self::NOT_BEGIN | self::PREFIX;714 $this->digramRules['t']['u'] = self::ANY_COMBINATION;715 $this->digramRules['t']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;716 $this->digramRules['t']['w'] = self::BEGIN | self::SUFFIX | self::NOT_END;717 $this->digramRules['t']['x'] = self::ILLEGAL_PAIR;718 $this->digramRules['t']['y'] = self::ANY_COMBINATION;719 $this->digramRules['t']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;720 $this->digramRules['t']['ch'] = self::NOT_BEGIN;721 $this->digramRules['t']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;722 $this->digramRules['t']['ph'] = self::NOT_BEGIN | self::END;723 $this->digramRules['t']['rh'] = self::ILLEGAL_PAIR;724 $this->digramRules['t']['sh'] = self::NOT_BEGIN | self::END;725 $this->digramRules['t']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;726 $this->digramRules['t']['wh'] = self::ILLEGAL_PAIR;727 $this->digramRules['t']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;728 $this->digramRules['t']['ck'] = self::ILLEGAL_PAIR;729 $this->digramRules['u'] = [];730 $this->digramRules['u']['a'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;731 $this->digramRules['u']['b'] = self::ANY_COMBINATION;732 $this->digramRules['u']['c'] = self::ANY_COMBINATION;733 $this->digramRules['u']['d'] = self::ANY_COMBINATION;734 $this->digramRules['u']['e'] = self::NOT_BEGIN;735 $this->digramRules['u']['f'] = self::ANY_COMBINATION;736 $this->digramRules['u']['g'] = self::ANY_COMBINATION;737 $this->digramRules['u']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;738 $this->digramRules['u']['i'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;739 $this->digramRules['u']['j'] = self::ANY_COMBINATION;740 $this->digramRules['u']['k'] = self::ANY_COMBINATION;741 $this->digramRules['u']['l'] = self::ANY_COMBINATION;742 $this->digramRules['u']['m'] = self::ANY_COMBINATION;743 $this->digramRules['u']['n'] = self::ANY_COMBINATION;744 $this->digramRules['u']['o'] = self::NOT_BEGIN | self::BREAK_GRAM;745 $this->digramRules['u']['p'] = self::ANY_COMBINATION;746 $this->digramRules['u']['r'] = self::ANY_COMBINATION;747 $this->digramRules['u']['s'] = self::ANY_COMBINATION;748 $this->digramRules['u']['t'] = self::ANY_COMBINATION;749 $this->digramRules['u']['u'] = self::ILLEGAL_PAIR;750 $this->digramRules['u']['v'] = self::ANY_COMBINATION;751 $this->digramRules['u']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;752 $this->digramRules['u']['x'] = self::ANY_COMBINATION;753 $this->digramRules['u']['y'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;754 $this->digramRules['u']['z'] = self::ANY_COMBINATION;755 $this->digramRules['u']['ch'] = self::ANY_COMBINATION;756 $this->digramRules['u']['gh'] = self::NOT_BEGIN | self::PREFIX;757 $this->digramRules['u']['ph'] = self::ANY_COMBINATION;758 $this->digramRules['u']['rh'] = self::ILLEGAL_PAIR;759 $this->digramRules['u']['sh'] = self::ANY_COMBINATION;760 $this->digramRules['u']['th'] = self::ANY_COMBINATION;761 $this->digramRules['u']['wh'] = self::ILLEGAL_PAIR;762 $this->digramRules['u']['qu'] = self::BREAK_GRAM | self::NOT_END;763 $this->digramRules['u']['ck'] = self::ANY_COMBINATION;764 $this->digramRules['v'] = [];765 $this->digramRules['v']['a'] = self::ANY_COMBINATION;766 $this->digramRules['v']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;767 $this->digramRules['v']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;768 $this->digramRules['v']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;769 $this->digramRules['v']['e'] = self::ANY_COMBINATION;770 $this->digramRules['v']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;771 $this->digramRules['v']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;772 $this->digramRules['v']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;773 $this->digramRules['v']['i'] = self::ANY_COMBINATION;774 $this->digramRules['v']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;775 $this->digramRules['v']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;776 $this->digramRules['v']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;777 $this->digramRules['v']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;778 $this->digramRules['v']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;779 $this->digramRules['v']['o'] = self::ANY_COMBINATION;780 $this->digramRules['v']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;781 $this->digramRules['v']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;782 $this->digramRules['v']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;783 $this->digramRules['v']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;784 $this->digramRules['v']['u'] = self::ANY_COMBINATION;785 $this->digramRules['v']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;786 $this->digramRules['v']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;787 $this->digramRules['v']['x'] = self::ILLEGAL_PAIR;788 $this->digramRules['v']['y'] = self::NOT_BEGIN;789 $this->digramRules['v']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;790 $this->digramRules['v']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;791 $this->digramRules['v']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;792 $this->digramRules['v']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;793 $this->digramRules['v']['rh'] = self::ILLEGAL_PAIR;794 $this->digramRules['v']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;795 $this->digramRules['v']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;796 $this->digramRules['v']['wh'] = self::ILLEGAL_PAIR;797 $this->digramRules['v']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;798 $this->digramRules['v']['ck'] = self::ILLEGAL_PAIR;799 $this->digramRules['w'] = [];800 $this->digramRules['w']['a'] = self::ANY_COMBINATION;801 $this->digramRules['w']['b'] = self::NOT_BEGIN | self::PREFIX;802 $this->digramRules['w']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;803 $this->digramRules['w']['d'] = self::NOT_BEGIN | self::PREFIX | self::END;804 $this->digramRules['w']['e'] = self::ANY_COMBINATION;805 $this->digramRules['w']['f'] = self::NOT_BEGIN | self::PREFIX;806 $this->digramRules['w']['g'] = self::NOT_BEGIN | self::PREFIX | self::END;807 $this->digramRules['w']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;808 $this->digramRules['w']['i'] = self::ANY_COMBINATION;809 $this->digramRules['w']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;810 $this->digramRules['w']['k'] = self::NOT_BEGIN | self::PREFIX;811 $this->digramRules['w']['l'] = self::NOT_BEGIN | self::PREFIX | self::SUFFIX;812 $this->digramRules['w']['m'] = self::NOT_BEGIN | self::PREFIX;813 $this->digramRules['w']['n'] = self::NOT_BEGIN | self::PREFIX;814 $this->digramRules['w']['o'] = self::ANY_COMBINATION;815 $this->digramRules['w']['p'] = self::NOT_BEGIN | self::PREFIX;816 $this->digramRules['w']['r'] = self::BEGIN | self::SUFFIX | self::NOT_END;817 $this->digramRules['w']['s'] = self::NOT_BEGIN | self::PREFIX;818 $this->digramRules['w']['t'] = self::NOT_BEGIN | self::PREFIX;819 $this->digramRules['w']['u'] = self::ANY_COMBINATION;820 $this->digramRules['w']['v'] = self::NOT_BEGIN | self::PREFIX;821 $this->digramRules['w']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;822 $this->digramRules['w']['x'] = self::NOT_BEGIN | self::PREFIX;823 $this->digramRules['w']['y'] = self::ANY_COMBINATION;824 $this->digramRules['w']['z'] = self::NOT_BEGIN | self::PREFIX;825 $this->digramRules['w']['ch'] = self::NOT_BEGIN;826 $this->digramRules['w']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;827 $this->digramRules['w']['ph'] = self::NOT_BEGIN;828 $this->digramRules['w']['rh'] = self::ILLEGAL_PAIR;829 $this->digramRules['w']['sh'] = self::NOT_BEGIN;830 $this->digramRules['w']['th'] = self::NOT_BEGIN;831 $this->digramRules['w']['wh'] = self::ILLEGAL_PAIR;832 $this->digramRules['w']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;833 $this->digramRules['w']['ck'] = self::NOT_BEGIN;834 $this->digramRules['x'] = [];835 $this->digramRules['x']['a'] = self::NOT_BEGIN;836 $this->digramRules['x']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;837 $this->digramRules['x']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;838 $this->digramRules['x']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;839 $this->digramRules['x']['e'] = self::NOT_BEGIN;840 $this->digramRules['x']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;841 $this->digramRules['x']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;842 $this->digramRules['x']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;843 $this->digramRules['x']['i'] = self::NOT_BEGIN;844 $this->digramRules['x']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;845 $this->digramRules['x']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;846 $this->digramRules['x']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;847 $this->digramRules['x']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;848 $this->digramRules['x']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;849 $this->digramRules['x']['o'] = self::NOT_BEGIN;850 $this->digramRules['x']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;851 $this->digramRules['x']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;852 $this->digramRules['x']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;853 $this->digramRules['x']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;854 $this->digramRules['x']['u'] = self::NOT_BEGIN;855 $this->digramRules['x']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;856 $this->digramRules['x']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;857 $this->digramRules['x']['x'] = self::ILLEGAL_PAIR;858 $this->digramRules['x']['y'] = self::NOT_BEGIN;859 $this->digramRules['x']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;860 $this->digramRules['x']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;861 $this->digramRules['x']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;862 $this->digramRules['x']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;863 $this->digramRules['x']['rh'] = self::ILLEGAL_PAIR;864 $this->digramRules['x']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;865 $this->digramRules['x']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;866 $this->digramRules['x']['wh'] = self::ILLEGAL_PAIR;867 $this->digramRules['x']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;868 $this->digramRules['x']['ck'] = self::ILLEGAL_PAIR;869 $this->digramRules['y'] = [];870 $this->digramRules['y']['a'] = self::ANY_COMBINATION;871 $this->digramRules['y']['b'] = self::NOT_BEGIN;872 $this->digramRules['y']['c'] = self::NOT_BEGIN | self::NOT_END;873 $this->digramRules['y']['d'] = self::NOT_BEGIN;874 $this->digramRules['y']['e'] = self::ANY_COMBINATION;875 $this->digramRules['y']['f'] = self::NOT_BEGIN | self::NOT_END;876 $this->digramRules['y']['g'] = self::NOT_BEGIN;877 $this->digramRules['y']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;878 $this->digramRules['y']['i'] = self::BEGIN | self::NOT_END;879 $this->digramRules['y']['j'] = self::NOT_BEGIN | self::NOT_END;880 $this->digramRules['y']['k'] = self::NOT_BEGIN;881 $this->digramRules['y']['l'] = self::NOT_BEGIN | self::NOT_END;882 $this->digramRules['y']['m'] = self::NOT_BEGIN;883 $this->digramRules['y']['n'] = self::NOT_BEGIN;884 $this->digramRules['y']['o'] = self::ANY_COMBINATION;885 $this->digramRules['y']['p'] = self::NOT_BEGIN;886 $this->digramRules['y']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;887 $this->digramRules['y']['s'] = self::NOT_BEGIN;888 $this->digramRules['y']['t'] = self::NOT_BEGIN;889 $this->digramRules['y']['u'] = self::ANY_COMBINATION;890 $this->digramRules['y']['v'] = self::NOT_BEGIN | self::NOT_END;891 $this->digramRules['y']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;892 $this->digramRules['y']['x'] = self::NOT_BEGIN;893 $this->digramRules['y']['y'] = self::ILLEGAL_PAIR;894 $this->digramRules['y']['z'] = self::NOT_BEGIN;895 $this->digramRules['y']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;896 $this->digramRules['y']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;897 $this->digramRules['y']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;898 $this->digramRules['y']['rh'] = self::ILLEGAL_PAIR;899 $this->digramRules['y']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;900 $this->digramRules['y']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;901 $this->digramRules['y']['wh'] = self::ILLEGAL_PAIR;902 $this->digramRules['y']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;903 $this->digramRules['y']['ck'] = self::ILLEGAL_PAIR;904 $this->digramRules['z'] = [];905 $this->digramRules['z']['a'] = self::ANY_COMBINATION;906 $this->digramRules['z']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;907 $this->digramRules['z']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;908 $this->digramRules['z']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;909 $this->digramRules['z']['e'] = self::ANY_COMBINATION;910 $this->digramRules['z']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;911 $this->digramRules['z']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;912 $this->digramRules['z']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;913 $this->digramRules['z']['i'] = self::ANY_COMBINATION;914 $this->digramRules['z']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;915 $this->digramRules['z']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;916 $this->digramRules['z']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;917 $this->digramRules['z']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;918 $this->digramRules['z']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;919 $this->digramRules['z']['o'] = self::ANY_COMBINATION;920 $this->digramRules['z']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;921 $this->digramRules['z']['r'] = self::NOT_BEGIN | self::NOT_END;922 $this->digramRules['z']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;923 $this->digramRules['z']['t'] = self::NOT_BEGIN;924 $this->digramRules['z']['u'] = self::ANY_COMBINATION;925 $this->digramRules['z']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;926 $this->digramRules['z']['w'] = self::SUFFIX | self::NOT_END;927 $this->digramRules['z']['x'] = self::ILLEGAL_PAIR;928 $this->digramRules['z']['y'] = self::ANY_COMBINATION;929 $this->digramRules['z']['z'] = self::NOT_BEGIN;930 $this->digramRules['z']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;931 $this->digramRules['z']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;932 $this->digramRules['z']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;933 $this->digramRules['z']['rh'] = self::ILLEGAL_PAIR;934 $this->digramRules['z']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;935 $this->digramRules['z']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;936 $this->digramRules['z']['wh'] = self::ILLEGAL_PAIR;937 $this->digramRules['z']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;938 $this->digramRules['z']['ck'] = self::ILLEGAL_PAIR;939 $this->digramRules['ch'] = [];940 $this->digramRules['ch']['a'] = self::ANY_COMBINATION;941 $this->digramRules['ch']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;942 $this->digramRules['ch']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;943 $this->digramRules['ch']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;944 $this->digramRules['ch']['e'] = self::ANY_COMBINATION;945 $this->digramRules['ch']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;946 $this->digramRules['ch']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;947 $this->digramRules['ch']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;948 $this->digramRules['ch']['i'] = self::ANY_COMBINATION;949 $this->digramRules['ch']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;950 $this->digramRules['ch']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;951 $this->digramRules['ch']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;952 $this->digramRules['ch']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;953 $this->digramRules['ch']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;954 $this->digramRules['ch']['o'] = self::ANY_COMBINATION;955 $this->digramRules['ch']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;956 $this->digramRules['ch']['r'] = self::NOT_END;957 $this->digramRules['ch']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;958 $this->digramRules['ch']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;959 $this->digramRules['ch']['u'] = self::ANY_COMBINATION;960 $this->digramRules['ch']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;961 $this->digramRules['ch']['w'] = self::NOT_BEGIN | self::NOT_END;962 $this->digramRules['ch']['x'] = self::ILLEGAL_PAIR;963 $this->digramRules['ch']['y'] = self::ANY_COMBINATION;964 $this->digramRules['ch']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;965 $this->digramRules['ch']['ch'] = self::ILLEGAL_PAIR;966 $this->digramRules['ch']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;967 $this->digramRules['ch']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;968 $this->digramRules['ch']['rh'] = self::ILLEGAL_PAIR;969 $this->digramRules['ch']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;970 $this->digramRules['ch']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;971 $this->digramRules['ch']['wh'] = self::ILLEGAL_PAIR;972 $this->digramRules['ch']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;973 $this->digramRules['ch']['ck'] = self::ILLEGAL_PAIR;974 $this->digramRules['gh'] = [];975 $this->digramRules['gh']['a'] = self::ANY_COMBINATION;976 $this->digramRules['gh']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;977 $this->digramRules['gh']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;978 $this->digramRules['gh']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;979 $this->digramRules['gh']['e'] = self::ANY_COMBINATION;980 $this->digramRules['gh']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;981 $this->digramRules['gh']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;982 $this->digramRules['gh']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;983 $this->digramRules['gh']['i'] = self::BEGIN | self::NOT_END;984 $this->digramRules['gh']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;985 $this->digramRules['gh']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;986 $this->digramRules['gh']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;987 $this->digramRules['gh']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;988 $this->digramRules['gh']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;989 $this->digramRules['gh']['o'] = self::BEGIN | self::NOT_END;990 $this->digramRules['gh']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;991 $this->digramRules['gh']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;992 $this->digramRules['gh']['s'] = self::NOT_BEGIN | self::PREFIX;993 $this->digramRules['gh']['t'] = self::NOT_BEGIN | self::PREFIX;994 $this->digramRules['gh']['u'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;995 $this->digramRules['gh']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;996 $this->digramRules['gh']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;997 $this->digramRules['gh']['x'] = self::ILLEGAL_PAIR;998 $this->digramRules['gh']['y'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;999 $this->digramRules['gh']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1000 $this->digramRules['gh']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1001 $this->digramRules['gh']['gh'] = self::ILLEGAL_PAIR;1002 $this->digramRules['gh']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1003 $this->digramRules['gh']['rh'] = self::ILLEGAL_PAIR;1004 $this->digramRules['gh']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1005 $this->digramRules['gh']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1006 $this->digramRules['gh']['wh'] = self::ILLEGAL_PAIR;1007 $this->digramRules['gh']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::PREFIX | self::NOT_END;1008 $this->digramRules['gh']['ck'] = self::ILLEGAL_PAIR;1009 $this->digramRules['ph'] = [];1010 $this->digramRules['ph']['a'] = self::ANY_COMBINATION;1011 $this->digramRules['ph']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1012 $this->digramRules['ph']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1013 $this->digramRules['ph']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1014 $this->digramRules['ph']['e'] = self::ANY_COMBINATION;1015 $this->digramRules['ph']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1016 $this->digramRules['ph']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1017 $this->digramRules['ph']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1018 $this->digramRules['ph']['i'] = self::ANY_COMBINATION;1019 $this->digramRules['ph']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1020 $this->digramRules['ph']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1021 $this->digramRules['ph']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;1022 $this->digramRules['ph']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1023 $this->digramRules['ph']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1024 $this->digramRules['ph']['o'] = self::ANY_COMBINATION;1025 $this->digramRules['ph']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1026 $this->digramRules['ph']['r'] = self::NOT_END;1027 $this->digramRules['ph']['s'] = self::NOT_BEGIN;1028 $this->digramRules['ph']['t'] = self::NOT_BEGIN;1029 $this->digramRules['ph']['u'] = self::ANY_COMBINATION;1030 $this->digramRules['ph']['v'] = self::NOT_BEGIN | self::NOT_END;1031 $this->digramRules['ph']['w'] = self::NOT_BEGIN | self::NOT_END;1032 $this->digramRules['ph']['x'] = self::ILLEGAL_PAIR;1033 $this->digramRules['ph']['y'] = self::NOT_BEGIN;1034 $this->digramRules['ph']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1035 $this->digramRules['ph']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1036 $this->digramRules['ph']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1037 $this->digramRules['ph']['ph'] = self::ILLEGAL_PAIR;1038 $this->digramRules['ph']['rh'] = self::ILLEGAL_PAIR;1039 $this->digramRules['ph']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1040 $this->digramRules['ph']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1041 $this->digramRules['ph']['wh'] = self::ILLEGAL_PAIR;1042 $this->digramRules['ph']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1043 $this->digramRules['ph']['ck'] = self::ILLEGAL_PAIR;1044 $this->digramRules['rh'] = [];1045 $this->digramRules['rh']['a'] = self::BEGIN | self::NOT_END;1046 $this->digramRules['rh']['b'] = self::ILLEGAL_PAIR;1047 $this->digramRules['rh']['c'] = self::ILLEGAL_PAIR;1048 $this->digramRules['rh']['d'] = self::ILLEGAL_PAIR;1049 $this->digramRules['rh']['e'] = self::BEGIN | self::NOT_END;1050 $this->digramRules['rh']['f'] = self::ILLEGAL_PAIR;1051 $this->digramRules['rh']['g'] = self::ILLEGAL_PAIR;1052 $this->digramRules['rh']['h'] = self::ILLEGAL_PAIR;1053 $this->digramRules['rh']['i'] = self::BEGIN | self::NOT_END;1054 $this->digramRules['rh']['j'] = self::ILLEGAL_PAIR;1055 $this->digramRules['rh']['k'] = self::ILLEGAL_PAIR;1056 $this->digramRules['rh']['l'] = self::ILLEGAL_PAIR;1057 $this->digramRules['rh']['m'] = self::ILLEGAL_PAIR;1058 $this->digramRules['rh']['n'] = self::ILLEGAL_PAIR;1059 $this->digramRules['rh']['o'] = self::BEGIN | self::NOT_END;1060 $this->digramRules['rh']['p'] = self::ILLEGAL_PAIR;1061 $this->digramRules['rh']['r'] = self::ILLEGAL_PAIR;1062 $this->digramRules['rh']['s'] = self::ILLEGAL_PAIR;1063 $this->digramRules['rh']['t'] = self::ILLEGAL_PAIR;1064 $this->digramRules['rh']['u'] = self::BEGIN | self::NOT_END;1065 $this->digramRules['rh']['v'] = self::ILLEGAL_PAIR;1066 $this->digramRules['rh']['w'] = self::ILLEGAL_PAIR;1067 $this->digramRules['rh']['x'] = self::ILLEGAL_PAIR;1068 $this->digramRules['rh']['y'] = self::BEGIN | self::NOT_END;1069 $this->digramRules['rh']['z'] = self::ILLEGAL_PAIR;1070 $this->digramRules['rh']['ch'] = self::ILLEGAL_PAIR;1071 $this->digramRules['rh']['gh'] = self::ILLEGAL_PAIR;1072 $this->digramRules['rh']['ph'] = self::ILLEGAL_PAIR;1073 $this->digramRules['rh']['rh'] = self::ILLEGAL_PAIR;1074 $this->digramRules['rh']['sh'] = self::ILLEGAL_PAIR;1075 $this->digramRules['rh']['th'] = self::ILLEGAL_PAIR;1076 $this->digramRules['rh']['wh'] = self::ILLEGAL_PAIR;1077 $this->digramRules['rh']['qu'] = self::ILLEGAL_PAIR;1078 $this->digramRules['rh']['ck'] = self::ILLEGAL_PAIR;1079 $this->digramRules['sh'] = [];1080 $this->digramRules['sh']['a'] = self::ANY_COMBINATION;1081 $this->digramRules['sh']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1082 $this->digramRules['sh']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1083 $this->digramRules['sh']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1084 $this->digramRules['sh']['e'] = self::ANY_COMBINATION;1085 $this->digramRules['sh']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1086 $this->digramRules['sh']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1087 $this->digramRules['sh']['h'] = self::ILLEGAL_PAIR;1088 $this->digramRules['sh']['i'] = self::ANY_COMBINATION;1089 $this->digramRules['sh']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1090 $this->digramRules['sh']['k'] = self::NOT_BEGIN;1091 $this->digramRules['sh']['l'] = self::BEGIN | self::SUFFIX | self::NOT_END;1092 $this->digramRules['sh']['m'] = self::BEGIN | self::SUFFIX | self::NOT_END;1093 $this->digramRules['sh']['n'] = self::BEGIN | self::SUFFIX | self::NOT_END;1094 $this->digramRules['sh']['o'] = self::ANY_COMBINATION;1095 $this->digramRules['sh']['p'] = self::NOT_BEGIN;1096 $this->digramRules['sh']['r'] = self::BEGIN | self::SUFFIX | self::NOT_END;1097 $this->digramRules['sh']['s'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1098 $this->digramRules['sh']['t'] = self::SUFFIX;1099 $this->digramRules['sh']['u'] = self::ANY_COMBINATION;1100 $this->digramRules['sh']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1101 $this->digramRules['sh']['w'] = self::SUFFIX | self::NOT_END;1102 $this->digramRules['sh']['x'] = self::ILLEGAL_PAIR;1103 $this->digramRules['sh']['y'] = self::ANY_COMBINATION;1104 $this->digramRules['sh']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1105 $this->digramRules['sh']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1106 $this->digramRules['sh']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1107 $this->digramRules['sh']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1108 $this->digramRules['sh']['rh'] = self::ILLEGAL_PAIR;1109 $this->digramRules['sh']['sh'] = self::ILLEGAL_PAIR;1110 $this->digramRules['sh']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1111 $this->digramRules['sh']['wh'] = self::ILLEGAL_PAIR;1112 $this->digramRules['sh']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1113 $this->digramRules['sh']['ck'] = self::ILLEGAL_PAIR;1114 $this->digramRules['th'] = [];1115 $this->digramRules['th']['a'] = self::ANY_COMBINATION;1116 $this->digramRules['th']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1117 $this->digramRules['th']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1118 $this->digramRules['th']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1119 $this->digramRules['th']['e'] = self::ANY_COMBINATION;1120 $this->digramRules['th']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1121 $this->digramRules['th']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1122 $this->digramRules['th']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1123 $this->digramRules['th']['i'] = self::ANY_COMBINATION;1124 $this->digramRules['th']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1125 $this->digramRules['th']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1126 $this->digramRules['th']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1127 $this->digramRules['th']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1128 $this->digramRules['th']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1129 $this->digramRules['th']['o'] = self::ANY_COMBINATION;1130 $this->digramRules['th']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1131 $this->digramRules['th']['r'] = self::NOT_END;1132 $this->digramRules['th']['s'] = self::NOT_BEGIN | self::END;1133 $this->digramRules['th']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1134 $this->digramRules['th']['u'] = self::ANY_COMBINATION;1135 $this->digramRules['th']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1136 $this->digramRules['th']['w'] = self::SUFFIX | self::NOT_END;1137 $this->digramRules['th']['x'] = self::ILLEGAL_PAIR;1138 $this->digramRules['th']['y'] = self::ANY_COMBINATION;1139 $this->digramRules['th']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1140 $this->digramRules['th']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1141 $this->digramRules['th']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1142 $this->digramRules['th']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1143 $this->digramRules['th']['rh'] = self::ILLEGAL_PAIR;1144 $this->digramRules['th']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1145 $this->digramRules['th']['th'] = self::ILLEGAL_PAIR;1146 $this->digramRules['th']['wh'] = self::ILLEGAL_PAIR;1147 $this->digramRules['th']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1148 $this->digramRules['th']['ck'] = self::ILLEGAL_PAIR;1149 $this->digramRules['wh'] = [];1150 $this->digramRules['wh']['a'] = self::BEGIN | self::NOT_END;1151 $this->digramRules['wh']['b'] = self::ILLEGAL_PAIR;1152 $this->digramRules['wh']['c'] = self::ILLEGAL_PAIR;1153 $this->digramRules['wh']['d'] = self::ILLEGAL_PAIR;1154 $this->digramRules['wh']['e'] = self::BEGIN | self::NOT_END;1155 $this->digramRules['wh']['f'] = self::ILLEGAL_PAIR;1156 $this->digramRules['wh']['g'] = self::ILLEGAL_PAIR;1157 $this->digramRules['wh']['h'] = self::ILLEGAL_PAIR;1158 $this->digramRules['wh']['i'] = self::BEGIN | self::NOT_END;1159 $this->digramRules['wh']['j'] = self::ILLEGAL_PAIR;1160 $this->digramRules['wh']['k'] = self::ILLEGAL_PAIR;1161 $this->digramRules['wh']['l'] = self::ILLEGAL_PAIR;1162 $this->digramRules['wh']['m'] = self::ILLEGAL_PAIR;1163 $this->digramRules['wh']['n'] = self::ILLEGAL_PAIR;1164 $this->digramRules['wh']['o'] = self::BEGIN | self::NOT_END;1165 $this->digramRules['wh']['p'] = self::ILLEGAL_PAIR;1166 $this->digramRules['wh']['r'] = self::ILLEGAL_PAIR;1167 $this->digramRules['wh']['s'] = self::ILLEGAL_PAIR;1168 $this->digramRules['wh']['t'] = self::ILLEGAL_PAIR;1169 $this->digramRules['wh']['u'] = self::ILLEGAL_PAIR;1170 $this->digramRules['wh']['v'] = self::ILLEGAL_PAIR;1171 $this->digramRules['wh']['w'] = self::ILLEGAL_PAIR;1172 $this->digramRules['wh']['x'] = self::ILLEGAL_PAIR;1173 $this->digramRules['wh']['y'] = self::BEGIN | self::NOT_END;1174 $this->digramRules['wh']['z'] = self::ILLEGAL_PAIR;1175 $this->digramRules['wh']['ch'] = self::ILLEGAL_PAIR;1176 $this->digramRules['wh']['gh'] = self::ILLEGAL_PAIR;1177 $this->digramRules['wh']['ph'] = self::ILLEGAL_PAIR;1178 $this->digramRules['wh']['rh'] = self::ILLEGAL_PAIR;1179 $this->digramRules['wh']['sh'] = self::ILLEGAL_PAIR;1180 $this->digramRules['wh']['th'] = self::ILLEGAL_PAIR;1181 $this->digramRules['wh']['wh'] = self::ILLEGAL_PAIR;1182 $this->digramRules['wh']['qu'] = self::ILLEGAL_PAIR;1183 $this->digramRules['wh']['ck'] = self::ILLEGAL_PAIR;1184 $this->digramRules['qu'] = [];1185 $this->digramRules['qu']['a'] = self::ANY_COMBINATION;1186 $this->digramRules['qu']['b'] = self::ILLEGAL_PAIR;1187 $this->digramRules['qu']['c'] = self::ILLEGAL_PAIR;1188 $this->digramRules['qu']['d'] = self::ILLEGAL_PAIR;1189 $this->digramRules['qu']['e'] = self::ANY_COMBINATION;1190 $this->digramRules['qu']['f'] = self::ILLEGAL_PAIR;1191 $this->digramRules['qu']['g'] = self::ILLEGAL_PAIR;1192 $this->digramRules['qu']['h'] = self::ILLEGAL_PAIR;1193 $this->digramRules['qu']['i'] = self::ANY_COMBINATION;1194 $this->digramRules['qu']['j'] = self::ILLEGAL_PAIR;1195 $this->digramRules['qu']['k'] = self::ILLEGAL_PAIR;1196 $this->digramRules['qu']['l'] = self::ILLEGAL_PAIR;1197 $this->digramRules['qu']['m'] = self::ILLEGAL_PAIR;1198 $this->digramRules['qu']['n'] = self::ILLEGAL_PAIR;1199 $this->digramRules['qu']['o'] = self::ANY_COMBINATION;1200 $this->digramRules['qu']['p'] = self::ILLEGAL_PAIR;1201 $this->digramRules['qu']['r'] = self::ILLEGAL_PAIR;1202 $this->digramRules['qu']['s'] = self::ILLEGAL_PAIR;1203 $this->digramRules['qu']['t'] = self::ILLEGAL_PAIR;1204 $this->digramRules['qu']['u'] = self::ILLEGAL_PAIR;1205 $this->digramRules['qu']['v'] = self::ILLEGAL_PAIR;1206 $this->digramRules['qu']['w'] = self::ILLEGAL_PAIR;1207 $this->digramRules['qu']['x'] = self::ILLEGAL_PAIR;1208 $this->digramRules['qu']['y'] = self::ILLEGAL_PAIR;1209 $this->digramRules['qu']['z'] = self::ILLEGAL_PAIR;1210 $this->digramRules['qu']['ch'] = self::ILLEGAL_PAIR;1211 $this->digramRules['qu']['gh'] = self::ILLEGAL_PAIR;1212 $this->digramRules['qu']['ph'] = self::ILLEGAL_PAIR;1213 $this->digramRules['qu']['rh'] = self::ILLEGAL_PAIR;1214 $this->digramRules['qu']['sh'] = self::ILLEGAL_PAIR;1215 $this->digramRules['qu']['th'] = self::ILLEGAL_PAIR;1216 $this->digramRules['qu']['wh'] = self::ILLEGAL_PAIR;1217 $this->digramRules['qu']['qu'] = self::ILLEGAL_PAIR;1218 $this->digramRules['qu']['ck'] = self::ILLEGAL_PAIR;1219 $this->digramRules['ck'] = [];1220 $this->digramRules['ck']['a'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1221 $this->digramRules['ck']['b'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1222 $this->digramRules['ck']['c'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1223 $this->digramRules['ck']['d'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1224 $this->digramRules['ck']['e'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1225 $this->digramRules['ck']['f'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1226 $this->digramRules['ck']['g'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1227 $this->digramRules['ck']['h'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1228 $this->digramRules['ck']['i'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1229 $this->digramRules['ck']['j'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1230 $this->digramRules['ck']['k'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1231 $this->digramRules['ck']['l'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1232 $this->digramRules['ck']['m'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1233 $this->digramRules['ck']['n'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1234 $this->digramRules['ck']['o'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1235 $this->digramRules['ck']['p'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1236 $this->digramRules['ck']['r'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1237 $this->digramRules['ck']['s'] = self::NOT_BEGIN;1238 $this->digramRules['ck']['t'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1239 $this->digramRules['ck']['u'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1240 $this->digramRules['ck']['v'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1241 $this->digramRules['ck']['w'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1242 $this->digramRules['ck']['x'] = self::ILLEGAL_PAIR;1243 $this->digramRules['ck']['y'] = self::NOT_BEGIN;1244 $this->digramRules['ck']['z'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1245 $this->digramRules['ck']['ch'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1246 $this->digramRules['ck']['gh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1247 $this->digramRules['ck']['ph'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1248 $this->digramRules['ck']['rh'] = self::ILLEGAL_PAIR;1249 $this->digramRules['ck']['sh'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1250 $this->digramRules['ck']['th'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1251 $this->digramRules['ck']['wh'] = self::ILLEGAL_PAIR;1252 $this->digramRules['ck']['qu'] = self::NOT_BEGIN | self::BREAK_GRAM | self::NOT_END;1253 $this->digramRules['ck']['ck'] = self::ILLEGAL_PAIR;1254 }1255 public function setSeparator($sep)1256 {1257 $this->separator = $sep;1258 }1259 public function generate($length)1260 {1261 return $this->generateWord($length);1262 }1263 private function generateWord($length)1264 {1265 $word = '';1266 $syllables = [];1267 $maxRetries = (4 * $length) + count($this->grams);1268 $tries = 0;1269 $wordUnits = [];1270 $savedPair = [];1271 while (strlen($word) < $length) {1272 list($new, $units, $savedPair) = $this->getSyllable($length - strlen($word), $savedPair);1273 $wordUnits = array_merge($wordUnits, $units);1274 if (!($this->isImproperWord($wordUnits) || ($word === '' && $this->haveInitialY($units)) || (strlen($word . $new) === $length && $this->haveFinalSplit($units)))) {1275 $word = $word . $new;1276 $syllables[] = $new;1277 }1278 $tries += 1;1279 if ($tries > $maxRetries) {1280 $tries = 0;1281 $word = '';1282 $syllables = [];1283 $wordUnits = [];1284 }1285 }1286 return implode($this->separator, $syllables);1287 }1288 private function getSyllable($length, $savedPair)1289 {1290 $holdSavedPair = $savedPair;1291 $maxRetries = (4 * $length) + count($this->grams);1292 do {1293 $tries = 0;1294 $lastUnit = '';1295 $savedPair = $holdSavedPair;1296 $syllable = '';1297 $unitsInSyllable = [];1298 $vowelCount = 0;1299 $currentUnit = 0;1300 $lengthLeft = $length;1301 $wantAnotherUnit = true;1302 do {1303 $wantVowel = false;1304 do {1305 if (count($savedPair) === 2) {1306 $syllable = array_pop($savedPair);1307 $unitsInSyllable[0] = $syllable;1308 $currentUnit += 1;1309 $lengthLeft -= strlen($syllable);1310 if ($this->gramRules[$syllable] & self::VOWEL) {1311 $vowelCount += 1;1312 }1313 }1314 if (count($savedPair) > 0) {1315 $unit = array_pop($savedPair);1316 } else {1317 if ($wantVowel) {1318 $unit = $this->getRandomUnit(self::VOWEL);1319 } else {1320 $unit = $this->getRandomUnit(self::NO_SPECIAL_RULE);1321 }1322 }1323 $lengthLeft -= strlen($unit);1324 $ruleBroken = $lengthLeft < 0;1325 if ($currentUnit === 0) {1326 if ($this->gramRules[$unit] & self::NOT_BEGIN_SYLLABLE) {1327 $ruleBroken = true;1328 } elseif ($lengthLeft === 0) {1329 if ($this->gramRules[$unit] & self::VOWEL) {1330 $wantAnotherUnit = false;1331 } else {1332 $ruleBroken = true;1333 }1334 }1335 } else {1336 $digrams = $this->digramRules;1337 $allowed = function ($flag) use ($digrams, $unitsInSyllable, $currentUnit, $unit) {1338 return $digrams[$unitsInSyllable[$currentUnit - 1]][$unit] & $flag;1339 };1340 if (1341 $allowed(self::ILLEGAL_PAIR) ||1342 ($allowed(self::BREAK_GRAM) && $vowelCount === 0) ||1343 ($allowed(self::END) && $vowelCount === 0 && !($this->gramRules[$unit] & self::VOWEL))1344 ) {1345 $ruleBroken = true;1346 }1347 if ($currentUnit === 1) {1348 if ($allowed(self::NOT_BEGIN)) {1349 $ruleBroken = true;1350 }1351 } else {1352 $lastUnit = $unitsInSyllable[$currentUnit - 1];1353 if (1354 ($currentUnit === 2 && $allowed(self::BEGIN) && ($this->gramRules[$unitsInSyllable[0]] & self::ALTERNATE_VOWEL)) ||1355 ($allowed(self::NOT_END) && $lengthLeft === 0) ||1356 ($allowed(self::BREAK_GRAM) || $this->digramRules[$unitsInSyllable[$currentUnit - 2]][$lastUnit] & self::NOT_END) ||1357 ($allowed(self::PREFIX) && !($this->gramRules[$unitsInSyllable[$currentUnit - 2]] & self::VOWEL))1358 ) {1359 $ruleBroken = true;1360 }1361 if (1362 !$ruleBroken &&1363 $this->gramRules[$unit] & self::VOWEL &&1364 ($lengthLeft > 0 || !($this->gramRules[$lastUnit] & self::NO_FINAL_SPLIT))1365 ) {1366 if ($vowelCount > 0 && $this->gramRules[$lastUnit] & self::VOWEL) {1367 $ruleBroken = true;1368 } elseif ($vowelCount !== 0 && !($this->gramRules[$lastUnit] && self::VOWEL)) {1369 if ($this->digramRules[$unitsInSyllable[$currentUnit - 2]][$lastUnit] & self::NOT_END) {1370 $ruleBroken = true;1371 } else {1372 $savedPair = [$unit];1373 $wantAnotherUnit = false;1374 }1375 }1376 }1377 }1378 if (!$ruleBroken && $wantAnotherUnit) {1379 if (1380 (1381 $vowelCount !== 0 &&1382 ($this->gramRules[$unit] & self::NO_FINAL_SPLIT) &&1383 $lengthLeft === 0 &&1384 ($lastUnit && !($this->gramRules[$lastUnit] & self::VOWEL))1385 ) || ($allowed(self::END) || $lengthLeft === 0)1386 ) {1387 $wantAnotherUnit = false;1388 } elseif ($vowelCount !== 0 && $lengthLeft > 0) {1389 if (1390 $allowed(self::BEGIN) &&1391 $currentUnit > 1 &&1392 !($vowelCount === 1 && $this->gramRules[$lastUnit] & self::VOWEL)1393 ) {1394 $savedPair = [$unit, $lastUnit];1395 $wantAnotherUnit = false;1396 } elseif ($allowed(self::BREAK_GRAM)) {1397 $savedPair = [$unit];1398 $wantAnotherUnit = false;1399 }1400 } elseif ($allowed(self::SUFFIX)) {1401 $wantVowel = true;1402 }1403 }1404 }1405 $tries += 1;1406 if ($ruleBroken) {1407 $lengthLeft += strlen($unit);1408 }1409 } while ($ruleBroken && $tries < $maxRetries);1410 if ($tries <= $maxRetries) {1411 if (1412 ($this->gramRules[$unit] & self::VOWEL) &&1413 ($currentUnit > 0 || !($this->gramRules[$unit] & self::ALTERNATE_VOWEL))1414 ) {1415 $vowelCount += 1;1416 }1417 if (count($savedPair) === 2) {1418 $syllable = substr($syllable, 0, strlen($syllable) - strlen($lastUnit));1419 $lengthLeft += strlen($lastUnit);1420 $currentUnit -= 2;1421 } elseif (count($savedPair) === 1) {1422 $currentUnit -= 1;1423 } else {1424 $unitsInSyllable[$currentUnit] = $unit;1425 $syllable .= $unit;1426 }1427 }1428 $currentUnit += 1;1429 } while ($tries <= $maxRetries && $wantAnotherUnit);1430 } while ($ruleBroken || $this->isIllegalPlacement($unitsInSyllable));1431 return [$syllable, $unitsInSyllable, $savedPair];1432 }1433 private function isIllegalPlacement($units)1434 {1435 $vowelCount = 0;1436 $failure = false;1437 foreach ($units as $unitCount => $unit) {1438 if ($failure) {1439 break;1440 }1441 if ($unitCount >= 1) {1442 if (1443 (1444 !($this->gramRules[$units[$unitCount - 1]] & self::VOWEL) &&1445 ($this->gramRules[$unit] & self::VOWEL) &&1446 !($this->gramRules[$unit] & self::NO_FINAL_SPLIT && $unitCount === count($unit)) &&1447 $vowelCount > 01448 )1449 ||1450 (1451 $unitCount >= 2 &&1452 (1453 (1454 !($this->gramRules[$units[$unitCount - 2]] & self::VOWEL) &&1455 !($this->gramRules[$units[$unitCount - 1]] & self::VOWEL) &&1456 !($this->gramRules[$unit] & self::VOWEL)1457 )1458 ||1459 (1460 ($this->gramRules[$units[$unitCount - 2]] & self::VOWEL) &&1461 !(($this->gramRules[$units[0]] & self::ALTERNATE_VOWEL) && $unitCount === 2) &&1462 ($this->gramRules[$units[$unitCount - 1]] & self::VOWEL) &&1463 ($this->gramRules[$unit] & self::VOWEL)1464 )1465 )1466 )1467 ) {1468 $failure = true;1469 }1470 }1471 if (1472 $this->gramRules[$unit] & self::VOWEL &&1473 !(1474 $this->gramRules[$units[0]] & self::ALTERNATE_VOWEL &&1475 $unitCount === 0 &&1476 count($units) > 11477 )1478 ) {1479 $vowelCount += 1;1480 }1481 }1482 return $failure;1483 }1484 private function getRandomUnit($type)1485 {1486 if ($type & self::VOWEL) {1487 return $this->chooseRandom($this->vowelGrams);1488 } else {1489 return $this->chooseRandom($this->grams);1490 }1491 }1492 private function isImproperWord($units)1493 {1494 foreach ($units as $unitCount => $unit) {1495 if ($unitCount > 0 && $this->digramRules[$units[$unitCount - 1]][$unit] & self::ILLEGAL_PAIR) {1496 return true;1497 }1498 if ($unitCount >= 2) {1499 if (1500 (1501 ($this->gramRules[$units[$unitCount - 2]] & self::VOWEL) &&1502 !($this->gramRules[$units[$unitCount - 2]] & self::ALTERNATE_VOWEL) &&1503 ($this->gramRules[$units[$unitCount - 1]] & self::VOWEL) &&1504 ($this->gramRules[$unit] & self::VOWEL)1505 )1506 ||1507 (1508 !($this->gramRules[$units[$unitCount - 2]] & self::VOWEL) &&1509 !($this->gramRules[$units[$unitCount - 1]] & self::VOWEL) &&1510 !($this->gramRules[$units[$unitCount]] & self::VOWEL)1511 )1512 ) {1513 return true;1514 }1515 }1516 }1517 return false;1518 }1519 private function haveInitialY($units)1520 {1521 $vowelCount = 0;1522 $normalVowelCount = 0;1523 foreach ($units as $unitCount => $unit) {1524 if ($this->gramRules[$unit] & self::VOWEL) {1525 $vowelCount += 1;1526 if (!($this->gramRules[$unit] && self::ALTERNATE_VOWEL) || $unitCount > 0) {1527 $normalVowelCount += 1;1528 }1529 }1530 }1531 return $vowelCount <= 1 && $normalVowelCount === 0;1532 }1533 private function haveFinalSplit($units)1534 {1535 $vowelCount = 0;1536 foreach ($units as $unit) {1537 if ($this->gramRules[$unit] & self::VOWEL) {1538 $vowelCount += 1;1539 }1540 }1541 return $vowelCount === 1 && ($this->gramRules[$units[count($units) - 1]] & self::NO_FINAL_SPLIT);1542 }1543}...
bd.php
Source:bd.php
1<?php2if( !defined( 'ABSPATH')){ exit(); } 3 4/* 5Создаем ÑаблиÑÑ, необÑ
одимÑе нам 6*/ 7 8global $wpdb;9$prefix = $wpdb->prefix;10 $table_name = $wpdb->prefix ."change";11 $sql = "CREATE TABLE IF NOT EXISTS $table_name(12 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,13 `meta_key` varchar(250) NOT NULL,14 `meta_key2` varchar(250) NOT NULL,15 `meta_value` longtext NOT NULL,16 PRIMARY KEY ( `id` ) 17 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";18 $wpdb->query($sql);19 $table_name = $wpdb->prefix ."login_check";20 $sql = "CREATE TABLE IF NOT EXISTS $table_name(21 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,22 `datelogin` datetime NOT NULL,23 `user_id` bigint(20) NOT NULL,24 `user_login` varchar(250) NOT NULL,25 `user_ip` varchar(250) NOT NULL,26 `user_browser` varchar(250) NOT NULL,27 PRIMARY KEY ( `id` ) 28 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";29 $wpdb->query($sql); 30 31 /* безопаÑноÑÑÑ */32 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'sec_lostpass'");33 if ($query == 0){34 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `sec_lostpass` int(1) NOT NULL default '1'");35 }36 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'sec_login'");37 if ($query == 0){38 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `sec_login` int(1) NOT NULL default '0'");39 }40 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'email_login'");41 if ($query == 0){42 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `email_login` int(1) NOT NULL default '0'");43 }44 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'enable_ips'");45 if ($query == 0) {46 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `enable_ips` longtext NOT NULL");47 } 48 /* end безопаноÑÑÑ */49 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'auto_login1'");50 if ($query == 0){51 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `auto_login1` varchar(250) NOT NULL");52 }53 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'auto_login2'");54 if ($query == 0){55 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `auto_login2` varchar(250) NOT NULL");56 }57 $query = $wpdb->query("SHOW COLUMNS FROM ".$wpdb->prefix ."users LIKE 'user_discount'");58 if ($query == 0){59 $wpdb->query("ALTER TABLE ".$wpdb->prefix ."users ADD `user_discount` varchar(50) NOT NULL default '0'");60 } 61/* аÑÑ
ив */62 $table_name= $wpdb->prefix ."archive_data";63 $sql = "CREATE TABLE IF NOT EXISTS $table_name(64 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,65 `meta_key` varchar(250) NOT NULL,66 `meta_key2` varchar(250) NOT NULL,67 `meta_key3` varchar(250) NOT NULL,68 `item_id` bigint(20) NOT NULL default '0',69 `meta_value` varchar(20) NOT NULL default '0',70 PRIMARY KEY ( `id` ) 71 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";72 $wpdb->query($sql);73/*74плаÑежнÑе ÑиÑÑемÑ75psys_title - знаÑение76psys_logo - логоÑип77*/78 $table_name = $wpdb->prefix ."psys";79 $sql = "CREATE TABLE IF NOT EXISTS $table_name(80 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,81 `psys_title` longtext NOT NULL,82 `psys_logo` longtext NOT NULL,83 PRIMARY KEY ( `id` ) 84 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";85 $wpdb->query($sql);86/* end плаÑежнÑе ÑиÑÑÐµÐ¼Ñ */87/*88ÐºÐ¾Ð´Ñ Ð²Ð°Ð»ÑÑ89vtype_title - знаÑение90vncurs - внÑÑÑенний кÑÑÑ Ð·Ð° 1 доллаÑ91parser - id паÑÑеÑа92nums - ÑиÑло93elem - 0-ÑÑмма, 1-пÑоÑенÑ94*/95 $table_name = $wpdb->prefix ."vtypes";96 $sql = "CREATE TABLE IF NOT EXISTS $table_name(97 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,98 `vtype_title` longtext NOT NULL,99 `vncurs` varchar(50) NOT NULL default '0',100 `parser` bigint(20) NOT NULL default '0',101 `nums` varchar(50) NOT NULL default '0',102 `elem` int(2) NOT NULL default '0',103 PRIMARY KEY ( `id` ) 104 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";105 $wpdb->query($sql);106/* end ÐºÐ¾Ð´Ñ Ð²Ð°Ð»ÑÑ */107/* Ñоздаем ÐºÐ¾Ð´Ñ Ð²Ð°Ð»ÑÑ */108 $vtypes = array('RUB','EUR','USD','UAH','AMD','KZT','GLD','BYN','UZS','BTC','TRY');109 if(is_array($vtypes)){110 foreach($vtypes as $type){111 $cc = $wpdb->query("SELECT id FROM ". $wpdb->prefix ."vtypes WHERE vtype_title='$type'");112 if($cc == 0){113 $wpdb->insert($wpdb->prefix ."vtypes", array('vtype_title'=>$type, 'vncurs'=>'1'));114 }115 }116 }117/* end Ñоздаем ÐºÐ¾Ð´Ñ Ð²Ð°Ð»ÑÑ */118/*119РаÑпиÑание опеÑаÑоÑа120status - ÑÑаÑÑÑ121*/122 $table_name= $wpdb->prefix ."operator_schedules";123 $sql = "CREATE TABLE IF NOT EXISTS $table_name(124 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,125 `status` int(5) NOT NULL default '0',126 `h1` varchar(5) NOT NULL default '0',127 `m1` varchar(5) NOT NULL default '0',128 `h2` varchar(5) NOT NULL default '0',129 `m2` varchar(5) NOT NULL default '0', 130 `d1` int(1) NOT NULL default '0',131 `d2` int(1) NOT NULL default '0',132 `d3` int(1) NOT NULL default '0',133 `d4` int(1) NOT NULL default '0',134 `d5` int(1) NOT NULL default '0',135 `d6` int(1) NOT NULL default '0',136 `d7` int(1) NOT NULL default '0',137 `save_order` bigint(20) NOT NULL default '0',138 PRIMARY KEY ( `id` ) 139 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";140 $wpdb->query($sql); 141/*142валÑÑÑ143valut_logo - логоÑип валÑÑÑ144psys_logo - лого плаÑежки145psys_id - id ÐС146psys_title - название ÐС147vtype_id - id кода валÑÑÑ148vtype_title - название кода валÑÑÑ149valut_decimal - знаков поÑле запÑÑой150xml_value - знаÑение Ð´Ð»Ñ XML151valut_status - акÑивноÑÑÑ Ð²Ð°Ð»ÑÑÑ (1 - акÑивна, 0 - не акÑивна)152valut_reserv - ÑезеÑв (авÑоÑÑмма)153reserv_place - оÑкÑда бÑаÑÑ ÑезеÑв (0-ÑÑиÑаÑÑ)154minzn - минималÑное кол-во Ñимволов155maxzn - макÑималÑное кол-во Ñимволов156firstzn - пеÑвÑе бÑквÑ157cifrzn - ÑÑо иÑполÑзÑеÑÑÑ (0-бÑÐºÐ²Ñ Ð¸ ÑиÑÑÑ, 1-ÑолÑко ÑиÑÑÑ, 2-ÑолÑко бÑквÑ, 3-email, 4-вÑе ÑимволÑ, 5-ÑелеÑон)158vidzn - вид ÑÑеÑа (0-ÑÑеÑ, 1-каÑÑа, 2-Ð½Ð¾Ð¼ÐµÑ ÑелеÑона)159helps - подÑказка пÑи заполнении (оÑдаÑ)160helps2 - подÑказка пÑи заполнении (полÑÑаÑ)161txt1 - название оÑдаеÑе162show1 - вÑводиÑÑ Ð¿Ñи оÑдаеÑе163txt2 - название полÑÑаеÑе164show2 - вÑводиÑÑ Ð¿Ñи полÑÑаеÑе165lead_num - ÑиÑло пÑиведениÑ166cf_hidden - видимоÑÑÑ Ð½Ð° ÑайÑе167check_text - ÑекÑÑ Ð¿ÑовеÑенного коÑелÑка168check_purse - инÑеÑÑÐµÐ¹Ñ Ð¿ÑовеÑки коÑелÑка169*/170 $table_name= $wpdb->prefix ."valuts";171 $sql = "CREATE TABLE IF NOT EXISTS $table_name(172 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,173 `valut_logo` longtext NOT NULL,174 `psys_logo` longtext NOT NULL, 175 `valut_decimal` int(2) NOT NULL default '2',176 `valut_status` int(1) NOT NULL default '1',177 `valut_reserv` varchar(50) NOT NULL default '0',178 `reserv_place` varchar(150) NOT NULL default '0',179 `xml_value` varchar(250) NOT NULL, 180 `minzn` int(5) NOT NULL default '0',181 `maxzn` int(5) NOT NULL default '100',182 `firstzn` varchar(20) NOT NULL,183 `cifrzn` int(2) NOT NULL default '0',184 `vidzn` int(2) NOT NULL default '0',185 `lead_num` varchar(20) NOT NULL default '0',186 `helps` longtext NOT NULL,187 `helps2` longtext NOT NULL,188 `txt1` longtext NOT NULL,189 `txt2` longtext NOT NULL,190 `show1` int(2) NOT NULL default '1',191 `show2` int(2) NOT NULL default '1',192 `psys_id` bigint(20) NOT NULL default '0',193 `psys_title` longtext NOT NULL, 194 `vtype_id` bigint(20) NOT NULL default '0',195 `vtype_title` longtext NOT NULL,196 `cf_hidden` int(2) NOT NULL default '0',197 `site_order` bigint(20) NOT NULL default '0',198 `reserv_order` bigint(20) NOT NULL default '0',199 `check_text` longtext NOT NULL,200 `check_purse` varchar(150) NOT NULL default '0',201 PRIMARY KEY ( `id` ) 202 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";203 $wpdb->query($sql);204 $table_name= $wpdb->prefix ."valuts_meta";205 $sql = "CREATE TABLE IF NOT EXISTS $table_name(206 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,207 `item_id` bigint(20) NOT NULL default '0',208 `meta_key` longtext NOT NULL,209 `meta_value` longtext NOT NULL,210 PRIMARY KEY ( `id` ) 211 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";212 $wpdb->query($sql);213/*214ÑÑанзакÑии ÑезеÑва215trans_title - название ÑÑанзакÑии216trans_create - даÑа ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑанзакÑии217trans_edit - даÑа Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑанзакÑии218user_creator - id ÑзеÑа ÑоздавÑего ÑÑанзакÑиÑ219user_editor - id ÑзеÑа оÑÑедакÑиÑовавÑего ÑÑанзакÑиÑ220trans_summ - ÑÑмма221valut_id - id валÑÑÑ222vtype_id - id Ñипа валÑÑÑ223vtype_title - название Ñипа валÑÑÑ224*/225 $table_name= $wpdb->prefix ."trans_reserv";226 $sql = "CREATE TABLE IF NOT EXISTS $table_name(227 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,228 `trans_title` longtext NOT NULL,229 `trans_create` datetime NOT NULL,230 `trans_edit` datetime NOT NULL,231 `user_creator` bigint(20) NOT NULL default '0',232 `user_editor` bigint(20) NOT NULL default '0',233 `trans_summ` varchar(50) NOT NULL default '0',234 `valut_id` bigint(20) NOT NULL default '0',235 `vtype_id` bigint(20) NOT NULL default '0',236 `vtype_title` longtext NOT NULL,237 PRIMARY KEY ( `id` ) 238 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";239 $wpdb->query($sql);240/*241ÐополниÑелÑнÑе Ð¿Ð¾Ð»Ñ Ð²Ð°Ð»ÑÑ242tech_name - ÑеÑ
ниÑеÑкое название243cf_name - название244vid - 0 ÑекÑÑ, 1- select245cf_req - 0-не обÑзаÑелÑно, 1-обÑзаÑелÑно246minzn - мин.длинна247maxzn - Ð¼Ð°ÐºÑ Ð´Ð»Ð¸Ð½Ð½Ð°248firstzn - наÑалÑное знаÑение249helps - подÑказка оÑдаеÑе250datas - еÑли ÑелекÑ, Ñо маÑÑив вÑбоÑки251cf_hidden - видимоÑÑÑ Ð½Ð° ÑайÑе252valut_id - id валÑÑÑ253place_id - 0 - и Ñам и Ñам, 1 - оÑдаеÑе, 2 - полÑÑаеÑе254uniqueid - иденÑиÑикаÑÐ¾Ñ Ð´Ð»Ñ Ð°Ð²ÑовÑÐ¿Ð»Ð°Ñ Ð¸ пÑоÑего255*/ 256 $table_name= $wpdb->prefix ."custom_fields_valut";257 $sql = "CREATE TABLE IF NOT EXISTS $table_name(258 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,259 `tech_name` longtext NOT NULL,260 `cf_name` longtext NOT NULL,261 `vid` int(1) NOT NULL default '0',262 `valut_id` bigint(20) NOT NULL default '0',263 `cf_req` int(1) NOT NULL default '0',264 `place_id` int(1) NOT NULL default '0',265 `minzn` int(2) NOT NULL default '0',266 `maxzn` int(5) NOT NULL default '100',267 `firstzn` varchar(20) NOT NULL,268 `uniqueid` varchar(250) NOT NULL,269 `helps` longtext NOT NULL,270 `datas` longtext NOT NULL,271 `status` int(2) NOT NULL default '1',272 `cf_hidden` int(2) NOT NULL default '0',273 `cf_order` bigint(20) NOT NULL default '0',274 PRIMARY KEY ( `id` ) 275 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";276 $wpdb->query($sql);277/*278ÐополниÑелÑнÑе Ð¿Ð¾Ð»Ñ Ð½Ð°Ð¿Ñавлений279tech_name - ÑеÑ
ниÑеÑкое название280cf_name - название281vid - 0 ÑекÑÑ, 1- select282cf_req - 0-не обÑзаÑелÑно, 1-обÑзаÑелÑно283cf_hidden - видимоÑÑÑ Ð½Ð° ÑайÑе284minzn - мин.длинна285maxzn - Ð¼Ð°ÐºÑ Ð´Ð»Ð¸Ð½Ð½Ð°286firstzn - наÑалÑное знаÑение287helps - подÑказка288datas - еÑли ÑелекÑ, Ñо маÑÑив вÑбоÑки289*/ 290 $table_name= $wpdb->prefix ."custom_fields";291 $sql = "CREATE TABLE IF NOT EXISTS $table_name(292 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,293 `tech_name` longtext NOT NULL,294 `cf_name` longtext NOT NULL,295 `vid` int(1) NOT NULL default '0',296 `cf_req` int(1) NOT NULL default '0',297 `minzn` int(2) NOT NULL default '0',298 `maxzn` int(5) NOT NULL default '100',299 `firstzn` varchar(20) NOT NULL,300 `uniqueid` varchar(250) NOT NULL,301 `helps` longtext NOT NULL,302 `cf_auto` varchar(250) NOT NULL,303 `datas` longtext NOT NULL,304 `status` int(2) NOT NULL default '1',305 `cf_hidden` int(2) NOT NULL default '0',306 `cf_order` bigint(20) NOT NULL default '0',307 PRIMARY KEY ( `id` ) 308 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";309 $wpdb->query($sql); 310 311 $table_name= $wpdb->prefix ."cf_naps";312 $sql = "CREATE TABLE IF NOT EXISTS $table_name(313 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,314 `naps_id` bigint(20) NOT NULL default '0',315 `cf_id` bigint(20) NOT NULL default '0',316 `place_id` bigint(20) NOT NULL default '0',317 PRIMARY KEY ( `id` ) 318 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";319 $wpdb->query($sql);320/*321напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¼ÐµÐ½Ð¾Ð²322valut_id1 - валÑÑа оÑдаеÑе323valut_id2 - валÑÑа полÑÑаеÑе324psys_id1 - id плаÑежной ÑиÑÑÐµÐ¼Ñ Ð¾ÑдаеÑе325psys_id2 - id плаÑежной ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾Ð»ÑÑаеÑе326naps_status - ÑÑаÑÑÑ Ð½Ð°Ð¿ÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ (1-акÑивно, 0-неакÑивно)327show_file - 0-не вÑводиÑÑ Ð² ÑайлаÑ
, 1-вÑводиÑÑ Ð² ÑайлаÑ
328curs1 - кÑÑÑ 1329curs2 - кÑÑÑ 2330minsumm1 - Ðин. ÑÑмма обмена (Ð´Ð»Ñ ÐÑдаÑ)331minsumm2 - Ðин. ÑÑмма обмена (Ð´Ð»Ñ ÐолÑÑаÑ)332maxsumm1 - ÐакÑ. ÑÑмма обмена (Ð´Ð»Ñ ÐÑдаÑ)333maxsumm2 - ÐакÑ. ÑÑмма обмена (Ð´Ð»Ñ ÐолÑÑаÑ)334com_summ1 - ÑÑмма коммиÑÑи 1335com_pers1 - пÑоÑÐµÐ½Ñ ÐºÐ¾Ð¼Ð¼Ð¸ÑÑи 1336com_summ2 - ÑÑмма коммиÑÑи 2337com_pers2 - пÑоÑÐµÐ½Ñ ÐºÐ¾Ð¼Ð¼Ð¸ÑÑи 2338profit_summ1 - ÑÑмма пÑибÑли 1339profit_pers1 - пÑоÑÐµÐ½Ñ Ð¿ÑибÑли 1340profit_summ2 - ÑÑмма пÑибÑли 2341profit_pers2 - пÑоÑÐµÐ½Ñ Ð¿ÑибÑли 2342minsumm1com - минималÑÐ½Ð°Ñ ÑÑмма комиÑÑии343maxsumm1com - макÑималÑÐ½Ð°Ñ ÑÑмма комиÑÑии344pay_com1 - оплаÑа комиÑÑии (0-ÑзеÑ, 1-обменник)345pay_com2 - оплаÑа комиÑÑии (0-ÑзеÑ, 1-обменник)346nscom1 - неÑÑандаÑÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ (0-неÑ, 1-да)347nscom2 - неÑÑандаÑÑÐ½Ð°Ñ ÐºÐ¾Ð¼Ð¸ÑÑÐ¸Ñ (0-неÑ, 1-да)348com_box_summ1 - доп.комиÑÑÐ¸Ñ Ñ Ð¾ÑпÑавиÑÐµÐ»Ñ ÑÑмма349com_box_pers1 - доп.комиÑÑÐ¸Ñ Ñ Ð¾ÑпÑавиÑÐµÐ»Ñ Ð¿ÑоÑенÑ350com_box_min1 - доп.комиÑÑÐ¸Ñ Ñ Ð¾ÑпÑавиÑелÑ351com_box_summ2 - доп.комиÑÑÐ¸Ñ Ñ Ð¿Ð¾Ð»ÑÑаÑÐµÐ»Ñ ÑÑмма352com_box_pers2 - доп.комиÑÑÐ¸Ñ Ñ Ð¿Ð¾Ð»ÑÑаÑÐµÐ»Ñ Ð¿ÑоÑенÑ353com_box_min2 - доп.комиÑÑÐ¸Ñ Ñ Ð¿Ð¾Ð»ÑÑаÑелÑ354user_sk - Ñкидка полÑзоваÑелей355max_user_sk - макÑималÑÐ½Ð°Ñ Ñкидка356maxnaps - огÑаниÑение ÑезеÑва по напÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾Ð±Ð¼ÐµÐ½Ð°357not_ip - запÑеÑеннÑе ip или маÑки, маÑÑив358m_in - меÑÑÑÐ°Ð½Ñ Ð¿Ñиема оплаÑÑ 359m_out - меÑÑÐ°Ð½Ñ Ð°Ð²ÑовÑплаÑÑ360naps_name - ЧÐУ напÑавлениÑ361site_order1 - ÑоÑÑиÑовка Ð´Ð»Ñ ÑаÑиÑов и каÑÑÑ ÑайÑа362*/363 $table_name = $wpdb->prefix ."naps";364 $sql = "CREATE TABLE IF NOT EXISTS $table_name(365 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,366 `createdate` datetime NOT NULL,367 `editdate` datetime NOT NULL,368 `autostatus` int(1) NOT NULL default '1',369 `valut_id1` bigint(20) NOT NULL default '0',370 `valut_id2` bigint(20) NOT NULL default '0',371 `psys_id1` bigint(20) NOT NULL default '0',372 `psys_id2` bigint(20) NOT NULL default '0', 373 `tech_name` longtext NOT NULL,374 `curs1` varchar(50) NOT NULL default '0',375 `curs2` varchar(50) NOT NULL default '0',376 `profit_summ1` varchar(50) NOT NULL default '0',377 `profit_summ2` varchar(50) NOT NULL default '0',378 `profit_pers1` varchar(20) NOT NULL default '0',379 `profit_pers2` varchar(20) NOT NULL default '0', 380 `com_summ1` varchar(50) NOT NULL default '0',381 `com_summ2` varchar(50) NOT NULL default '0', 382 `com_pers1` varchar(20) NOT NULL default '0',383 `com_pers2` varchar(20) NOT NULL default '0', 384 `com_summ1_check` varchar(50) NOT NULL default '0',385 `com_summ2_check` varchar(50) NOT NULL default '0',386 `com_pers1_check` varchar(20) NOT NULL default '0',387 `com_pers2_check` varchar(20) NOT NULL default '0',388 `pay_com1` int(1) NOT NULL default '0',389 `pay_com2` int(1) NOT NULL default '0',390 `nscom1` int(1) NOT NULL default '0',391 `nscom2` int(1) NOT NULL default '0', 392 `maxsumm1com` varchar(250) NOT NULL default '0', 393 `maxsumm2com` varchar(250) NOT NULL default '0',394 `minsumm1com` varchar(50) NOT NULL default '0', 395 `minsumm2com` varchar(50) NOT NULL default '0', 396 `minsumm1` varchar(250) NOT NULL default '0',397 `minsumm2` varchar(250) NOT NULL default '0',398 `maxsumm1` varchar(250) NOT NULL default '0',399 `maxsumm2` varchar(250) NOT NULL default '0',400 `com_box_summ1` varchar(250) NOT NULL default '0',401 `com_box_pers1` varchar(250) NOT NULL default '0',402 `com_box_min1` varchar(250) NOT NULL default '0',403 `com_box_summ2` varchar(250) NOT NULL default '0',404 `com_box_pers2` varchar(250) NOT NULL default '0',405 `com_box_min2` varchar(250) NOT NULL default '0',406 `m_in` varchar(150) NOT NULL default '0',407 `m_out` varchar(150) NOT NULL default '0', 408 `user_sk` int(1) NOT NULL default '1',409 `max_user_sk` varchar(5) NOT NULL default '50', 410 `check_purse` int(1) NOT NULL default '0',411 `req_check_purse` int(1) NOT NULL default '0', 412 `naps_name` varchar(250) NOT NULL,413 `naps_status` int(2) NOT NULL default '1',414 `site_order1` bigint(20) NOT NULL default '0',415 `to1` bigint(20) NOT NULL default '0',416 `to2_1` bigint(20) NOT NULL default '0',417 `to2_2` bigint(20) NOT NULL default '0',418 `to3_1` bigint(20) NOT NULL default '0', 419 PRIMARY KEY ( `id` ) 420 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";421 $wpdb->query($sql); 422 423 $table_name = $wpdb->prefix ."naps_meta";424 $sql = "CREATE TABLE IF NOT EXISTS $table_name(425 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,426 `item_id` bigint(20) NOT NULL default '0',427 `meta_key` longtext NOT NULL,428 `meta_value` longtext NOT NULL,429 PRIMARY KEY ( `id` ) 430 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";431 $wpdb->query($sql);432 $table_name = $wpdb->prefix ."naps_order";433 $sql = "CREATE TABLE IF NOT EXISTS $table_name(434 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,435 `naps_id` bigint(20) NOT NULL default '0',436 `v_id` bigint(20) NOT NULL default '0',437 `order1` bigint(20) NOT NULL default '0',438 PRIMARY KEY ( `id` ) 439 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";440 $wpdb->query($sql);441/* Ð¾Ð±Ð¼ÐµÐ½Ñ 442createdate - даÑа ÑозданиÑ443editdate - даÑа ÑÐ¼ÐµÐ½Ñ ÑÑаÑÑÑа444naps_id - id напÑавлениÑ445curs1 - кÑÑÑ 1446curs2 - кÑÑÑ 2447valut1 - название валÑÑÑ 1448valut2 - название валÑÑÑ 2449valut1i - id валÑÑÑ 1450valut2i - id валÑÑÑ 2451vtype1 - Ñип валÑÑÑ 1452vtype2 - Ñип валÑÑÑ 1453vtype1i - id Ñип валÑÑÑ 1454vtype2i - id Ñип валÑÑÑ 2455psys1i - id плаÑежной ÑиÑÑÐµÐ¼Ñ 1456psys2i - id плаÑежной ÑиÑÑÐµÐ¼Ñ 2457user_id - id ÑзеÑа458user_sk - Ñкидка полÑзоваÑÐµÐ»Ñ Ð² Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¾Ð±Ð¼ÐµÐ½Ð°459user_sksumm - ÑÑмма Ñкидки ÑзеÑа460user_country - ÑÑÑана461user_ip - ip462first_name463last_name464second_name465user_phone466user_skype467user_email468account1 - ÑÑÐµÑ 1469account2 - ÑÑÐµÑ 2470metas - обÑÑнÑе полÑ471dmetas - доп.Ð¿Ð¾Ð»Ñ Ð²Ð°Ð»ÑÑ472ref_id - id ÑеÑеÑала473profit - ÑÑмма пÑибÑли($)474summp - ÑÑмма паÑÑнеÑа($)475partpr - паÑÑнеÑÑкий пÑоÑенÑ476pcalc - паÑÑнеÑÑкое наÑиÑление (0-не наÑÑиÑано, 1-наÑÑиÑано) 477 заÑиÑа Ð¾Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑловий наÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑзеÑам.478exsum - ÑÑмма обмена в валÑÑе479summ1 - ÑÑмма оÑдаеÑе480dop_com1 - ÑÑмма доп.комиÑÑии481summ1_dc - ÑÑмма оÑдаеÑе Ñ Ð´Ð¾Ð¿.комиÑÑией482com_ps1 - комиÑÐ¸Ñ Ð¿Ð»Ð°Ñежной ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾ оÑдаеÑе483summ1c - ÑÑмма Ñ ÐºÐ¾Ð¼Ð¸ÑÑией Ð´Ð»Ñ ÑзеÑа484summ1cr - ÑÑмма Ñ ÐºÐ¾Ð¼Ð¸ÑÑией Ð´Ð»Ñ ÑезеÑва обменника485dop_com2 - ÑÑмма доп.комиÑÑии486com_ps2 - комиÑÐ¸Ñ Ð¿Ð»Ð°Ñежной ÑиÑÑÐµÐ¼Ñ Ð¿Ð¾ полÑÑаеÑе487summ2t - ÑÑмма полÑÑаеÑе по кÑÑÑÑ488summ2 - ÑÑмма полÑÑаеÑе по кÑÑÑÑ (ÑÑÑена Ñкидка)489summ2_dc - ÑÑмма полÑÑаеÑе Ñ Ð´Ð¾Ð¿.комиÑÑией490summ2c - ÑÑмма Ñ ÐºÐ¾Ð¼Ð¸ÑÑией Ð´Ð»Ñ ÑзеÑа491summ2cr - ÑÑмма Ñ ÐºÐ¾Ð¼Ð¸ÑÑией Ð´Ð»Ñ ÑезеÑва обменника492mystatus - id полÑзоваÑелÑÑкого ÑÑаÑÑÑа493status - ÑÑаÑÑÑ 494 auto - авÑомаÑиÑеÑки(не заÑвка)495 new - Ð½Ð¾Ð²Ð°Ñ Ð·Ð°Ñвка496 cancel - оÑменена полÑзоваÑелем497 delete - Ñдалена498 techpay - ÑеÑ
ниÑеÑÐºÐ°Ñ Ð¾Ð¿Ð»Ð°Ñа499 payed - ÑÐ·ÐµÑ Ñказал ÑÑо оплаÑена(Ñ Ð¾Ð¿Ð»Ð°Ñил!)500 realpay - ÑеалÑно оплаÑена501 verify - оплаÑена Ñ Ð´ÑÑгого коÑелÑка 502 error - оÑибка503 success - вÑполненаÑ504 505 realdelete - ÑÑловно(ÑилÑÑÑ)506 autodelete507 508hashed - Ñ
ÑÑ509user_hash - Ñ
ÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ510bid_locale - локализаÑиÑ511naschet - ÑÑÐµÑ Ð´Ð»Ñ Ð¾Ð¿Ð»Ð°ÑÑ512m_in - меÑÑÑÐ°Ð½Ñ Ð¿Ñиема оплаÑÑ513m_out - меÑÑÐ°Ð½Ñ Ð°Ð²ÑовÑплаÑÑ514exceed_pay - пÑевÑÑена оплаÑа или неÑ515hashdata - даннÑе в Ñ
ÑÑе516*/517 $table_name= $wpdb->prefix ."bids";518 $sql = "CREATE TABLE IF NOT EXISTS $table_name(519 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,520 `createdate` datetime NOT NULL,521 `editdate` datetime NOT NULL, 522 `naps_id` bigint(20) NOT NULL default '0',523 `curs1` varchar(50) NOT NULL default '0',524 `curs2` varchar(50) NOT NULL default '0', 525 `valut1` longtext NOT NULL,526 `valut2` longtext NOT NULL,527 `valut1i` bigint(20) NOT NULL default '0',528 `valut2i` bigint(20) NOT NULL default '0',529 `vtype1` varchar(35) NOT NULL,530 `vtype2` varchar(35) NOT NULL,531 `vtype1i` bigint(20) NOT NULL default '0',532 `vtype2i` bigint(20) NOT NULL default '0',533 `psys1i` bigint(20) NOT NULL default '0',534 `psys2i` bigint(20) NOT NULL default '0', 535 `exsum` varchar(50) NOT NULL default '0',536 `summ1` varchar(50) NOT NULL default '0',537 `dop_com1` varchar(50) NOT NULL default '0',538 `summ1_dc` varchar(50) NOT NULL default '0',539 `com_ps1` varchar(50) NOT NULL default '0',540 `summ1c` varchar(50) NOT NULL default '0',541 `summ1cr` varchar(50) NOT NULL default '0',542 `summ2t` varchar(50) NOT NULL default '0',543 `summ2` varchar(50) NOT NULL default '0',544 `dop_com2` varchar(50) NOT NULL default '0',545 `com_ps2` varchar(50) NOT NULL default '0',546 `summ2_dc` varchar(50) NOT NULL default '0',547 `summ2c` varchar(50) NOT NULL default '0',548 `summ2cr` varchar(50) NOT NULL default '0',549 `profit` varchar(50) NOT NULL default '0',550 `user_id` bigint(20) NOT NULL default '0',551 `user_sk` varchar(10) NOT NULL default '0',552 `user_sksumm` varchar(50) NOT NULL default '0',553 `user_ip` varchar(150) NOT NULL,554 `first_name` varchar(150) NOT NULL,555 `last_name` varchar(150) NOT NULL,556 `second_name` varchar(150) NOT NULL,557 `user_phone` varchar(150) NOT NULL,558 `user_skype` varchar(150) NOT NULL,559 `user_email` varchar(150) NOT NULL,560 `user_passport` varchar(250) NOT NULL,561 `metas` longtext NOT NULL,562 `dmetas` longtext NOT NULL,563 `unmetas` longtext NOT NULL,564 `account1` varchar(250) NOT NULL,565 `account2` varchar(250) NOT NULL, 566 `naschet` varchar(250) NOT NULL,567 `soschet` varchar(250) NOT NULL,568 `trans_in` varchar(250) NOT NULL default '0',569 `trans_out` varchar(250) NOT NULL default '0', 570 `status` varchar(35) NOT NULL,571 `hashed` varchar(35) NOT NULL,572 `user_hash` varchar(150) NOT NULL,573 `bid_locale` varchar(10) NOT NULL,574 `m_in` varchar(150) NOT NULL default '0',575 `m_out` varchar(150) NOT NULL default '0',576 `check_purse1` varchar(20) NOT NULL default '0',577 `check_purse2` varchar(20) NOT NULL default '0',578 `exceed_pay` int(1) NOT NULL default '0',579 `hashdata` longtext NOT NULL,580 `touap_date` datetime NOT NULL,581 PRIMARY KEY ( `id` ) 582 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";583 $wpdb->query($sql); 584 585/*586меÑа587comment_user - комменÑаÑий Ð´Ð»Ñ ÑзеÑа588comment_admin - комменÑаÑий Ð´Ð»Ñ Ð°Ð´Ð¼Ð¸Ð½Ð°589device - 0-веб, 1-мобилÑÐ½Ð°Ñ Ð²ÐµÑÑиÑ590new - новиÑок или неÑ591pay_sum - ÑÑмма оплаÑÑ592pay_ac - аккаÑÐ½Ñ Ñ ÐºÐ¾ÑоÑого оплаÑили593*/ 594 $table_name= $wpdb->prefix ."bids_meta";595 $sql = "CREATE TABLE IF NOT EXISTS $table_name(596 `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT ,597 `item_id` bigint(20) NOT NULL default '0',598 `meta_key` longtext NOT NULL,599 `meta_value` longtext NOT NULL,600 PRIMARY KEY ( `id` ) 601 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;";602 $wpdb->query($sql); 603 do_action('pn_bd_activated'); ...
RedBeanModelToTableSchemaAdapterTest.php
Source:RedBeanModelToTableSchemaAdapterTest.php
...23 * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive24 * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.25 *26 * The interactive user interfaces in original and modified versions27 * of this program must display Appropriate Legal Notices, as required under28 * Section 5 of the GNU Affero General Public License version 3.29 *30 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,31 * these Appropriate Legal Notices must retain the display of the Zurmo32 * logo and Zurmo copyright notice. If the display of the logo is not reasonably33 * feasible for technical reasons, the Appropriate Legal Notices must display the words34 * "Copyright Zurmo Inc. 2014. All rights reserved".35 ********************************************************************************/36 class RedBeanModelToTableSchemaAdapterTest extends BaseTest37 {38 protected static $messageLogger;39 public static function setUpBeforeClass()40 {41 parent::setUpBeforeClass();42 SecurityTestHelper::createSuperAdmin();43 $super = User::getByUsername('super');44 Yii::app()->user->userModel = $super;45 static::$messageLogger = new MessageLogger();46 }47 public function testResolveWithEmptyModelClassName()48 {49 $modelClassName = null;50 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);51 $this->assertFalse($schema);52 }53 /**54 * @depends testResolveWithEmptyModelClassName55 */56 public function testResolveWithInexistentModelClassName()57 {58 $modelClassName = 'ModelClass';59 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);60 $this->assertFalse($schema);61 }62 /**63 * @depends testResolveWithInexistentModelClassName64 */65 public function testResolveForModelClassWithNoOwnMetadataAndCannotHaveBean()66 {67 $modelClassName = 'MashableActivity';68 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);69 $this->assertFalse($schema);70 }71 /**72 * @depends testResolveForModelClassWithNoOwnMetadataAndCannotHaveBean73 */74 public function testResolveForModelClassWithNoOwnMetadataAndCanHaveBean()75 {76 $modelClassName = 'OwnedSecurableItem';77 $expectedSchema = array(78 'ownedsecurableitem' => array(79 'columns' => array(80 array(81 'name' => 'securableitem_id',82 'type' => 'INT(11)',83 'unsigned' => 'UNSIGNED',84 'notNull' => 'NULL', // Not Coding Standard85 'collation' => null,86 'default' => 'DEFAULT NULL', // Not Coding Standard87 ),88 array(89 'name' => 'owner__user_id',90 'type' => 'INT(11)',91 'unsigned' => 'UNSIGNED',92 'notNull' => 'NULL', // Not Coding Standard93 'collation' => null,94 'default' => 'DEFAULT NULL', // Not Coding Standard95 ),96 ),97 'indexes' => array(98 'owner__user_id' => array('columns' => array('owner__user_id'),99 'unique' => false),100 ),101 ),102 );103 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);104 $this->assertNotEmpty($schema);105 $this->assertEquals($expectedSchema, $schema);106 }107 /**108 * @depends testResolveForModelClassWithNoOwnMetadataAndCanHaveBean109 */110 public function testResolve()111 {112 $expectedSchema = array('_user' =>113 array('columns' =>114 array(115 array(116 'name' => 'hash',117 'type' => 'VARCHAR(60)',118 'unsigned' => null,119 'notNull' => 'NULL', // Not Coding Standard120 'collation' => 'COLLATE utf8_unicode_ci',121 'default' => 'DEFAULT NULL', // Not Coding Standard122 ),123 array(124 'name' => 'language',125 'type' => 'VARCHAR(10)',126 'unsigned' => null,127 'notNull' => 'NULL', // Not Coding Standard128 'collation' => 'COLLATE utf8_unicode_ci',129 'default' => 'DEFAULT NULL', // Not Coding Standard130 ),131 array(132 'name' => 'locale',133 'type' => 'VARCHAR(10)',134 'unsigned' => null,135 'notNull' => 'NULL', // Not Coding Standard136 'collation' => 'COLLATE utf8_unicode_ci',137 'default' => 'DEFAULT NULL', // Not Coding Standard138 ),139 array(140 'name' => 'timezone',141 'type' => 'VARCHAR(64)',142 'unsigned' => null,143 'notNull' => 'NULL', // Not Coding Standard144 'collation' => 'COLLATE utf8_unicode_ci',145 'default' => 'DEFAULT NULL', // Not Coding Standard146 ),147 array(148 'name' => 'username',149 'type' => 'VARCHAR(64)',150 'unsigned' => null,151 'notNull' => 'NULL', // Not Coding Standard152 'collation' => 'COLLATE utf8_unicode_ci',153 'default' => 'DEFAULT NULL', // Not Coding Standard154 ),155 array(156 'name' => 'serializedavatardata',157 'type' => 'TEXT',158 'unsigned' => null,159 'notNull' => 'NULL', // Not Coding Standard160 'collation' => 'COLLATE utf8_unicode_ci',161 'default' => 'DEFAULT NULL', // Not Coding Standard162 ),163 array(164 'name' => 'isactive',165 'type' => 'TINYINT(1) UNSIGNED',166 'unsigned' => null,167 'notNull' => 'NULL', // Not Coding Standard168 'collation' => null,169 'default' => 'DEFAULT NULL', // Not Coding Standard170 ),171 array(172 'name' => 'isrootuser',173 'type' => 'TINYINT(1) UNSIGNED',174 'unsigned' => null,175 'notNull' => 'NULL', // Not Coding Standard176 'collation' => null,177 'default' => 'DEFAULT NULL', // Not Coding Standard178 ),179 array(180 'name' => 'hidefromselecting',181 'type' => 'TINYINT(1) UNSIGNED',182 'unsigned' => null,183 'notNull' => 'NULL', // Not Coding Standard184 'collation' => null,185 'default' => 'DEFAULT NULL', // Not Coding Standard186 ),187 array(188 'name' => 'issystemuser',189 'type' => 'TINYINT(1) UNSIGNED',190 'unsigned' => null,191 'notNull' => 'NULL', // Not Coding Standard192 'collation' => null,193 'default' => 'DEFAULT NULL', // Not Coding Standard194 ),195 array(196 'name' => 'hidefromleaderboard',197 'type' => 'TINYINT(1) UNSIGNED',198 'unsigned' => null,199 'notNull' => 'NULL', // Not Coding Standard200 'collation' => null,201 'default' => 'DEFAULT NULL', // Not Coding Standard202 ),203 array(204 'name' => 'lastlogindatetime',205 'type' => 'DATETIME',206 'unsigned' => null,207 'notNull' => 'NULL', // Not Coding Standard208 'collation' => null,209 'default' => 'DEFAULT NULL', // Not Coding Standard210 ),211 array(212 'name' => 'permitable_id',213 'type' => 'INT(11)',214 'unsigned' => 'UNSIGNED',215 'notNull' => 'NULL', // Not Coding Standard216 'collation' => null,217 'default' => 'DEFAULT NULL', // Not Coding Standard218 ),219 array(220 'name' => 'person_id',221 'type' => 'INT(11)',222 'unsigned' => 'UNSIGNED',223 'notNull' => 'NULL', // Not Coding Standard224 'collation' => null,225 'default' => 'DEFAULT NULL', // Not Coding Standard226 ),227 array(228 'name' => 'currency_id',229 'type' => 'INT(11)',230 'unsigned' => 'UNSIGNED',231 'notNull' => 'NULL', // Not Coding Standard232 'collation' => null,233 'default' => 'DEFAULT NULL', // Not Coding Standard234 ),235 array(236 'name' => 'manager__user_id',237 'type' => 'INT(11)',238 'unsigned' => 'UNSIGNED',239 'notNull' => 'NULL', // Not Coding Standard240 'collation' => null,241 'default' => 'DEFAULT NULL', // Not Coding Standard242 ),243 array(244 'name' => 'role_id',245 'type' => 'INT(11)',246 'unsigned' => 'UNSIGNED',247 'notNull' => 'NULL', // Not Coding Standard248 'collation' => null,249 'default' => 'DEFAULT NULL', // Not Coding Standard250 ),251 ),252 'indexes' => array(253 'unique_emanresu' => array(254 'columns' => array('username'),255 'unique' => true,256 ),257 'permitable_id' => array('columns' => array('permitable_id'),258 'unique' => false),259 ),260 ),261 );262 $modelClassName = 'User';263 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);264 $this->assertNotEmpty($schema);265 $this->assertEquals($expectedSchema, $schema);266 }267 /**268 * @depends testResolve269 */270 public function testResolveForTestModel()271 {272 $expectedSchema = array('emailtemplatemodeltestitem' => array(273 'columns' => array(274 array(275 'name' => 'firstname',276 'type' => 'VARCHAR(32)',277 'unsigned' => null,278 'notNull' => 'NULL', // Not Coding Standard279 'collation' => 'COLLATE utf8_unicode_ci',280 'default' => 'DEFAULT NULL', // Not Coding Standard281 ),282 array(283 'name' => 'lastname',284 'type' => 'VARCHAR(32)',285 'unsigned' => null,286 'notNull' => 'NULL', // Not Coding Standard287 'collation' => 'COLLATE utf8_unicode_ci',288 'default' => 'DEFAULT NULL', // Not Coding Standard289 ),290 array(291 'name' => 'boolean',292 'type' => 'TINYINT(1) UNSIGNED',293 'unsigned' => null,294 'notNull' => 'NULL', // Not Coding Standard295 'collation' => null,296 'default' => 'DEFAULT NULL', // Not Coding Standard297 ),298 array(299 'name' => 'boolean2',300 'type' => 'TINYINT(1) UNSIGNED',301 'unsigned' => null,302 'notNull' => 'NULL', // Not Coding Standard303 'collation' => null,304 'default' => 'DEFAULT NULL', // Not Coding Standard305 ),306 array(307 'name' => 'date',308 'type' => 'DATE',309 'unsigned' => null,310 'notNull' => 'NULL', // Not Coding Standard311 'collation' => null,312 'default' => 'DEFAULT NULL', // Not Coding Standard313 ),314 array(315 'name' => 'date2',316 'type' => 'DATE',317 'unsigned' => null,318 'notNull' => 'NULL', // Not Coding Standard319 'collation' => null,320 'default' => 'DEFAULT NULL', // Not Coding Standard321 ),322 array(323 'name' => 'date3',324 'type' => 'DATE',325 'unsigned' => null,326 'notNull' => 'NULL', // Not Coding Standard327 'collation' => null,328 'default' => 'DEFAULT NULL', // Not Coding Standard329 ),330 array(331 'name' => 'date4',332 'type' => 'DATE',333 'unsigned' => null,334 'notNull' => 'NULL', // Not Coding Standard335 'collation' => null,336 'default' => 'DEFAULT NULL', // Not Coding Standard337 ),338 array(339 'name' => 'datetime',340 'type' => 'DATETIME',341 'unsigned' => null,342 'notNull' => 'NULL', // Not Coding Standard343 'collation' => null,344 'default' => 'DEFAULT NULL', // Not Coding Standard345 ),346 array(347 'name' => 'datetime2',348 'type' => 'DATETIME',349 'unsigned' => null,350 'notNull' => 'NULL', // Not Coding Standard351 'collation' => null,352 'default' => 'DEFAULT NULL', // Not Coding Standard353 ),354 array(355 'name' => 'datetime3',356 'type' => 'DATETIME',357 'unsigned' => null,358 'notNull' => 'NULL', // Not Coding Standard359 'collation' => null,360 'default' => 'DEFAULT NULL', // Not Coding Standard361 ),362 array(363 'name' => 'datetime4',364 'type' => 'DATETIME',365 'unsigned' => null,366 'notNull' => 'NULL', // Not Coding Standard367 'collation' => null,368 'default' => 'DEFAULT NULL', // Not Coding Standard369 ),370 array(371 'name' => 'float',372 'type' => 'DOUBLE',373 'unsigned' => null,374 'notNull' => 'NULL', // Not Coding Standard375 'collation' => null,376 'default' => 'DEFAULT NULL', // Not Coding Standard377 ),378 array(379 'name' => 'integer',380 'type' => 'INT(11)',381 'unsigned' => null,382 'notNull' => 'NULL', // Not Coding Standard383 'collation' => null,384 'default' => 'DEFAULT NULL', // Not Coding Standard385 ),386 array(387 'name' => 'phone',388 'type' => 'VARCHAR(14)',389 'unsigned' => null,390 'notNull' => 'NULL', // Not Coding Standard391 'collation' => 'COLLATE utf8_unicode_ci',392 'default' => 'DEFAULT NULL', // Not Coding Standard393 ),394 array(395 'name' => 'string',396 'type' => 'VARCHAR(64)',397 'unsigned' => null,398 'notNull' => 'NULL', // Not Coding Standard399 'collation' => 'COLLATE utf8_unicode_ci',400 'default' => 'DEFAULT NULL', // Not Coding Standard401 ),402 array(403 'name' => 'textarea',404 'type' => 'TEXT',405 'unsigned' => null,406 'notNull' => 'NULL', // Not Coding Standard407 'collation' => 'COLLATE utf8_unicode_ci',408 'default' => 'DEFAULT NULL', // Not Coding Standard409 ),410 array(411 'name' => 'url',412 'type' => 'VARCHAR(255)',413 'unsigned' => null,414 'notNull' => 'NULL', // Not Coding Standard415 'collation' => 'COLLATE utf8_unicode_ci',416 'default' => 'DEFAULT NULL', // Not Coding Standard417 ),418 array(419 'name' => 'ownedsecurableitem_id',420 'type' => 'INT(11)',421 'unsigned' => 'UNSIGNED',422 'notNull' => 'NULL', // Not Coding Standard423 'collation' => null,424 'default' => 'DEFAULT NULL', // Not Coding Standard425 ),426 array(427 'name' => 'currencyvalue_id',428 'type' => 'INT(11)',429 'unsigned' => 'UNSIGNED',430 'notNull' => 'NULL', // Not Coding Standard431 'collation' => null,432 'default' => 'DEFAULT NULL', // Not Coding Standard433 ),434 array(435 'name' => 'dropdown_customfield_id',436 'type' => 'INT(11)',437 'unsigned' => 'UNSIGNED',438 'notNull' => 'NULL', // Not Coding Standard439 'collation' => null,440 'default' => 'DEFAULT NULL', // Not Coding Standard441 ),442 array(443 'name' => 'dropdown2_customfield_id',444 'type' => 'INT(11)',445 'unsigned' => 'UNSIGNED',446 'notNull' => 'NULL', // Not Coding Standard447 'collation' => null,448 'default' => 'DEFAULT NULL', // Not Coding Standard449 ),450 array(451 'name' => 'radiodropdown_customfield_id',452 'type' => 'INT(11)',453 'unsigned' => 'UNSIGNED',454 'notNull' => 'NULL', // Not Coding Standard455 'collation' => null,456 'default' => 'DEFAULT NULL', // Not Coding Standard457 ),458 array(459 'name' => 'multidropdown_multiplevaluescustomfield_id',460 'type' => 'INT(11)',461 'unsigned' => 'UNSIGNED',462 'notNull' => 'NULL', // Not Coding Standard463 'collation' => null,464 'default' => 'DEFAULT NULL', // Not Coding Standard465 ),466 array(467 'name' => 'tagcloud_multiplevaluescustomfield_id',468 'type' => 'INT(11)',469 'unsigned' => 'UNSIGNED',470 'notNull' => 'NULL', // Not Coding Standard471 'collation' => null,472 'default' => 'DEFAULT NULL', // Not Coding Standard473 ),474 array(475 'name' => 'primaryemail_email_id',476 'type' => 'INT(11)',477 'unsigned' => 'UNSIGNED',478 'notNull' => 'NULL', // Not Coding Standard479 'collation' => null,480 'default' => 'DEFAULT NULL', // Not Coding Standard481 ),482 array(483 'name' => 'primaryaddress_address_id',484 'type' => 'INT(11)',485 'unsigned' => 'UNSIGNED',486 'notNull' => 'NULL', // Not Coding Standard487 'collation' => null,488 'default' => 'DEFAULT NULL', // Not Coding Standard489 ),490 array(491 'name' => 'secondaryemail_email_id',492 'type' => 'INT(11)',493 'unsigned' => 'UNSIGNED',494 'notNull' => 'NULL', // Not Coding Standard495 'collation' => null,496 'default' => 'DEFAULT NULL', // Not Coding Standard497 ),498 array(499 'name' => 'likecontactstate_contactstate_id',500 'type' => 'INT(11)',501 'unsigned' => 'UNSIGNED',502 'notNull' => 'NULL', // Not Coding Standard503 'collation' => null,504 'default' => 'DEFAULT NULL', // Not Coding Standard505 ),506 array(507 'name' => '_user_id',508 'type' => 'INT(11)',509 'unsigned' => 'UNSIGNED',510 'notNull' => 'NULL', // Not Coding Standard511 'collation' => null,512 'default' => 'DEFAULT NULL', // Not Coding Standard513 ),514 array(515 'name' => 'user2__user_id',516 'type' => 'INT(11)',517 'unsigned' => 'UNSIGNED',518 'notNull' => 'NULL', // Not Coding Standard519 'collation' => null,520 'default' => 'DEFAULT NULL', // Not Coding Standard521 ),522 ),523 'indexes' => array(),524 ),525 );526 $modelClassName = 'EmailTemplateModelTestItem';527 $schema = RedBeanModelToTableSchemaAdapter::resolve($modelClassName, static::$messageLogger);528 $this->assertNotEmpty($schema);529 $this->assertEquals($expectedSchema, $schema);530 }531 }532?>...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Trigger Selenium automation tests on a cloud-based Grid of 3000+ real browsers and operating systems.
Test now for FreeGet 100 minutes of automation test minutes FREE!!