/**
  * @param phpMorphy_Paradigm_ParadigmInterface[] $paradigmsCollection
  * @param phpMorphy_UserDict_Pattern $pattern
  * @param bool $isMatchOnlyLemmas
  * @return array(0 => phpMorphy_WordForm_WordFormAbstract[], 1 => int[])
  */
 function findSuitableFormsByPattern($paradigmsCollection, phpMorphy_UserDict_Pattern $pattern, $isMatchOnlyLemmas)
 {
     $result = array();
     $forms_idx = array();
     foreach ($paradigmsCollection as $paradigm) {
         if ($isMatchOnlyLemmas) {
             $lemma = $paradigm->getLemma();
             if ($pattern->matchWord($lemma)) {
                 $word_form = $paradigm->getWordForm(0);
                 $match_result = $pattern->match($word_form->getWord(), $word_form->getPartOfSpeech(), $word_form->getGrammems());
                 if ($match_result) {
                     $result[] = $word_form;
                     $forms_idx[] = 0;
                 }
             }
         } else {
             $form_no = 0;
             foreach ($paradigm as $word_form) {
                 $match_result = $pattern->match($word_form->getWord(), $word_form->getPartOfSpeech(), $word_form->getGrammems());
                 if ($match_result) {
                     $result[] = $word_form;
                     $forms_idx[] = $form_no;
                 }
                 $form_no++;
             }
         }
     }
     return array($result, $forms_idx);
 }
 /**
  * @todo Implement testMatch().
  */
 public function testMatch()
 {
     $this->assertTrue($this->object->match('test', 'pos', array('a', 'c', 'b')));
 }