示例#1
0
 /**
  * @test
  */
 public function calcDepthScoreWords()
 {
     $this->assertEquals(null, Section::calcDepthScore('1.Forms'));
     $this->assertEquals(null, Section::calcDepthScore('Forms'));
     $this->assertEquals(null, Section::calcDepthScore('Forms.Checkboxes'));
     $this->assertEquals(null, Section::calcDepthScore('Forms - Special Checkboxes'));
 }
示例#2
0
 /**
  * Returns an array of children for a specified section reference
  *
  * @param string $reference
  * @param int $levelsDown OPTIONAL
  *
  * @return array
  */
 public function getSectionChildren($reference, $levelsDown = null)
 {
     $reference = strtolower(Section::normalizeReference($reference));
     $this->sortSections();
     $sectionKeys = array_keys($this->sections);
     $sections = array();
     $maxDepth = null;
     if ($levelsDown !== null) {
         $maxDepth = Section::calcDepth($reference) + $levelsDown;
     }
     $reference = Section::trimReference($reference);
     $reference .= '.';
     foreach ($sectionKeys as $sectionKey) {
         $testSectionKey = strtolower(Section::normalizeReference($sectionKey));
         // Only get sections within that level. Do not get the level itself
         if (strpos($testSectionKey . '.', $reference) === 0 && $testSectionKey . '.' != $reference) {
             $section = $this->sections[$sectionKey];
             if ($maxDepth !== null && $section->getDepth() > $maxDepth) {
                 continue;
             }
             $sections[$sectionKey] = $section;
         }
     }
     return $sections;
 }