bible-reference-formatter
Version:
Utility that converts Bible references from OSIS to human-readable formats and Paratext.
1,675 lines (1,664 loc) • 66.3 kB
JavaScript
"use strict"
/* global require, describe, it, expect */
const osisToLang = require("../es6/en")
function loopTest(osises) {
for (const osisKey of Object.keys(osises)) {
const [osis, context] = osisKey.split("/")
for (const style of Object.keys(osises[osisKey])) {
expect(osisToLang(style, osis, context)).toEqual(osises[osisKey][style])
}
}
}
describe("Exceptions", function() {
it("should throw when given an invalid style", function() {
expect(() => osisToLang("INVALID STYLE", "Matt.1")).toThrow()
})
})
describe("Initialization", function() {
it("should initialize", function() {
loopTest({
"Matt.1.2": {
"esv-long": "Matthew 1:2",
"esv-short": "Matt. 1:2",
"niv-long": "Matthew 1:2",
"niv-short": "Matt 1:2",
"niv-shortest": "Mt 1:2",
"nlt-long": "Matthew 1:2",
"nlt-short": "Matt 1:2"
}
})
})
})
describe("Readme", function() {
it("should match examples", function() {
loopTest({
"Matt.1.2-Matt.1.3,Matt.1.4": {
"esv-long": "Matthew 1:2\u20133, 4",
"esv-short": "Matt. 1:2\u20133, 4",
"niv-long": "Matthew 1:2\u20133,4",
"niv-short": "Matt 1:2\u20133,4",
"niv-shortest": "Mt 1:2-3, 4",
"nlt-long": "Matthew 1:2\u20133, 4",
"nlt-short": "Matt 1:2\u20133, 4"
},
"Matt.1.2-Matt.1.3,Matt.1.4/Matt.1": {
"esv-long": "vv. 2\u20133, 4",
"esv-short": "vv. 2\u20133, 4",
"niv-long": "vv. 2\u20133,4",
"niv-short": "vv. 2\u20133,4",
"niv-shortest": "ver 2-3, 4",
"nlt-long": "vv 2\u20133, 4",
"nlt-short": "vv 2\u20133, 4"
},
"Matt.1.2-Matt.1.3,Matt.1.4/Matt": {
"esv-long": "1:2\u20133, 4",
"esv-short": "1:2\u20133, 4",
"niv-long": "1:2\u20133,4",
"niv-short": "1:2\u20133,4",
"niv-shortest": "1:2-3, 4",
"nlt-long": "1:2\u20133, 4",
"nlt-short": "1:2\u20133, 4"
}
})
})
})
describe("Book names", function() {
it("should match unusual book names", function() {
loopTest({
"Song": {
"esv-long": "Song of Solomon",
"esv-short": "Song",
"niv-long": "Song of Songs",
"niv-short": "Song",
"niv-shortest": "SS",
"nlt-long": "Song of Songs",
"nlt-short": "Song"
},
"Ps": {
"esv-long": "Psalms",
"esv-short": "Pss.",
"niv-long": "Psalms",
"niv-short": "Pss",
"niv-shortest": "Ps",
"nlt-long": "Psalms",
"nlt-short": "Pss"
},
"SgThree": {
"esv-long": "Song of the Three Jews",
"esv-short": "Song of the Three Jews",
"niv-long": "Song of the Three Holy Children",
"niv-short": "S of III Ch",
"niv-shortest": "STHC",
"nlt-long": "Song of the Three Jews",
"nlt-short": "Pr Azar"
}
})
})
})
describe("`b` ranges", function() {
it("should handle `b-same b`", function() {
loopTest({
"Gen-Gen": {
"esv-long": "Genesis\u2014Genesis",
"esv-short": "Gen.\u2014Gen.",
"niv-long": "Genesis\u2014Genesis",
"niv-short": "Gen\u2014Gen",
"niv-shortest": "Ge-Ge",
"nlt-long": "Genesis\u2014Genesis",
"nlt-short": "Gen\u2014Gen"
},
"Gen-Gen.1": {
"esv-long": "Genesis\u2014ch. 1",
"esv-short": "Gen.\u2014ch. 1",
"niv-long": "Genesis\u2014ch. 1",
"niv-short": "Gen\u2014ch. 1",
"niv-shortest": "Ge-Ge 1",
"nlt-long": "Genesis\u2014ch 1",
"nlt-short": "Gen\u2014ch 1"
},
"Gen-Gen.1.2": {
"esv-long": "Genesis\u2014ch. 1:2",
"esv-short": "Gen.\u2014ch. 1:2",
"niv-long": "Genesis\u2014ch. 1:2",
"niv-short": "Gen\u2014ch. 1:2",
"niv-shortest": "Ge-Ge 1:2",
"nlt-long": "Genesis\u2014ch 1:2",
"nlt-short": "Gen\u2014ch 1:2"
}
})
})
it("should handle `b-different b`", function() {
loopTest({
"Gen-Matt": {
"esv-long": "Genesis\u2014Matthew",
"esv-short": "Gen.\u2014Matt.",
"niv-long": "Genesis\u2014Matthew",
"niv-short": "Gen\u2014Matt",
"niv-shortest": "Ge-Mt",
"nlt-long": "Genesis\u2014Matthew",
"nlt-short": "Gen\u2014Matt"
},
"Gen-Matt.1": {
"esv-long": "Genesis\u2014Matthew 1",
"esv-short": "Gen.\u2014Matt. 1",
"niv-long": "Genesis\u2014Matthew 1",
"niv-short": "Gen\u2014Matt 1",
"niv-shortest": "Ge-Mt 1",
"nlt-long": "Genesis\u2014Matthew 1",
"nlt-short": "Gen\u2014Matt 1"
},
"Gen-Matt.1.2": {
"esv-long": "Genesis\u2014Matthew 1:2",
"esv-short": "Gen.\u2014Matt. 1:2",
"niv-long": "Genesis\u2014Matthew 1:2",
"niv-short": "Gen\u2014Matt 1:2",
"niv-shortest": "Ge-Mt 1:2",
"nlt-long": "Genesis\u2014Matthew 1:2",
"nlt-short": "Gen\u2014Matt 1:2"
}
})
})
it("should handle `b-different, single-chapter b`", function() {
loopTest({
"Gen-Phlm": {
"esv-long": "Genesis\u2014Philemon",
"esv-short": "Gen.\u2014Philem.",
"niv-long": "Genesis\u2014Philemon",
"niv-short": "Gen\u2014Phlm",
"niv-shortest": "Ge-Phm",
"nlt-long": "Genesis\u2014Philemon",
"nlt-short": "Gen\u2014Phlm"
},
"Gen-Phlm.1": {
"esv-long": "Genesis\u2014Philemon",
"esv-short": "Gen.\u2014Philem.",
"niv-long": "Genesis\u2014Philemon",
"niv-short": "Gen\u2014Phlm",
"niv-shortest": "Ge-Phm",
"nlt-long": "Genesis\u2014Philemon",
"nlt-short": "Gen\u2014Phlm"
},
"Gen-Phlm.1.2": {
"esv-long": "Genesis\u2014Philemon 2",
"esv-short": "Gen.\u2014Philem. 2",
"niv-long": "Genesis\u2014Philemon 2",
"niv-short": "Gen\u2014Phlm 2",
"niv-shortest": "Ge-Phm 2",
"nlt-long": "Genesis\u2014Philemon 2",
"nlt-short": "Gen\u2014Phlm 2"
}
})
})
it("should handle `b-Ps151`", function() {
loopTest({
"Gen-Ps151": {
"esv-long": "Genesis\u2014Psalm 151",
"esv-short": "Gen.\u2014Ps. 151",
"niv-long": "Genesis\u2014Psalm 151",
"niv-short": "Gen\u2014Ps 151",
"niv-shortest": "Ge-Ps 151",
"nlt-long": "Genesis\u2014Psalm 151",
"nlt-short": "Gen\u2014Ps 151"
},
"Gen-Ps151.1": {
"esv-long": "Genesis\u2014Psalm 151",
"esv-short": "Gen.\u2014Ps. 151",
"niv-long": "Genesis\u2014Psalm 151",
"niv-short": "Gen\u2014Ps 151",
"niv-shortest": "Ge-Ps 151",
"nlt-long": "Genesis\u2014Psalm 151",
"nlt-short": "Gen\u2014Ps 151"
},
"Gen-Ps151.1.2": {
"esv-long": "Genesis\u2014Psalm 151:2",
"esv-short": "Gen.\u2014Ps. 151:2",
"niv-long": "Genesis\u2014Psalm 151:2",
"niv-short": "Gen\u2014Ps 151:2",
"niv-shortest": "Ge-Ps 151:2",
"nlt-long": "Genesis\u2014Psalm 151:2",
"nlt-short": "Gen\u2014Ps 151:2"
}
})
})
it("should handle `Ps-Ps151`", function() {
loopTest({
"Ps-Ps151": {
"esv-long": "Psalms\u2014Psalm 151",
"esv-short": "Pss.\u2014Ps. 151",
"niv-long": "Psalms\u2014Psalm 151",
"niv-short": "Pss\u2014Ps 151",
"niv-shortest": "Ps-Ps 151",
"nlt-long": "Psalms\u2014Psalm 151",
"nlt-short": "Pss\u2014Ps 151"
},
"Ps-Ps151.1": {
"esv-long": "Psalms\u2014Psalm 151",
"esv-short": "Pss.\u2014Ps. 151",
"niv-long": "Psalms\u2014Psalm 151",
"niv-short": "Pss\u2014Ps 151",
"niv-shortest": "Ps-Ps 151",
"nlt-long": "Psalms\u2014Psalm 151",
"nlt-short": "Pss\u2014Ps 151"
},
"Ps-Ps151.1.2": {
"esv-long": "Psalms\u2014Psalm 151:2",
"esv-short": "Pss.\u2014Ps. 151:2",
"niv-long": "Psalms\u2014Psalm 151:2",
"niv-short": "Pss\u2014Ps 151:2",
"niv-shortest": "Ps-Ps 151:2",
"nlt-long": "Psalms\u2014Psalm 151:2",
"nlt-short": "Pss\u2014Ps 151:2"
}
})
})
it("should handle `single-chapter b-same b`", function() {
loopTest({
"Phlm-Phlm": {
"esv-long": "Philemon\u2014Philemon",
"esv-short": "Philem.\u2014Philem.",
"niv-long": "Philemon\u2014Philemon",
"niv-short": "Phlm\u2014Phlm",
"niv-shortest": "Phm-Phm",
"nlt-long": "Philemon\u2014Philemon",
"nlt-short": "Phlm\u2014Phlm"
},
"Phlm-Phlm.1": {
"esv-long": "Philemon\u2014Philemon",
"esv-short": "Philem.\u2014Philem.",
"niv-long": "Philemon\u2014Philemon",
"niv-short": "Phlm\u2014Phlm",
"niv-shortest": "Phm-Phm",
"nlt-long": "Philemon\u2014Philemon",
"nlt-short": "Phlm\u2014Phlm"
},
"Phlm-Phlm.1.2": {
"esv-long": "Philemon\u2014Philemon 2",
"esv-short": "Philem.\u2014Philem. 2",
"niv-long": "Philemon\u2014Philemon 2",
"niv-short": "Phlm\u2014Phlm 2",
"niv-shortest": "Phm-Phm 2",
"nlt-long": "Philemon\u2014Philemon 2",
"nlt-short": "Phlm\u2014Phlm 2"
}
})
})
it("should handle `single-chapter b-different b`", function() {
loopTest({
"Phlm-Rev": {
"esv-long": "Philemon\u2014Revelation",
"esv-short": "Philem.\u2014Rev.",
"niv-long": "Philemon\u2014Revelation",
"niv-short": "Phlm\u2014Rev",
"niv-shortest": "Phm-Rev",
"nlt-long": "Philemon\u2014Revelation",
"nlt-short": "Phlm\u2014Rev"
},
"Phlm-Rev.1": {
"esv-long": "Philemon\u2014Revelation 1",
"esv-short": "Philem.\u2014Rev. 1",
"niv-long": "Philemon\u2014Revelation 1",
"niv-short": "Phlm\u2014Rev 1",
"niv-shortest": "Phm-Rev 1",
"nlt-long": "Philemon\u2014Revelation 1",
"nlt-short": "Phlm\u2014Rev 1"
},
"Phlm-Rev.1.2": {
"esv-long": "Philemon\u2014Revelation 1:2",
"esv-short": "Philem.\u2014Rev. 1:2",
"niv-long": "Philemon\u2014Revelation 1:2",
"niv-short": "Phlm\u2014Rev 1:2",
"niv-shortest": "Phm-Rev 1:2",
"nlt-long": "Philemon\u2014Revelation 1:2",
"nlt-short": "Phlm\u2014Rev 1:2"
}
})
})
it("should handle `single-chapter b-different single-chapter b`", function() {
loopTest({
"Phlm-Jude": {
"esv-long": "Philemon\u2014Jude",
"esv-short": "Philem.\u2014Jude",
"niv-long": "Philemon\u2014Jude",
"niv-short": "Phlm\u2014Jude",
"niv-shortest": "Phm-Jude",
"nlt-long": "Philemon\u2014Jude",
"nlt-short": "Phlm\u2014Jude"
},
"Phlm-Jude.1": {
"esv-long": "Philemon\u2014Jude",
"esv-short": "Philem.\u2014Jude",
"niv-long": "Philemon\u2014Jude",
"niv-short": "Phlm\u2014Jude",
"niv-shortest": "Phm-Jude",
"nlt-long": "Philemon\u2014Jude",
"nlt-short": "Phlm\u2014Jude"
},
"Phlm-Jude.1.2": {
"esv-long": "Philemon\u2014Jude 2",
"esv-short": "Philem.\u2014Jude 2",
"niv-long": "Philemon\u2014Jude 2",
"niv-short": "Phlm\u2014Jude 2",
"niv-shortest": "Phm-Jude 2",
"nlt-long": "Philemon\u2014Jude 2",
"nlt-short": "Phlm\u2014Jude 2"
}
})
})
it("should handle special book ranges", function() {
loopTest({
"1Sam-2Sam": {
"esv-long": "1\u20142 Samuel",
"esv-short": "1\u20142 Sam.",
"niv-long": "1\u20142 Samuel",
"niv-short": "1\u20142 Sam",
"niv-shortest": "1-2Sa",
"nlt-long": "1\u20142 Samuel",
"nlt-short": "1\u20142 Sam"
},
"1Kgs-2Kgs": {
"esv-long": "1\u20142 Kings",
"esv-short": "1\u20142 Kings",
"niv-long": "1\u20142 Kings",
"niv-short": "1\u20142 Kgs",
"niv-shortest": "1-2Ki",
"nlt-long": "1\u20142 Kings",
"nlt-short": "1\u20142 Kgs"
},
"1Chr-2Chr": {
"esv-long": "1\u20142 Chronicles",
"esv-short": "1\u20142 Chron.",
"niv-long": "1\u20142 Chronicles",
"niv-short": "1\u20142 Chr",
"niv-shortest": "1-2Ch",
"nlt-long": "1\u20142 Chronicles",
"nlt-short": "1\u20142 Chr"
},
"1Cor-2Cor": {
"esv-long": "1\u20142 Corinthians",
"esv-short": "1\u20142 Cor.",
"niv-long": "1\u20142 Corinthians",
"niv-short": "1\u20142 Cor",
"niv-shortest": "1-2Co",
"nlt-long": "1\u20142 Corinthians",
"nlt-short": "1\u20142 Cor"
},
"1Thess-2Thess": {
"esv-long": "1\u20142 Thessalonians",
"esv-short": "1\u20142 Thess.",
"niv-long": "1\u20142 Thessalonians",
"niv-short": "1\u20142 Thess",
"niv-shortest": "1-2Th",
"nlt-long": "1\u20142 Thessalonians",
"nlt-short": "1\u20142 Thes"
},
"1Tim-2Tim": {
"esv-long": "1\u20142 Timothy",
"esv-short": "1\u20142 Tim.",
"niv-long": "1\u20142 Timothy",
"niv-short": "1\u20142 Tim",
"niv-shortest": "1-2Ti",
"nlt-long": "1\u20142 Timothy",
"nlt-short": "1\u20142 Tim"
},
"1Pet-2Pet": {
"esv-long": "1\u20142 Peter",
"esv-short": "1\u20142 Pet.",
"niv-long": "1\u20142 Peter",
"niv-short": "1\u20142 Pet",
"niv-shortest": "1-2Pe",
"nlt-long": "1\u20142 Peter",
"nlt-short": "1\u20142 Pet"
},
"1John-2John": {
"esv-long": "1\u20142 John",
"esv-short": "1\u20142 John",
"niv-long": "1\u20142 John",
"niv-short": "1\u20142 John",
"niv-shortest": "1-2Jn",
"nlt-long": "1\u20142 John",
"nlt-short": "1\u20142 Jn"
},
"1John-3John": {
"esv-long": "1\u20143 John",
"esv-short": "1\u20143 John",
"niv-long": "1\u20143 John",
"niv-short": "1\u20143 John",
"niv-shortest": "1-3Jn",
"nlt-long": "1\u20143 John",
"nlt-short": "1\u20143 Jn"
},
"2John-3John": {
"esv-long": "2\u20143 John",
"esv-short": "2\u20143 John",
"niv-long": "2\u20143 John",
"niv-short": "2\u20143 John",
"niv-shortest": "2-3Jn",
"nlt-long": "2\u20143 John",
"nlt-short": "2\u20143 Jn"
},
"1Macc-2Macc": {
"esv-long": "1\u20142 Maccabees",
"esv-short": "1\u20142 Macc.",
"niv-long": "1\u20142 Maccabees",
"niv-short": "1\u20142 Macc",
"niv-shortest": "1-2Mc",
"nlt-long": "1\u20142 Maccabees",
"nlt-short": "1\u20142 Macc"
},
"1Macc-3Macc": {
"esv-long": "1\u20143 Maccabees",
"esv-short": "1\u20143 Macc.",
"niv-long": "1\u20143 Maccabees",
"niv-short": "1\u20143 Macc",
"niv-shortest": "1-3Mc",
"nlt-long": "1\u20143 Maccabees",
"nlt-short": "1\u20143 Macc"
},
"1Macc-4Macc": {
"esv-long": "1\u20144 Maccabees",
"esv-short": "1\u20144 Macc.",
"niv-long": "1\u20144 Maccabees",
"niv-short": "1\u20144 Macc",
"niv-shortest": "1-4Mc",
"nlt-long": "1\u20144 Maccabees",
"nlt-short": "1\u20144 Macc"
},
"2Macc-3Macc": {
"esv-long": "2\u20143 Maccabees",
"esv-short": "2\u20143 Macc.",
"niv-long": "2\u20143 Maccabees",
"niv-short": "2\u20143 Macc",
"niv-shortest": "2-3Mc",
"nlt-long": "2\u20143 Maccabees",
"nlt-short": "2\u20143 Macc"
},
"2Macc-4Macc": {
"esv-long": "2\u20144 Maccabees",
"esv-short": "2\u20144 Macc.",
"niv-long": "2\u20144 Maccabees",
"niv-short": "2\u20144 Macc",
"niv-shortest": "2-4Mc",
"nlt-long": "2\u20144 Maccabees",
"nlt-short": "2\u20144 Macc"
},
"3Macc-4Macc": {
"esv-long": "3\u20144 Maccabees",
"esv-short": "3\u20144 Macc.",
"niv-long": "3\u20144 Maccabees",
"niv-short": "3\u20144 Macc",
"niv-shortest": "3-4Mc",
"nlt-long": "3\u20144 Maccabees",
"nlt-short": "3\u20144 Macc"
},
"1Esd-2Esd": {
"esv-long": "1\u20142 Esdras",
"esv-short": "1\u20142 Esd.",
"niv-long": "1\u20142 Esdras",
"niv-short": "1\u20142 Esd",
"niv-shortest": "1-2Es",
"nlt-long": "1\u20142 Esdras",
"nlt-short": "1\u20142 Esd"
}
})
})
})
describe("`bc` ranges", function() {
it("should handle `bc-same b`", function() {
loopTest({
"Gen.1-Gen": {
"esv-long": "Genesis 1\u2014Genesis",
"esv-short": "Gen. 1\u2014Gen.",
"niv-long": "Genesis 1\u2014Genesis",
"niv-short": "Gen 1\u2014Gen",
"niv-shortest": "Ge 1-Ge",
"nlt-long": "Genesis 1\u2014Genesis",
"nlt-short": "Gen 1\u2014Gen"
},
"Gen.1-Gen.2": {
"esv-long": "Genesis 1\u20142",
"esv-short": "Gen. 1\u20142",
"niv-long": "Genesis 1\u20142",
"niv-short": "Gen 1\u20142",
"niv-shortest": "Ge 1-2",
"nlt-long": "Genesis 1\u20142",
"nlt-short": "Gen 1\u20142"
},
"Gen.1-Gen.2.3": {
"esv-long": "Genesis 1\u20142:3",
"esv-short": "Gen. 1\u20142:3",
"niv-long": "Genesis 1\u20142:3",
"niv-short": "Gen 1\u20142:3",
"niv-shortest": "Ge 1-2:3",
"nlt-long": "Genesis 1\u20142:3",
"nlt-short": "Gen 1\u20142:3"
}
})
})
it("should handle `bc-same bc`", function() {
loopTest({
"Gen.1-Gen.1": {
"esv-long": "Genesis 1\u20141",
"esv-short": "Gen. 1\u20141",
"niv-long": "Genesis 1\u20141",
"niv-short": "Gen 1\u20141",
"niv-shortest": "Ge 1-1",
"nlt-long": "Genesis 1\u20141",
"nlt-short": "Gen 1\u20141"
},
"Gen.1-Gen.1.2": {
"esv-long": "Genesis 1\u20141:2",
"esv-short": "Gen. 1\u20141:2",
"niv-long": "Genesis 1\u20141:2",
"niv-short": "Gen 1\u20141:2",
"niv-shortest": "Ge 1-1:2",
"nlt-long": "Genesis 1\u20141:2",
"nlt-short": "Gen 1\u20141:2"
}
})
})
it("should handle `bc-different b`", function() {
loopTest({
"Gen.1-Matt": {
"esv-long": "Genesis 1\u2014Matthew",
"esv-short": "Gen. 1\u2014Matt.",
"niv-long": "Genesis 1\u2014Matthew",
"niv-short": "Gen 1\u2014Matt",
"niv-shortest": "Ge 1-Mt",
"nlt-long": "Genesis 1\u2014Matthew",
"nlt-short": "Gen 1\u2014Matt"
},
"Gen.1-Matt.2": {
"esv-long": "Genesis 1\u2014Matthew 2",
"esv-short": "Gen. 1\u2014Matt. 2",
"niv-long": "Genesis 1\u2014Matthew 2",
"niv-short": "Gen 1\u2014Matt 2",
"niv-shortest": "Ge 1-Mt 2",
"nlt-long": "Genesis 1\u2014Matthew 2",
"nlt-short": "Gen 1\u2014Matt 2"
},
"Gen.1-Matt.2.3": {
"esv-long": "Genesis 1\u2014Matthew 2:3",
"esv-short": "Gen. 1\u2014Matt. 2:3",
"niv-long": "Genesis 1\u2014Matthew 2:3",
"niv-short": "Gen 1\u2014Matt 2:3",
"niv-shortest": "Ge 1-Mt 2:3",
"nlt-long": "Genesis 1\u2014Matthew 2:3",
"nlt-short": "Gen 1\u2014Matt 2:3"
}
})
})
it("should handle `bc-different, single-chapter b`", function() {
loopTest({
"Gen.1-Phlm": {
"esv-long": "Genesis 1\u2014Philemon",
"esv-short": "Gen. 1\u2014Philem.",
"niv-long": "Genesis 1\u2014Philemon",
"niv-short": "Gen 1\u2014Phlm",
"niv-shortest": "Ge 1-Phm",
"nlt-long": "Genesis 1\u2014Philemon",
"nlt-short": "Gen 1\u2014Phlm"
},
"Gen.1-Phlm.1": {
"esv-long": "Genesis 1\u2014Philemon",
"esv-short": "Gen. 1\u2014Philem.",
"niv-long": "Genesis 1\u2014Philemon",
"niv-short": "Gen 1\u2014Phlm",
"niv-shortest": "Ge 1-Phm",
"nlt-long": "Genesis 1\u2014Philemon",
"nlt-short": "Gen 1\u2014Phlm"
},
"Gen.1-Phlm.1.2": {
"esv-long": "Genesis 1\u2014Philemon 2",
"esv-short": "Gen. 1\u2014Philem. 2",
"niv-long": "Genesis 1\u2014Philemon 2",
"niv-short": "Gen 1\u2014Phlm 2",
"niv-shortest": "Ge 1-Phm 2",
"nlt-long": "Genesis 1\u2014Philemon 2",
"nlt-short": "Gen 1\u2014Phlm 2"
}
})
})
it("should handle `bc-Ps151`", function() {
loopTest({
"Gen.1-Ps151": {
"esv-long": "Genesis 1\u2014Psalm 151",
"esv-short": "Gen. 1\u2014Ps. 151",
"niv-long": "Genesis 1\u2014Psalm 151",
"niv-short": "Gen 1\u2014Ps 151",
"niv-shortest": "Ge 1-Ps 151",
"nlt-long": "Genesis 1\u2014Psalm 151",
"nlt-short": "Gen 1\u2014Ps 151"
},
"Gen.1-Ps151.1": {
"esv-long": "Genesis 1\u2014Psalm 151",
"esv-short": "Gen. 1\u2014Ps. 151",
"niv-long": "Genesis 1\u2014Psalm 151",
"niv-short": "Gen 1\u2014Ps 151",
"niv-shortest": "Ge 1-Ps 151",
"nlt-long": "Genesis 1\u2014Psalm 151",
"nlt-short": "Gen 1\u2014Ps 151"
},
"Gen.1-Ps151.1.2": {
"esv-long": "Genesis 1\u2014Psalm 151:2",
"esv-short": "Gen. 1\u2014Ps. 151:2",
"niv-long": "Genesis 1\u2014Psalm 151:2",
"niv-short": "Gen 1\u2014Ps 151:2",
"niv-shortest": "Ge 1-Ps 151:2",
"nlt-long": "Genesis 1\u2014Psalm 151:2",
"nlt-short": "Gen 1\u2014Ps 151:2"
}
})
})
it("should handle `Ps.c-Ps151`", function() {
loopTest({
"Ps.1-Ps151": {
"esv-long": "Psalms 1\u2014151",
"esv-short": "Pss. 1\u2014151",
"niv-long": "Psalms 1\u2014151",
"niv-short": "Pss 1\u2014151",
"niv-shortest": "Ps 1-151",
"nlt-long": "Psalms 1\u2014151",
"nlt-short": "Pss 1\u2014151"
},
"Ps.1-Ps151.1": {
"esv-long": "Psalms 1\u2014151",
"esv-short": "Pss. 1\u2014151",
"niv-long": "Psalms 1\u2014151",
"niv-short": "Pss 1\u2014151",
"niv-shortest": "Ps 1-151",
"nlt-long": "Psalms 1\u2014151",
"nlt-short": "Pss 1\u2014151"
},
"Ps.1-Ps151.1.2": {
"esv-long": "Psalms 1\u2014151:2",
"esv-short": "Pss. 1\u2014151:2",
"niv-long": "Psalms 1\u2014151:2",
"niv-short": "Pss 1\u2014151:2",
"niv-shortest": "Ps 1-151:2",
"nlt-long": "Psalms 1\u2014151:2",
"nlt-short": "Pss 1\u2014151:2"
}
})
})
it("should handle single-chapter bc-same b`", function() {
loopTest({
"Phlm.1-Phlm": {
"esv-long": "Philemon\u2014Philemon",
"esv-short": "Philem.\u2014Philem.",
"niv-long": "Philemon\u2014Philemon",
"niv-short": "Phlm\u2014Phlm",
"niv-shortest": "Phm-Phm",
"nlt-long": "Philemon\u2014Philemon",
"nlt-short": "Phlm\u2014Phlm"
},
"Phlm.1-Phlm.1": {
"esv-long": "Philemon\u2014Philemon",
"esv-short": "Philem.\u2014Philem.",
"niv-long": "Philemon\u2014Philemon",
"niv-short": "Phlm\u2014Phlm",
"niv-shortest": "Phm-Phm",
"nlt-long": "Philemon\u2014Philemon",
"nlt-short": "Phlm\u2014Phlm"
},
"Phlm.1-Phlm.1.2": {
"esv-long": "Philemon\u2014Philemon 2",
"esv-short": "Philem.\u2014Philem. 2",
"niv-long": "Philemon\u2014Philemon 2",
"niv-short": "Phlm\u2014Phlm 2",
"niv-shortest": "Phm-Phm 2",
"nlt-long": "Philemon\u2014Philemon 2",
"nlt-short": "Phlm\u2014Phlm 2"
}
})
})
it("should handle `single-chapter bc-different b`", function() {
loopTest({
"Phlm.1-Rev": {
"esv-long": "Philemon\u2014Revelation",
"esv-short": "Philem.\u2014Rev.",
"niv-long": "Philemon\u2014Revelation",
"niv-short": "Phlm\u2014Rev",
"niv-shortest": "Phm-Rev",
"nlt-long": "Philemon\u2014Revelation",
"nlt-short": "Phlm\u2014Rev"
},
"Phlm.1-Rev.1": {
"esv-long": "Philemon\u2014Revelation 1",
"esv-short": "Philem.\u2014Rev. 1",
"niv-long": "Philemon\u2014Revelation 1",
"niv-short": "Phlm\u2014Rev 1",
"niv-shortest": "Phm-Rev 1",
"nlt-long": "Philemon\u2014Revelation 1",
"nlt-short": "Phlm\u2014Rev 1"
},
"Phlm.1-Rev.1.2": {
"esv-long": "Philemon\u2014Revelation 1:2",
"esv-short": "Philem.\u2014Rev. 1:2",
"niv-long": "Philemon\u2014Revelation 1:2",
"niv-short": "Phlm\u2014Rev 1:2",
"niv-shortest": "Phm-Rev 1:2",
"nlt-long": "Philemon\u2014Revelation 1:2",
"nlt-short": "Phlm\u2014Rev 1:2"
}
})
})
it("should handle `single-chapter bc-different single-chapter b`", function() {
loopTest({
"Phlm.1-Jude": {
"esv-long": "Philemon\u2014Jude",
"esv-short": "Philem.\u2014Jude",
"niv-long": "Philemon\u2014Jude",
"niv-short": "Phlm\u2014Jude",
"niv-shortest": "Phm-Jude",
"nlt-long": "Philemon\u2014Jude",
"nlt-short": "Phlm\u2014Jude"
},
"Phlm.1-Jude.1": {
"esv-long": "Philemon\u2014Jude",
"esv-short": "Philem.\u2014Jude",
"niv-long": "Philemon\u2014Jude",
"niv-short": "Phlm\u2014Jude",
"niv-shortest": "Phm-Jude",
"nlt-long": "Philemon\u2014Jude",
"nlt-short": "Phlm\u2014Jude"
},
"Phlm.1-Jude.1.2": {
"esv-long": "Philemon\u2014Jude 2",
"esv-short": "Philem.\u2014Jude 2",
"niv-long": "Philemon\u2014Jude 2",
"niv-short": "Phlm\u2014Jude 2",
"niv-shortest": "Phm-Jude 2",
"nlt-long": "Philemon\u2014Jude 2",
"nlt-short": "Phlm\u2014Jude 2"
}
})
})
})
describe("`bcv` ranges", function() {
it("should handle `bcv-same b`", function() {
loopTest({
"Gen.1.1-Gen": {
"esv-long": "Genesis 1:1\u2014Genesis",
"esv-short": "Gen. 1:1\u2014Gen.",
"niv-long": "Genesis 1:1\u2014Genesis",
"niv-short": "Gen 1:1\u2014Gen",
"niv-shortest": "Ge 1:1-Ge",
"nlt-long": "Genesis 1:1\u2014Genesis",
"nlt-short": "Gen 1:1\u2014Gen"
},
"Gen.1.1-Gen.2": {
"esv-long": "Genesis 1:1\u2014ch. 2",
"esv-short": "Gen. 1:1\u2014ch. 2",
"niv-long": "Genesis 1:1\u2014ch. 2",
"niv-short": "Gen 1:1\u2014ch. 2",
"niv-shortest": "Ge 1:1-Ge 2",
"nlt-long": "Genesis 1:1\u2014ch 2",
"nlt-short": "Gen 1:1\u2014ch 2"
},
"Gen.1.1-Gen.2.3": {
"esv-long": "Genesis 1:1\u20142:3",
"esv-short": "Gen. 1:1\u20142:3",
"niv-long": "Genesis 1:1\u20142:3",
"niv-short": "Gen 1:1\u20142:3",
"niv-shortest": "Ge 1:1-2:3",
"nlt-long": "Genesis 1:1\u20142:3",
"nlt-short": "Gen 1:1\u20142:3"
}
})
})
it("should handle `bcv-same bc`", function() {
loopTest({
"Gen.1.1-Gen.1": {
"esv-long": "Genesis 1:1\u2014ch. 1",
"esv-short": "Gen. 1:1\u2014ch. 1",
"niv-long": "Genesis 1:1\u2014ch. 1",
"niv-short": "Gen 1:1\u2014ch. 1",
"niv-shortest": "Ge 1:1-Ge 1",
"nlt-long": "Genesis 1:1\u2014ch 1",
"nlt-short": "Gen 1:1\u2014ch 1"
},
"Gen.1.1-Gen.1.2": {
"esv-long": "Genesis 1:1\u20132",
"esv-short": "Gen. 1:1\u20132",
"niv-long": "Genesis 1:1\u20132",
"niv-short": "Gen 1:1\u20132",
"niv-shortest": "Ge 1:1-2",
"nlt-long": "Genesis 1:1\u20132",
"nlt-short": "Gen 1:1\u20132"
}
})
})
it("should handle `bcv-same bcv`", function() {
loopTest({
"Gen.1.1-Gen.1.1": {
"esv-long": "Genesis 1:1\u20131",
"esv-short": "Gen. 1:1\u20131",
"niv-long": "Genesis 1:1\u20131",
"niv-short": "Gen 1:1\u20131",
"niv-shortest": "Ge 1:1-1",
"nlt-long": "Genesis 1:1\u20131",
"nlt-short": "Gen 1:1\u20131"
}
})
})
it("should handle `bcv-different b`", function() {
loopTest({
"Gen.1.1-Matt": {
"esv-long": "Genesis 1:1\u2014Matthew",
"esv-short": "Gen. 1:1\u2014Matt.",
"niv-long": "Genesis 1:1\u2014Matthew",
"niv-short": "Gen 1:1\u2014Matt",
"niv-shortest": "Ge 1:1-Mt",
"nlt-long": "Genesis 1:1\u2014Matthew",
"nlt-short": "Gen 1:1\u2014Matt"
},
"Gen.1.1-Matt.2": {
"esv-long": "Genesis 1:1\u2014Matthew 2",
"esv-short": "Gen. 1:1\u2014Matt. 2",
"niv-long": "Genesis 1:1\u2014Matthew 2",
"niv-short": "Gen 1:1\u2014Matt 2",
"niv-shortest": "Ge 1:1-Mt 2",
"nlt-long": "Genesis 1:1\u2014Matthew 2",
"nlt-short": "Gen 1:1\u2014Matt 2"
},
"Gen.1.1-Matt.2.3": {
"esv-long": "Genesis 1:1\u2014Matthew 2:3",
"esv-short": "Gen. 1:1\u2014Matt. 2:3",
"niv-long": "Genesis 1:1\u2014Matthew 2:3",
"niv-short": "Gen 1:1\u2014Matt 2:3",
"niv-shortest": "Ge 1:1-Mt 2:3",
"nlt-long": "Genesis 1:1\u2014Matthew 2:3",
"nlt-short": "Gen 1:1\u2014Matt 2:3"
}
})
})
it("should handle `bcv-different, single-chapter b`", function() {
loopTest({
"Gen.1.1-Phlm": {
"esv-long": "Genesis 1:1\u2014Philemon",
"esv-short": "Gen. 1:1\u2014Philem.",
"niv-long": "Genesis 1:1\u2014Philemon",
"niv-short": "Gen 1:1\u2014Phlm",
"niv-shortest": "Ge 1:1-Phm",
"nlt-long": "Genesis 1:1\u2014Philemon",
"nlt-short": "Gen 1:1\u2014Phlm"
},
"Gen.1.1-Phlm.1": {
"esv-long": "Genesis 1:1\u2014Philemon",
"esv-short": "Gen. 1:1\u2014Philem.",
"niv-long": "Genesis 1:1\u2014Philemon",
"niv-short": "Gen 1:1\u2014Phlm",
"niv-shortest": "Ge 1:1-Phm",
"nlt-long": "Genesis 1:1\u2014Philemon",
"nlt-short": "Gen 1:1\u2014Phlm"
},
"Gen.1.1-Phlm.1.2": {
"esv-long": "Genesis 1:1\u2014Philemon 2",
"esv-short": "Gen. 1:1\u2014Philem. 2",
"niv-long": "Genesis 1:1\u2014Philemon 2",
"niv-short": "Gen 1:1\u2014Phlm 2",
"niv-shortest": "Ge 1:1-Phm 2",
"nlt-long": "Genesis 1:1\u2014Philemon 2",
"nlt-short": "Gen 1:1\u2014Phlm 2"
}
})
})
it("should handle `bcv-Ps151`", function() {
loopTest({
"Gen.1.1-Ps151": {
"esv-long": "Genesis 1:1\u2014Psalm 151",
"esv-short": "Gen. 1:1\u2014Ps. 151",
"niv-long": "Genesis 1:1\u2014Psalm 151",
"niv-short": "Gen 1:1\u2014Ps 151",
"niv-shortest": "Ge 1:1-Ps 151",
"nlt-long": "Genesis 1:1\u2014Psalm 151",
"nlt-short": "Gen 1:1\u2014Ps 151"
},
"Gen.1.1-Ps151.1": {
"esv-long": "Genesis 1:1\u2014Psalm 151",
"esv-short": "Gen. 1:1\u2014Ps. 151",
"niv-long": "Genesis 1:1\u2014Psalm 151",
"niv-short": "Gen 1:1\u2014Ps 151",
"niv-shortest": "Ge 1:1-Ps 151",
"nlt-long": "Genesis 1:1\u2014Psalm 151",
"nlt-short": "Gen 1:1\u2014Ps 151"
},
"Gen.1.1-Ps151.1.2": {
"esv-long": "Genesis 1:1\u2014Psalm 151:2",
"esv-short": "Gen. 1:1\u2014Ps. 151:2",
"niv-long": "Genesis 1:1\u2014Psalm 151:2",
"niv-short": "Gen 1:1\u2014Ps 151:2",
"niv-shortest": "Ge 1:1-Ps 151:2",
"nlt-long": "Genesis 1:1\u2014Psalm 151:2",
"nlt-short": "Gen 1:1\u2014Ps 151:2"
}
})
})
it("should handle `Ps.cv-Ps151`", function() {
loopTest({
"Ps.1.1-Ps151": {
"esv-long": "Psalms 1:1\u2014Psalm 151",
"esv-short": "Pss. 1:1\u2014Ps. 151",
"niv-long": "Psalms 1:1\u2014Psalm 151",
"niv-short": "Pss 1:1\u2014Ps 151",
"niv-shortest": "Ps 1:1-Ps 151",
"nlt-long": "Psalms 1:1\u2014Psalm 151",
"nlt-short": "Pss 1:1\u2014Ps 151"
},
"Ps.1.1-Ps151.1": {
"esv-long": "Psalms 1:1\u2014Psalm 151",
"esv-short": "Pss. 1:1\u2014Ps. 151",
"niv-long": "Psalms 1:1\u2014Psalm 151",
"niv-short": "Pss 1:1\u2014Ps 151",
"niv-shortest": "Ps 1:1-Ps 151",
"nlt-long": "Psalms 1:1\u2014Psalm 151",
"nlt-short": "Pss 1:1\u2014Ps 151"
},
"Ps.1.1-Ps151.1.2": {
"esv-long": "Psalms 1:1\u2014151:2",
"esv-short": "Pss. 1:1\u2014151:2",
"niv-long": "Psalms 1:1\u2014151:2",
"niv-short": "Pss 1:1\u2014151:2",
"niv-shortest": "Ps 1:1-151:2",
"nlt-long": "Psalms 1:1\u2014151:2",
"nlt-short": "Pss 1:1\u2014151:2"
}
})
})
})
describe("`bv` ranges", function() {
it("should handle `bv-same b`", function() {
loopTest({
"Phlm.1.1-Phlm": {
"esv-long": "Philemon 1\u2014Philemon",
"esv-short": "Philem. 1\u2014Philem.",
"niv-long": "Philemon 1\u2014Philemon",
"niv-short": "Phlm 1\u2014Phlm",
"niv-shortest": "Phm 1-Phm",
"nlt-long": "Philemon 1\u2014Philemon",
"nlt-short": "Phlm 1\u2014Phlm"
},
"Phlm.1.1-Phlm.1": {
"esv-long": "Philemon 1\u2014Philemon",
"esv-short": "Philem. 1\u2014Philem.",
"niv-long": "Philemon 1\u2014Philemon",
"niv-short": "Phlm 1\u2014Phlm",
"niv-shortest": "Phm 1-Phm",
"nlt-long": "Philemon 1\u2014Philemon",
"nlt-short": "Phlm 1\u2014Phlm"
},
"Phlm.1.1-Phlm.1.2": {
"esv-long": "Philemon 1\u20132",
"esv-short": "Philem. 1\u20132",
"niv-long": "Philemon 1\u20132",
"niv-short": "Phlm 1\u20132",
"niv-shortest": "Phm 1-2",
"nlt-long": "Philemon 1\u20132",
"nlt-short": "Phlm 1\u20132"
}
})
})
it("should handle `bv-same bv`", function() {
loopTest({
"Phlm.1.1-Phlm.1.1": {
"esv-long": "Philemon 1\u20131",
"esv-short": "Philem. 1\u20131",
"niv-long": "Philemon 1\u20131",
"niv-short": "Phlm 1\u20131",
"niv-shortest": "Phm 1-1",
"nlt-long": "Philemon 1\u20131",
"nlt-short": "Phlm 1\u20131"
}
})
})
it("should handle `bv-different b`", function() {
loopTest({
"Phlm.1.1-Rev": {
"esv-long": "Philemon 1\u2014Revelation",
"esv-short": "Philem. 1\u2014Rev.",
"niv-long": "Philemon 1\u2014Revelation",
"niv-short": "Phlm 1\u2014Rev",
"niv-shortest": "Phm 1-Rev",
"nlt-long": "Philemon 1\u2014Revelation",
"nlt-short": "Phlm 1\u2014Rev"
},
"Phlm.1.1-Rev.1": {
"esv-long": "Philemon 1\u2014Revelation 1",
"esv-short": "Philem. 1\u2014Rev. 1",
"niv-long": "Philemon 1\u2014Revelation 1",
"niv-short": "Phlm 1\u2014Rev 1",
"niv-shortest": "Phm 1-Rev 1",
"nlt-long": "Philemon 1\u2014Revelation 1",
"nlt-short": "Phlm 1\u2014Rev 1"
},
"Phlm.1.1-Rev.1.2": {
"esv-long": "Philemon 1\u2014Revelation 1:2",
"esv-short": "Philem. 1\u2014Rev. 1:2",
"niv-long": "Philemon 1\u2014Revelation 1:2",
"niv-short": "Phlm 1\u2014Rev 1:2",
"niv-shortest": "Phm 1-Rev 1:2",
"nlt-long": "Philemon 1\u2014Revelation 1:2",
"nlt-short": "Phlm 1\u2014Rev 1:2"
}
})
})
it("should handle `bv-different single-chapter b`", function() {
loopTest({
"Phlm.1.1-Jude": {
"esv-long": "Philemon 1\u2014Jude",
"esv-short": "Philem. 1\u2014Jude",
"niv-long": "Philemon 1\u2014Jude",
"niv-short": "Phlm 1\u2014Jude",
"niv-shortest": "Phm 1-Jude",
"nlt-long": "Philemon 1\u2014Jude",
"nlt-short": "Phlm 1\u2014Jude"
},
"Phlm.1.1-Jude.1": {
"esv-long": "Philemon 1\u2014Jude",
"esv-short": "Philem. 1\u2014Jude",
"niv-long": "Philemon 1\u2014Jude",
"niv-short": "Phlm 1\u2014Jude",
"niv-shortest": "Phm 1-Jude",
"nlt-long": "Philemon 1\u2014Jude",
"nlt-short": "Phlm 1\u2014Jude"
},
"Phlm.1.1-Jude.1.2": {
"esv-long": "Philemon 1\u2014Jude 2",
"esv-short": "Philem. 1\u2014Jude 2",
"niv-long": "Philemon 1\u2014Jude 2",
"niv-short": "Phlm 1\u2014Jude 2",
"niv-shortest": "Phm 1-Jude 2",
"nlt-long": "Philemon 1\u2014Jude 2",
"nlt-short": "Phlm 1\u2014Jude 2"
}
})
})
})
describe("`b` sequences", function() {
it("should handle `b,same b`", function() {
loopTest({
"Gen,Gen": {
"esv-long": "Genesis; Genesis",
"esv-short": "Gen.; Gen.",
"niv-long": "Genesis; Genesis",
"niv-short": "Gen; Gen",
"niv-shortest": "Ge; Ge",
"nlt-long": "Genesis; Genesis",
"nlt-short": "Gen; Gen"
},
"Gen,Gen.1": {
"esv-long": "Genesis; ch. 1",
"esv-short": "Gen.; ch. 1",
"niv-long": "Genesis; ch. 1",
"niv-short": "Gen; ch. 1",
"niv-shortest": "Ge; Ge 1",
"nlt-long": "Genesis; ch 1",
"nlt-short": "Gen; ch 1"
},
"Gen,Gen.1-Gen.2": {
"esv-long": "Genesis; chs. 1\u20142",
"esv-short": "Gen.; chs. 1\u20142",
"niv-long": "Genesis; chs. 1\u20142",
"niv-short": "Gen; chs. 1\u20142",
"niv-shortest": "Ge; Ge 1-2",
"nlt-long": "Genesis; chs 1\u20142",
"nlt-short": "Gen; chs 1\u20142"
},
"Gen,Gen.1.2": {
"esv-long": "Genesis; ch. 1:2",
"esv-short": "Gen.; ch. 1:2",
"niv-long": "Genesis; ch. 1:2",
"niv-short": "Gen; ch. 1:2",
"niv-shortest": "Ge; Ge 1:2",
"nlt-long": "Genesis; ch 1:2",
"nlt-short": "Gen; ch 1:2"
}
})
})
it("should handle `b,different b`", function() {
loopTest({
"Gen,Matt": {
"esv-long": "Genesis; Matthew",
"esv-short": "Gen.; Matt.",
"niv-long": "Genesis; Matthew",
"niv-short": "Gen; Matt",
"niv-shortest": "Ge; Mt",
"nlt-long": "Genesis; Matthew",
"nlt-short": "Gen; Matt"
},
"Gen,Matt.1": {
"esv-long": "Genesis; Matthew 1",
"esv-short": "Gen.; Matt. 1",
"niv-long": "Genesis; Matthew 1",
"niv-short": "Gen; Matt 1",
"niv-shortest": "Ge; Mt 1",
"nlt-long": "Genesis; Matthew 1",
"nlt-short": "Gen; Matt 1"
},
"Gen,Matt.1.2": {
"esv-long": "Genesis; Matthew 1:2",
"esv-short": "Gen.; Matt. 1:2",
"niv-long": "Genesis; Matthew 1:2",
"niv-short": "Gen; Matt 1:2",
"niv-shortest": "Ge; Mt 1:2",
"nlt-long": "Genesis; Matthew 1:2",
"nlt-short": "Gen; Matt 1:2"
}
})
})
it("should handle `b,different, single-chapter b`", function() {
loopTest({
"Gen,Phlm": {
"esv-long": "Genesis; Philemon",
"esv-short": "Gen.; Philem.",
"niv-long": "Genesis; Philemon",
"niv-short": "Gen; Phlm",
"niv-shortest": "Ge; Phm",
"nlt-long": "Genesis; Philemon",
"nlt-short": "Gen; Phlm"
},
"Gen,Phlm.1": {
"esv-long": "Genesis; Philemon",
"esv-short": "Gen.; Philem.",
"niv-long": "Genesis; Philemon",
"niv-short": "Gen; Phlm",
"niv-shortest": "Ge; Phm",
"nlt-long": "Genesis; Philemon",
"nlt-short": "Gen; Phlm"
},
"Gen,Phlm.1.2": {
"esv-long": "Genesis; Philemon 2",
"esv-short": "Gen.; Philem. 2",
"niv-long": "Genesis; Philemon 2",
"niv-short": "Gen; Phlm 2",
"niv-shortest": "Ge; Phm 2",
"nlt-long": "Genesis; Philemon 2",
"nlt-short": "Gen; Phlm 2"
}
})
})
it("should handle `b,Ps151`", function() {
loopTest({
"Gen,Ps151": {
"esv-long": "Genesis; Psalm 151",
"esv-short": "Gen.; Ps. 151",
"niv-long": "Genesis; Psalm 151",
"niv-short": "Gen; Ps 151",
"niv-shortest": "Ge; Ps 151",
"nlt-long": "Genesis; Psalm 151",
"nlt-short": "Gen; Ps 151"
},
"Gen,Ps151.1": {
"esv-long": "Genesis; Psalm 151",
"esv-short": "Gen.; Ps. 151",
"niv-long": "Genesis; Psalm 151",
"niv-short": "Gen; Ps 151",
"niv-shortest": "Ge; Ps 151",
"nlt-long": "Genesis; Psalm 151",
"nlt-short": "Gen; Ps 151"
},
"Gen,Ps151.1.2": {
"esv-long": "Genesis; Psalm 151:2",
"esv-short": "Gen.; Ps. 151:2",
"niv-long": "Genesis; Psalm 151:2",
"niv-short": "Gen; Ps 151:2",
"niv-shortest": "Ge; Ps 151:2",
"nlt-long": "Genesis; Psalm 151:2",
"nlt-short": "Gen; Ps 151:2"
}
})
})
it("should handle `Ps,Ps151`", function() {
loopTest({
"Ps,Ps151": {
"esv-long": "Psalms; Psalm 151",
"esv-short": "Pss.; Ps. 151",
"niv-long": "Psalms; Psalm 151",
"niv-short": "Pss; Ps 151",
"niv-shortest": "Ps; Ps 151",
"nlt-long": "Psalms; Psalm 151",
"nlt-short": "Pss; Ps 151"
},
"Ps,Ps151.1": {
"esv-long": "Psalms; Psalm 151",
"esv-short": "Pss.; Ps. 151",
"niv-long": "Psalms; Psalm 151",
"niv-short": "Pss; Ps 151",
"niv-shortest": "Ps; Ps 151",
"nlt-long": "Psalms; Psalm 151",
"nlt-short": "Pss; Ps 151"
},
"Ps,Ps151.1.2": {
"esv-long": "Psalms; Psalm 151:2",
"esv-short": "Pss.; Ps. 151:2",
"niv-long": "Psalms; Psalm 151:2",
"niv-short": "Pss; Ps 151:2",
"niv-shortest": "Ps; Ps 151:2",
"nlt-long": "Psalms; Psalm 151:2",
"nlt-short": "Pss; Ps 151:2"
}
})
})
it("should handle `single-chapter b,same b`", function() {
loopTest({
"Phlm,Phlm": {
"esv-long": "Philemon; Philemon",
"esv-short": "Philem.; Philem.",
"niv-long": "Philemon; Philemon",
"niv-short": "Phlm; Phlm",
"niv-shortest": "Phm; Phm",
"nlt-long": "Philemon; Philemon",
"nlt-short": "Phlm; Phlm"
},
"Phlm,Phlm.1": {
"esv-long": "Philemon; Philemon",
"esv-short": "Philem.; Philem.",
"niv-long": "Philemon; Philemon",
"niv-short": "Phlm; Phlm",
"niv-shortest": "Phm; Phm",
"nlt-long": "Philemon; Philemon",
"nlt-short": "Phlm; Phlm"
},
"Phlm,Phlm.1.2": {
"esv-long": "Philemon; Philemon 2",
"esv-short": "Philem.; Philem. 2",
"niv-long": "Philemon; Philemon 2",
"niv-short": "Phlm; Phlm 2",
"niv-shortest": "Phm; Phm 2",
"nlt-long": "Philemon; Philemon 2",
"nlt-short": "Phlm; Phlm 2"
}
})
})
it("should handle `single-chapter b,different b`", function() {
loopTest({
"Phlm,Rev": {
"esv-long": "Philemon; Revelation",
"esv-short": "Philem.; Rev.",
"niv-long": "Philemon; Revelation",
"niv-short": "Phlm; Rev",
"niv-shortest": "Phm; Rev",
"nlt-long": "Philemon; Revelation",
"nlt-short": "Phlm; Rev"
},
"Phlm,Rev.1": {
"esv-long": "Philemon; Revelation 1",
"esv-short": "Philem.; Rev. 1",
"niv-long": "Philemon; Revelation 1",
"niv-short": "Phlm; Rev 1",
"niv-shortest": "Phm; Rev 1",
"nlt-long": "Philemon; Revelation 1",
"nlt-short": "Phlm; Rev 1"
},
"Phlm,Rev.1.2": {
"esv-long": "Philemon; Revelation 1:2",
"esv-short": "Philem.; Rev. 1:2",
"niv-long": "Philemon; Revelation 1:2",
"niv-short": "Phlm; Rev 1:2",
"niv-shortest": "Phm; Rev 1:2",
"nlt-long": "Philemon; Revelation 1:2",
"nlt-short": "Phlm; Rev 1:2"
}
})
})
it("should handle `single-chapter b,different single-chapter b`", function() {
loopTest({
"Phlm,Jude": {
"esv-long": "Philemon; Jude",
"esv-short": "Philem.; Jude",
"niv-long": "Philemon; Jude",
"niv-short": "Phlm; Jude",
"niv-shortest": "Phm; Jude",
"nlt-long": "Philemon; Jude",
"nlt-short": "Phlm; Jude"
},
"Phlm,Jude.1": {
"esv-long": "Philemon; Jude",
"esv-short": "Philem.; Jude",
"niv-long": "Philemon; Jude",
"niv-short": "Phlm; Jude",
"niv-shortest": "Phm; Jude",
"nlt-long": "Philemon; Jude",
"nlt-short": "Phlm; Jude"
},
"Phlm,Jude.1.2": {
"esv-long": "Philemon; Jude 2",
"esv-short": "Philem.; Jude 2",
"niv-long": "Philemon; Jude 2",
"niv-short": "Phlm; Jude 2",
"niv-shortest": "Phm; Jude 2",
"nlt-long": "Philemon; Jude 2",
"nlt-short": "Phlm; Jude 2"
}
})
})
it("should handle special book sequences", function() {
loopTest({
"1Sam,2Sam": {
"esv-long": "1 and 2 Samuel",
"esv-short": "1 and 2 Sam.",
"niv-long": "1 and 2 Samuel",
"niv-short": "1 and 2 Sam",
"niv-shortest": "1Sa; 2Sa",
"nlt-long": "1 and 2 Samuel",
"nlt-short": "1 and 2 Sam"
},
"1Kgs,2Kgs": {
"esv-long": "1 and 2 Kings",
"esv-short": "1 and 2 Kings",
"niv-long": "1 and 2 Kings",
"niv-short": "1 and 2 Kgs",
"niv-shortest": "1Ki; 2Ki",
"nlt-long": "1 and 2 Kings",
"nlt-short": "1 and 2 Kgs"
},
"1Chr,2Chr": {
"esv-long": "1 and 2 Chronicles",
"esv-short": "1 and 2 Chron.",
"niv-long": "1 and 2 Chronicles",
"niv-short": "1 and 2 Chr",
"niv-shortest": "1Ch; 2Ch",
"nlt-long": "1 and 2 Chronicles",
"nlt-short": "1 and 2 Chr"
},
"1Cor,2Cor": {
"esv-long": "1 and 2 Corinthians",
"esv-short": "1 and 2 Cor.",
"niv-long": "1 and 2 Corinthians",
"niv-short": "1 and 2 Cor",
"niv-shortest": "1Co; 2Co",
"nlt-long": "1 and 2 Corinthians",
"nlt-short": "1 and 2 Cor"
},
"1Thess,2Thess": {
"esv-long": "1 and 2 Thessalonians",
"esv-short": "1 and 2 Thess.",
"niv-long": "1 and 2 Thessalonians",
"niv-short": "1 and 2 Thess",
"niv-shortest": "1Th; 2Th",
"nlt-long": "1 and 2 Thessalonians",
"nlt-short": "1 and 2 Thes"
},
"1Tim,2Tim": {
"esv-long": "1 and 2 Timothy",
"esv-short": "1 and 2 Tim.",
"niv-long": "1 and 2 Timothy",
"niv-short": "1 and 2 Tim",
"niv-shortest": "1Ti; 2Ti",
"nlt-long": "1 and 2 Timothy",
"nlt-short": "1 and 2 Tim"
},
"1Pet,2Pet": {
"esv-long": "1 and 2 Peter",
"esv-short": "1 and 2 Pet.",
"niv-long": "1 and 2 Peter",
"niv-short": "1 and 2 Pet",
"niv-shortest": "1Pe; 2Pe",
"nlt-long": "1 and 2 Peter",
"nlt-short": "1 and 2 Pet"
},
"1John,2John": {
"esv-long": "1 and 2 John",
"esv-short": "1 and 2 John",
"niv-long": "1 and 2 John",
"niv-short": "1 and 2 John",
"niv-shortest": "1Jn; 2Jn",
"nlt-long": "1 and 2 John",
"nlt-short": "1 and 2 Jn"
},
"1John,3John": {
"esv-long": "1 and 3 John",
"esv-short": "1 and 3 John",
"niv-long": "1 and 3 John",
"niv-short": "1 and 3 John",
"niv-shortest": "1Jn; 3Jn",
"nlt-long": "1 and 3 John",
"nlt-short": "1 and 3 Jn"
},
"2John,3John": {
"esv-long": "2 and 3 John",
"esv-short": "2 and 3 John",
"niv-long": "2 and 3 John",
"niv-short": "2 and 3 John",
"niv-shortest": "2Jn; 3Jn",
"nlt-long": "2 and 3 John",
"nlt-short": "2 and 3 Jn"
},
"1Macc,2Macc": {
"esv-long": "1 and 2 Maccabees",
"esv-short": "1 and 2 Macc.",
"niv-long": "1 and 2 Maccabees",
"niv-short": "1 and 2 Macc",
"niv-shortest": "1Mc; 2Mc",
"nlt-long": "1 and 2 Maccabees",
"nlt-short": "1 and 2 Macc"
},
"1Macc,2Macc,3Macc": {
"esv-long": "1, 2, and 3 Maccabees",
"esv-short": "1, 2, and 3 Macc.",
"niv-long": "1, 2, and 3 Maccabees",
"niv-short": "1, 2, and 3 Macc",
"niv-shortest": "1Mc; 2Mc; 3Mc",
"nlt-long": "1, 2, and 3 Maccabees",
"nlt-short": "1, 2, and 3 Macc"
},
"1Macc,2Macc,3Macc,4Macc": {
"esv-long": "1, 2, 3, and 4 Maccabees",
"esv-short": "1, 2, 3, and 4 Macc.",
"niv-long": "1, 2, 3, and 4 Maccabees",
"niv-short": "1, 2, 3, and 4 Macc",
"niv-shortest": "1Mc; 2Mc; 3Mc; 4Mc",
"nlt-long": "1, 2, 3, and 4 Maccabees",
"nlt-short": "1, 2, 3, and 4 Macc"
},
"1Macc,3Macc": {
"esv-long": "1 and 3 Maccabees",
"esv-short": "1 and 3 Macc.",
"niv-long": "1 and 3 Maccabees",
"niv-short": "1 and 3 Macc",
"niv-shortest": "1Mc; 3Mc",
"nlt-long": "1 and 3 Maccabees",
"nlt-short": "1 and 3 Macc"
},
"1Macc,3Macc,4Macc": {
"esv-long": "1, 3, and 4 Maccabees",
"esv-short": "1, 3, and 4 Macc.",
"niv-long": "1, 3, and 4 Maccabees",
"niv-short": "1, 3, and 4 Macc",
"niv-shortest": "1Mc; 3Mc; 4Mc",
"nlt-long": "1, 3, and 4 Maccabees",
"nlt-short": "1, 3, and 4 Macc"
},
"1Macc,4Macc": {
"esv-long": "1 and 4 Maccabees",
"esv-short": "1 and 4 Macc.",
"niv-long": "1 and 4 Maccabees",
"niv-short": "1 and 4 Macc",
"niv-shortest": "1Mc; 4Mc",
"nlt-long": "1 and 4 Maccabees",
"nlt-short": "1 and 4 Macc"
},
"2Macc,3Macc": {
"esv-long": "2 and 3 Maccabees",
"esv-short": "2 and 3 Macc.",
"niv-long": "2 and 3 Maccabees",
"niv-short": "2 and 3 Macc",
"niv-shortest": "2Mc; 3Mc",
"nlt-long": "2 and 3 Maccabees",
"nlt-short": "2 and 3 Macc"
},
"2Macc,3Macc,4Macc": {
"esv-long": "2, 3, and 4 Maccabees",
"esv-short": "2, 3, and 4 Macc.",
"niv-long": "2, 3, and 4 Maccabees",
"niv-short": "2, 3, and 4 Macc",
"niv-shortest": "2Mc; 3Mc; 4Mc",
"nlt-long": "2, 3, and 4 Maccabees",
"nlt-short": "2, 3, and 4 Macc"
},
"2Macc,4Macc": {
"esv-long": "2 and 4 Maccabees",
"esv-short": "2 and 4 Macc.",
"niv-long": "2 and 4 Maccabees",
"niv-short": "2 and 4 Macc",
"niv-shortest": "2Mc; 4Mc",
"nlt-long": "2 and 4 Maccabees",
"nlt-short": "2 and 4 Macc"
},
"3Macc,4Macc": {
"esv-long": "3 and 4 Maccabees",
"esv-short": "3 and 4 Macc.",
"niv-long": "3 and 4 Maccabees",
"niv-short": "3 and 4 Macc",
"niv-shortest": "3Mc; 4Mc",
"nlt-long": "3 and 4 Maccabees",
"nlt-short": "3 and 4 Macc"
},
"1Esd,2Esd": {
"esv-long": "1 and 2 Esdras",
"esv-short": "1 and 2 Esd.",
"niv-long": "1 and 2 Esdras",
"niv-short": "1 and 2 Esd",
"niv-shortest": "1Es; 2Es",
"nlt-long": "1 and 2 Esdras",
"nlt-short": "1 and 2 Esd"
}
})
})
})
describe("`bc` sequences", function() {
it("should handle `bc, same b`", function() {
loopTest({
"Gen.1,Gen": {
"esv-long": "Genesis 1; Genesis",
"esv-short": "Gen. 1; Gen.",
"niv-long": "Genesis 1; Genesis",
"niv-short": "Gen 1; Gen",
"niv-shortest": "Ge 1; Ge",
"nlt-long": "Genesis 1; Genesis",
"nlt-short": "Gen 1; Gen"
},
"Gen.1,Gen.2": {
"esv-long": "Genesis 1; 2",
"esv-short": "Gen. 1; 2",
"niv-long": "Genesis 1; 2",
"niv-short": "Gen 1; 2",
"niv-shortest": "Ge 1; 2",
"nlt-long": "Genesis 1; 2",
"nlt-short": "Gen 1; 2"
},
"Gen.1,Gen.2.3": {
"esv-long": "Genesis 1; 2:3",
"esv-short": "Gen. 1; 2:3",
"niv-long": "Genesis 1; 2:3",
"niv-short": "Gen 1; 2:3",
"niv-shortest": "Ge 1; 2:3",
"nlt-long": "Genesis 1; 2:3",
"nlt-short": "Gen 1; 2:3"
}
})
})
it("should handle `bc, same bc`", function() {
loopTest({
"Gen.1,Gen.1": {
"esv-long": "Genesis 1; 1",
"esv-short": "Gen. 1; 1",
"niv-long": "Genesis 1; 1",
"niv-short": "Gen 1; 1",
"niv-shortest": "Ge 1; 1",
"nlt-long": "Genesis 1; 1",
"nlt-short": "Gen 1; 1"
},
"Gen.1,Gen.1.2": {
"esv-long": "Genesis 1; 1:2",
"esv-short": "Gen. 1; 1:2",
"niv-long": "Genesis 1; 1:2",
"niv-short": "Gen 1; 1:2",
"niv-shortest": "Ge 1; 1:2",
"nlt-long": "Genesis 1; 1:2",
"nlt-short": "Gen 1; 1:2"
}
})
})
it("should handle `bc, different b`", function() {
loopTest({
"Gen.1,Matt": {
"esv-long": "Genesis 1; Matthew",
"esv-short": "Gen. 1; Matt.",
"niv-long": "Genesis 1; Matthew",
"niv-short": "Gen 1; Matt",
"niv-shortest": "Ge 1; Mt",
"nlt-long": "Genesis 1; Matthew",
"nlt-short": "Gen 1; Matt"
},
"Gen.1,Matt.2": {
"esv-long": "Genesis 1; Matthew 2",
"esv-short": "Gen. 1; Matt. 2",
"niv-long": "Genesis 1; Matthew 2",
"niv-short": "Gen 1; Matt 2",
"niv-shortest": "Ge 1; Mt 2",
"nlt-long": "Genesis 1; Matthew 2",
"nlt-short": "Gen 1; Matt 2"
},
"Gen.1,Matt.2.3": {
"esv-long": "Genesis 1; Matthew 2:3",
"esv-short": "Gen. 1; Matt. 2:3",
"niv-long": "Genesis 1; Matthew 2:3",
"niv-short": "Gen 1; Matt 2:3",
"niv-shortest": "Ge 1; Mt 2:3",
"nlt-long": "Genesis 1; Matthew 2:3",
"nlt-short": "Gen 1; Matt 2:3"
}
})
})
it("should handle `bc, different, single-chapter b`", function() {
loopTest({
"Gen.1,Phlm": {
"esv-long": "Genesis 1; Philemon",
"esv-short": "Gen. 1; Philem.",
"niv-long": "Genesis 1; Philemon",
"niv-short": "Gen 1; Phlm",
"niv-shortest": "Ge 1; Phm",
"nlt-long": "Genesis 1; Philemon",
"nlt-short": "Gen 1; Phlm"
},
"Gen.1,Phlm.1": {
"esv-long": "Genesis 1; Philemon",
"esv-short": "Gen. 1; Philem.",
"niv-long": "Genesis 1; Philemon",
"niv-short": "Gen 1; Phlm",
"niv-shortest": "Ge 1; Phm",
"nlt-long": "Genesis 1; Philemon",
"nlt-short": "Gen 1; Phlm"
},
"Gen.1,Phlm.1.2": {
"esv-long": "Genesis 1; Philemon 2",
"esv-short": "Gen. 1; Philem. 2",
"niv-long": "Genesis 1; Philemon 2",
"niv-short": "Gen 1; Phlm 2",
"niv-shortest": "Ge 1; Phm 2",
"nlt-long": "Genesis 1; Philemon 2",
"nlt-short": "Gen 1; Phlm 2"
}
})
})
it("should handle `bc, Ps151`", function() {
loopTest({
"Gen.1,Ps151": {
"esv-long": "Genesis 1; Psalm 151",
"esv-short": "Gen. 1; Ps. 151",
"niv-long": "Genesis 1; Psalm 151",
"niv-short": "Gen 1; Ps 151",
"niv-shortest": "Ge 1; Ps 151",
"nlt-long": "Genesis 1; Psalm 151",
"nlt-short": "Gen 1; Ps 151"
},
"Gen.1,Ps151.1": {
"esv-long": "Genesis 1; Psalm 151",
"esv-short": "Gen. 1; Ps. 151",
"niv-long": "Genesis 1; Psalm 151",
"niv-short": "Gen 1; Ps 151",
"niv-shortest": "Ge 1; Ps 151",
"nlt-long": "Genesis 1; Psalm 151",
"nlt-short": "Gen 1; Ps 151"
}