/** * Validates the given value * * @param mixed $value The value to validate * @return String|NULL Any errors encountered */ protected function process($value) { if (is_bool($value) || is_int($value) || is_float($value) || is_null($value)) { $value = (string) $value; } if (!is_string($value)) { return "Must be a string"; } if (strlen($value) > $this->length) { return "Must not be longer than " . $this->length . " " . \r8\Words::pluralize("character", $this->length); } }
public function testPluralize() { $this->assertEquals("tests", \r8\Words::pluralize("test")); $this->assertEquals("tries", \r8\Words::pluralize("try")); $this->assertEquals("quizes", \r8\Words::pluralize("quiz")); $this->assertEquals("apexes", \r8\Words::pluralize("apex")); $this->assertEquals("houses", \r8\Words::pluralize("house")); $this->assertEquals("mice", \r8\Words::pluralize("mouse")); $this->assertEquals("lice", \r8\Words::pluralize("louse")); $this->assertEquals("indices", \r8\Words::pluralize("index")); $this->assertEquals("matrices", \r8\Words::pluralize("matrix")); $this->assertEquals("vertices", \r8\Words::pluralize("vertex")); $this->assertEquals("boxes", \r8\Words::pluralize("box")); $this->assertEquals("fetches", \r8\Words::pluralize("fetch")); $this->assertEquals("passes", \r8\Words::pluralize("pass")); $this->assertEquals("pushes", \r8\Words::pluralize("push")); $this->assertEquals("pays", \r8\Words::pluralize("pay")); $this->assertEquals("abbeys", \r8\Words::pluralize("abbey")); $this->assertEquals("toys", \r8\Words::pluralize("toy")); $this->assertEquals("buys", \r8\Words::pluralize("buy")); $this->assertEquals("soliloquies", \r8\Words::pluralize("soliloquy")); $this->assertEquals("hives", \r8\Words::pluralize("hive")); $this->assertEquals("scarves", \r8\Words::pluralize("scarf")); $this->assertEquals("calves", \r8\Words::pluralize("calf")); $this->assertEquals("carafes", \r8\Words::pluralize("carafe")); $this->assertEquals("coiffes", \r8\Words::pluralize("coiffe")); $this->assertEquals("synapses", \r8\Words::pluralize("synapsis")); $this->assertEquals("atria", \r8\Words::pluralize("atrium")); $this->assertEquals("buffaloes", \r8\Words::pluralize("buffalo")); $this->assertEquals("tomatoes", \r8\Words::pluralize("tomato")); $this->assertEquals("buses", \r8\Words::pluralize("bus")); $this->assertEquals("statuses", \r8\Words::pluralize("status")); $this->assertEquals("aliases", \r8\Words::pluralize("alias")); $this->assertEquals("viri", \r8\Words::pluralize("virus")); $this->assertEquals("octopi", \r8\Words::pluralize("octopus")); $this->assertEquals("axes", \r8\Words::pluralize("axis")); $this->assertEquals("testes", \r8\Words::pluralize("testis")); $this->assertEquals("puffs", \r8\Words::pluralize("puff")); $this->assertEquals("oxen", \r8\Words::pluralize("ox")); $this->assertEquals("staves", \r8\Words::pluralize("staff")); $this->assertEquals("people", \r8\Words::pluralize("person")); $this->assertEquals("men", \r8\Words::pluralize("man")); $this->assertEquals("children", \r8\Words::pluralize("child")); $this->assertEquals("sexes", \r8\Words::pluralize("sex")); $this->assertEquals("moves", \r8\Words::pluralize("move")); $this->assertEquals("deer", \r8\Words::pluralize("deer")); $this->assertEquals("moose", \r8\Words::pluralize("moose")); $this->assertEquals("sheep", \r8\Words::pluralize("sheep")); // Test when there is padding $this->assertEquals("tries", \r8\Words::pluralize(" try ")); // Test the case $this->assertEquals("TESTS", \r8\Words::pluralize("TEST")); // Test when there is only one $this->assertEquals("test", \r8\Words::pluralize("test", 1)); // Test when there are multiple $this->assertEquals("tests", \r8\Words::pluralize("test", 5)); // Test a blank string $this->assertEquals("", \r8\Words::pluralize(" ")); // Test the capitalization rules for irregular plurals $this->assertEquals("PEOPLE", \r8\Words::pluralize("PERSON")); $this->assertEquals("Staves", \r8\Words::pluralize("Staff")); $this->assertEquals("staves", \r8\Words::pluralize("sTAFF")); }