예제 #1
0
 public static function noPunctuationAtEnd($bible, $book, $chapter, $headings, $centermarks, $endmarks)
 {
     if (!is_array($headings)) {
         return;
     }
     $database_check = Database_Check::getInstance();
     foreach ($headings as $verse => $heading) {
         // Full stops often occur in the inspired headings of many Psalms in verse 0.
         // Skip these.
         if ($book == 19 && $verse == 0) {
             continue;
         }
         $lastCharacter = substr($heading, -1, 1);
         $message = false;
         if (strpos($centermarks, $lastCharacter) !== false) {
             $message = true;
         }
         if (strpos($endmarks, $lastCharacter) !== false) {
             $message = true;
         }
         if ($message) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Punctuation at end of heading:" . " " . $heading);
         }
     }
 }
예제 #2
0
파일: check.php 프로젝트: alerque/bibledit
 public static function getInstance()
 {
     if (empty(self::$instance)) {
         self::$instance = new Database_Check();
     }
     return self::$instance;
 }
예제 #3
0
 public static function verses($bible, $book, $chapter, $verses)
 {
     // Get verses in this chapter according to the versification system for the Bible.
     $database_versifications = Database_Versifications::getInstance();
     $database_config_bible = Database_Config_Bible::getInstance();
     $versification = $database_config_bible->getVersificationSystem($bible);
     $standardVerses = $database_versifications->getVerses($versification, $book, $chapter);
     // Look for missing and extra verses.
     $absentVerses = array_diff($standardVerses, $verses);
     $extraVerses = array_diff($verses, $standardVerses);
     $database_check = Database_Check::getInstance();
     foreach ($absentVerses as $verse) {
         $database_check->recordOutput($bible, $book, $chapter, $verse, "This verse is missing according to the versification system");
     }
     foreach ($extraVerses as $verse) {
         //if (($chapter == 0) && ($verse == 0)) continue;
         $database_check->recordOutput($bible, $book, $chapter, $verse, "This verse is extra according to the versification system");
     }
     // Look for verses out of order.
     $previousVerse = 0;
     foreach ($verses as $key => $verse) {
         if ($key > 0) {
             if ($verse != $previousVerse + 1) {
                 $database_check->recordOutput($bible, $book, $chapter, $verse, "The verse is out of sequence");
             }
         }
         $previousVerse = $verse;
     }
 }
예제 #4
0
파일: space.php 프로젝트: alerque/bibledit
 public static function spaceBeforePunctuation($bible, $book, $chapter, $texts)
 {
     if (!is_array($texts)) {
         return;
     }
     $database_check = Database_Check::getInstance();
     foreach ($texts as $verse => $text) {
         if (strpos($text, " ,") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before a comma");
         }
         if (strpos($text, " ;") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before a semicolon");
         }
         if (strpos($text, " :") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before a colon");
         }
         if (strpos($text, " .") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before a full stop");
         }
         if (strpos($text, " ?") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before a question mark");
         }
         if (strpos($text, " !") !== false) {
             $database_check->recordOutput($bible, $book, $chapter, $verse, "Space before an exclamation mark");
         }
     }
 }
예제 #5
0
 public function testPattern3()
 {
     $verses = array(2 => "He said.", 3 => "He didn't say", 4 => "He said.");
     Checks_Verses::patterns(1, 1, 1, $verses, array("said"));
     $database_check = Database_Check::getInstance();
     $result = $database_check->getHits();
     $standard = array(array('rowid' => "1", 'bible' => "0", 'book' => "1", 'chapter' => "1", 'verse' => "2", 'data' => "Pattern found in text: said"), array('rowid' => "2", 'bible' => "0", 'book' => "1", 'chapter' => "1", 'verse' => "4", 'data' => "Pattern found in text: said"));
     $this->assertEquals($standard, $result);
 }
예제 #6
0
파일: verses.php 프로젝트: alerque/bibledit
 public static function patterns($bible, $book, $chapter, $verses, $patterns)
 {
     if (!is_array($verses)) {
         return;
     }
     if (!is_array($patterns)) {
         return;
     }
     $database_check = Database_Check::getInstance();
     foreach ($verses as $verse => $text) {
         foreach ($patterns as $pattern) {
             if (strpos($text, $pattern) !== false) {
                 $database_check->recordOutput($bible, $book, $chapter, $verse, "Pattern found in text:" . " " . $pattern);
             }
         }
     }
 }
예제 #7
0
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
require_once "../bootstrap/bootstrap.php";
// Security: The script runs from the cli SAPI only.
Filter_Cli::assert();
$database_logs = Database_Logs::getInstance();
$database_config_general = Database_Config_General::getInstance();
$database_config_user = Database_Config_User::getInstance();
$database_config_bible = Database_Config_Bible::getInstance();
$database_bibles = Database_Bibles::getInstance();
$database_check = Database_Check::getInstance();
$database_users = Database_Users::getInstance();
$database_mail = Database_Mail::getInstance();
$database_books = Database_Books::getInstance();
@($bible = Filter_Cli::argument(@$argv, 1));
if ($bible == "") {
    echo "No Bible given\n";
}
$database_logs->log("Check {$bible}: Start", Filter_Roles::TRANSLATOR_LEVEL);
$database_check->truncateOutput($bible);
$stylesheet = $database_config_bible->getExportStylesheet($bible);
$check_double_spaces_usfm = $database_config_bible->getCheckDoubleSpacesUsfm($bible);
$check_full_stop_in_headings = $database_config_bible->getCheckFullStopInHeadings($bible);
$check_space_before_punctuation = $database_config_bible->getCheckSpaceBeforePunctuation($bible);
$check_sentence_structure = $database_config_bible->getCheckSentenceStructure($bible);
$check_paragraph_structure = $database_config_bible->getCheckParagraphStructure($bible);
예제 #8
0
 public function testPassage()
 {
     $database_check = Database_Check::getInstance();
     $database_check->recordOutput("phpunit", 3, 4, 5, "test1");
     $database_check->recordOutput("phpunit", 6, 7, 8, "test2");
     $passage = $database_check->getPassage(2);
     $standard = array('book' => 6, 'chapter' => 7, 'verse' => 8);
     $this->assertEquals($standard, $passage);
 }
예제 #9
0
 public function testAvailableVersesTwo()
 {
     // Ruth 1.
     $book = 8;
     $chapter = 1;
     // Verses out of order.
     $verses = array(0, 2, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22);
     // Run check.
     Checks_Versification::verses("Bible", $book, $chapter, $verses);
     // Verify results.
     $database_check = Database_Check::getInstance();
     $results = $database_check->getHits();
     $standard = array(array('rowid' => "1", 'bible' => "0", 'book' => "8", 'chapter' => "1", 'verse' => "2", 'data' => "The verse is out of sequence"), array('rowid' => "2", 'bible' => "0", 'book' => "8", 'chapter' => "1", 'verse' => "1", 'data' => "The verse is out of sequence"), array('rowid' => "3", 'bible' => "0", 'book' => "8", 'chapter' => "1", 'verse' => "3", 'data' => "The verse is out of sequence"));
     $this->assertEquals($standard, $results);
 }