Вход Регистрация
Файл: symfony-2.7/src/Symfony/Component/PropertyAccess/Tests/StringUtilTest.php
Строк: 144
<?php

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <fabien@symfony.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace SymfonyComponentPropertyAccessTests;

use 
SymfonyComponentPropertyAccessStringUtil;

class 
StringUtilTest extends PHPUnit_Framework_TestCase
{
    public function 
singularifyProvider()
    {
        
// see http://english-zone.com/spelling/plurals.html
        // see http://www.scribd.com/doc/3271143/List-of-100-Irregular-Plural-Nouns-in-English
        
return array(
            array(
'accesses''access'),
            array(
'addresses''address'),
            array(
'agendas''agenda'),
            array(
'alumnae''alumna'),
            array(
'alumni''alumnus'),
            array(
'analyses', array('analys''analyse''analysis')),
            array(
'antennae''antenna'),
            array(
'antennas''antenna'),
            array(
'appendices', array('appendex''appendix''appendice')),
            array(
'arches', array('arch''arche')),
            array(
'atlases', array('atlas''atlase''atlasis')),
            array(
'axes', array('ax''axe''axis')),
            array(
'babies''baby'),
            array(
'bacteria', array('bacterion''bacterium')),
            array(
'bases', array('bas''base''basis')),
            array(
'batches', array('batch''batche')),
            array(
'beaux''beau'),
            array(
'bees', array('be''bee')),
            array(
'boxes''box'),
            array(
'boys''boy'),
            array(
'bureaus''bureau'),
            array(
'bureaux''bureau'),
            array(
'buses', array('bus''buse''busis')),
            array(
'bushes', array('bush''bushe')),
            array(
'calves', array('calf''calve''calff')),
            array(
'cars''car'),
            array(
'cassettes', array('cassett''cassette')),
            array(
'caves', array('caf''cave''caff')),
            array(
'chateaux''chateau'),
            array(
'cheeses', array('chees''cheese''cheesis')),
            array(
'children''child'),
            array(
'circuses', array('circus''circuse''circusis')),
            array(
'cliffs''cliff'),
            array(
'crises', array('cris''crise''crisis')),
            array(
'criteria', array('criterion''criterium')),
            array(
'cups''cup'),
            array(
'data', array('daton''datum')),
            array(
'days''day'),
            array(
'discos''disco'),
            array(
'drives''drive'),
            array(
'drivers''driver'),
            array(
'dwarves', array('dwarf''dwarve''dwarff')),
            array(
'echoes', array('echo''echoe')),
            array(
'elves', array('elf''elve''elff')),
            array(
'emphases', array('emphas''emphase''emphasis')),
            array(
'faxes''fax'),
            array(
'feet''foot'),
            array(
'foci''focus'),
            array(
'focuses', array('focus''focuse''focusis')),
            array(
'formulae''formula'),
            array(
'formulas''formula'),
            array(
'fungi''fungus'),
            array(
'funguses', array('fungus''funguse''fungusis')),
            array(
'garages', array('garag''garage')),
            array(
'geese''goose'),
            array(
'halves', array('half''halve''halff')),
            array(
'hats''hat'),
            array(
'heroes', array('hero''heroe')),
            array(
'hippopotamuses', array('hippopotamus''hippopotamuse''hippopotamusis')), //hippopotami
            
array('hoaxes''hoax'),
            array(
'hooves', array('hoof''hoove''hooff')),
            array(
'houses', array('hous''house''housis')),
            array(
'indexes''index'),
            array(
'indices', array('index''indix''indice')),
            array(
'ions''ion'),
            array(
'irises', array('iris''irise''irisis')),
            array(
'kisses''kiss'),
            array(
'knives''knife'),
            array(
'lamps''lamp'),
            array(
'leaves', array('leaf''leave''leaff')),
            array(
'lice''louse'),
            array(
'lives''life'),
            array(
'matrices', array('matrex''matrix''matrice')),
            array(
'matrixes''matrix'),
            array(
'men''man'),
            array(
'mice''mouse'),
            array(
'moves''move'),
            array(
'nebulae''nebula'),
            array(
'neuroses', array('neuros''neurose''neurosis')),
            array(
'oases', array('oas''oase''oasis')),
            array(
'objectives''objective'),
            array(
'oxen''ox'),
            array(
'parties''party'),
            array(
'phenomena', array('phenomenon''phenomenum')),
            array(
'photos''photo'),
            array(
'pianos''piano'),
            array(
'plateaux''plateau'),
            array(
'poppies''poppy'),
            array(
'prices', array('prex''prix''price')),
            array(
'quizzes''quiz'),
            array(
'radii''radius'),
            array(
'roofs''roof'),
            array(
'roses', array('ros''rose''rosis')),
            array(
'sandwiches', array('sandwich''sandwiche')),
            array(
'scarves', array('scarf''scarve''scarff')),
            array(
'schemas''schema'), //schemata
            
array('sheriffs''sheriff'),
            array(
'shoes', array('sho''shoe')),
            array(
'spies''spy'),
            array(
'staves', array('staf''stave''staff')),
            array(
'stories''story'),
            array(
'strata', array('straton''stratum')),
            array(
'suitcases', array('suitcas''suitcase''suitcasis')),
            array(
'syllabi''syllabus'),
            array(
'tags''tag'),
            array(
'teeth''tooth'),
            array(
'theses', array('thes''these''thesis')),
            array(
'thieves', array('thief''thieve''thieff')),
            array(
'trees', array('tre''tree')),
            array(
'waltzes', array('waltz''waltze')),
            array(
'wives''wife'),

            
// test casing: if the first letter was uppercase, it should remain so
            
array('Men''Man'),
            array(
'GrandChildren''GrandChild'),
            array(
'SubTrees', array('SubTre''SubTree')),

            
// Known issues
            //array('insignia', 'insigne'),
            //array('insignias', 'insigne'),
            //array('rattles', 'rattle'),
        
);
    }

    
/**
     * @dataProvider singularifyProvider
     */
    
public function testSingularify($plural$singular)
    {
        
$single StringUtil::singularify($plural);
        if (
is_string($singular) && is_array($single)) {
            
$this->fail("--- Expectedn`string`: ".$singular."n+++ Actualn`array`: ".implode(', '$single));
        } elseif (
is_array($singular) && is_string($single)) {
            
$this->fail("--- Expectedn`array`: ".implode(', '$singular)."n+++ Actualn`string`: ".$single);
        }

        
$this->assertEquals($singular$single);
    }
}
Онлайн: 2
Реклама