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); } } }
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; } }
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"); } } }
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); }
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); } } } }
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);
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); }
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); }