scripture-guide
Version:
A utility for biblical and scripture reference parsing that enables structured queries based on strings of traditional scripture references (e.g. John 3:16).
95 lines (80 loc) • 3.42 kB
JavaScript
const {lookup, generateReference, setLanguage, detectReferences}= require("./scriptures.js");
setLanguage("ko");
//korean tests
/*
utils No verses found {"reference":"2 Kings 17:18-20, 2 Chronicles 36:15-21, Jeremiah 39:1-10","lang":"ko","verse_ids":[]}
Nov 15 06:08:09 bookofmormon.online /usr/local/bin/node info: utils No verses found {"reference":"4 Nephi 1:6-9","lang":"ko","verse_ids":[]}
Nov 15 06:08:10 bookofmormon.online /usr/local/bin/node info: utils No verses found {"reference":"3 Ne. 8:8","lang":"ko","verse_ids":[]}
Nov 15 06:08:11 bookofmormon.online /usr/local/bin/node info: utils No verses found {"reference":"3 Ne. 9:4","lang":"ko","verse_ids":[]}
*/
const lookUpTests = [
"이더서 13:18",
"니전5.2",
"제.4.니파이.1",
"제3니파이 2장 8절",
"제3니파이 23장 7절",
"조셉 스미스—역사 1장 30절",
"힐라맨서 6:40",
"2 Kings 17:18-20, 2 Chronicles 36:15-21, Jeremiah 39:1-10",
"4 Nephi 1:6-9",
"3 Ne. 8:8",
"3 Ne. 9:4",
"이더서 1장 32~35절, 이더서 7장 26절, 이더서 9장 23절",
];
lookUpTests.forEach(t=>{
const result = lookup(t);
console.log({result});
});
process.exit();
setLanguage();
//english tests
const lookUpTests2 = [
"Moses 1:1",
"3 Nephi 9:3",
"Joseph Smith—History 1:20",
]
lookUpTests2.forEach(t=>{
const result = lookup(t);
console.log({result});
});
process.exit();
let testcases = [
["Simple reference", "출애굽기 1:1"],
["Simple chapter", "창세기 2"],
["Split chapters", "창세기 1,3"],
["Chapter range", "출애굽기 3-5"],
["Chapter range and split", "출애굽기 3-5,8"],
["Verse range", "출애굽기 20:1-10"],
["Verse range and split", "출애굽기 20:1-5,10"],
["Verse Split", "출애굽기 20:5,10"],
["Verse range spanning multiple chapters", "출애굽기 1:5-4:3"],
["Chapter range ending in partial chapter", "출애굽기 3-4:10"],
["Chapter range spanning multiple books", "창세기 30 - 출애굽기 2"],
["Chapter range spanning multiple books, ending in partial chapter", "창세기 30 - 출애굽기 2:5"],
["Chapter range spanning multiple books, starting in partial chapter", "창세기 30:10 - 출애굽기 2"],
["Chapter range spanning multiple books, starting and ending with partial chapters", "창세기 30:10 - 출애굽기 2:5"],
["Compound reference in same book","출애굽기 5:1;6:2;8:5"],
["Compound reference in different books","출애굽기 5:1; 레위기 6:2; 민수기 8:5"],
["Compound reference ranges in different books","출애굽기 5:1-3; 레위기 6:2-5; 민수기 8:5-6"],
["Entire Book Range","창세기 - 민수기"],
["Abbreviation detection","마2.5;막3;눅4;요5.2-6;1요일1.5,7-8;3요삼1.1"],
["Numbered Books","요삼1.1"],
];
testcases = [
["test1","니파이전서 5장 1-4"],
["test1","니파이전서 5:1-4"],
["test1","니파이전서 5장"],
["test1","니전5.1-2"]
];
for (let i in testcases)
{
console.log("\n===================\n\nTEST CASE #"+(parseInt(i)+1)+": "+testcases[i][0]);
console.log("Input: ");
console.log([testcases[i][1]]);
output = lookup(testcases[i][1]);
console.log("Output: ");
console.log(output);
ref = generateReference(output.verse_ids);
console.log("Reference generated from verse ids: ");
console.log([ref]);
}