protected function tryMatch($code, $mws, $gtLanguages, $clLanguages) { if ($mws !== '') { $mwExp = true; $lang = Language::factory($code); } else { $mwExp = false; } if (isset($gtLanguages[$code])) { $gtExp = 'return (int) ' . str_replace('n', '$i', $gtLanguages[$code]) . ';'; } else { $gtExp = false; } if (isset($clLanguages[$code])) { $cldrExp = $clLanguages[$code]; } else { $cldrExp = false; } for ($i = 0; $i <= 250; $i++) { $mw = $gt = $cl = '?'; if ($mwExp) { $exp = $lang->getCompiledPluralRules(); $mw = CLDRPluralRuleEvaluator::evaluateCompiled($i, $exp); } if ($gtExp) { $gt = eval($gtExp); } if ($cldrExp) { $cl = CLDRPluralRuleEvaluator::evaluate($i, $cldrExp); } if (self::comp($mw, $gt) && self::comp($gt, $cl) && self::comp($cl, $mw)) { continue; } return "{$i}: {$mw} {$gt} {$cl}"; } return ''; }
/** * @dataProvider invalidTestCases * @expectedException CLDRPluralRuleError */ function testInvalidRules($rules, $comment) { CLDRPluralRuleEvaluator::evaluate(1, (array) $rules); }