UNPKG

bible-ref-parse

Version:

Identifies and parses Bible references (like John 3:16) in over 40 languages.

673 lines (672 loc) 191 kB
// @ts-nocheck /* * decaffeinate suggestions: * DS101: Remove unnecessary use of Array.from * DS102: Remove unnecessary code created because of implicit returns * Full docs: https://github.com/decaffeinate/decaffeinate/blob/main/docs/suggestions.md */ const { bcv_parser } = require("../../dist/sr-bcv-parser.js"); describe("Parsing (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.options.osis_compaction_strategy = "b"; p.options.sequence_combination_strategy = "combine"; }); it("should round-trip OSIS references", function () { p.set_options({ osis_compaction_strategy: "bc" }); const books = ["Gen", "Exod", "Lev", "Num", "Deut", "Josh", "Judg", "Ruth", "1Sam", "2Sam", "1Kgs", "2Kgs", "1Chr", "2Chr", "Ezra", "Neh", "Esth", "Job", "Ps", "Prov", "Eccl", "Song", "Isa", "Jer", "Lam", "Ezek", "Dan", "Hos", "Joel", "Amos", "Obad", "Jonah", "Mic", "Nah", "Hab", "Zeph", "Hag", "Zech", "Mal", "Matt", "Mark", "Luke", "John", "Acts", "Rom", "1Cor", "2Cor", "Gal", "Eph", "Phil", "Col", "1Thess", "2Thess", "1Tim", "2Tim", "Titus", "Phlm", "Heb", "Jas", "1Pet", "2Pet", "1John", "2John", "3John", "Jude", "Rev"]; for (var book of Array.from(books)) { var bc = book + ".1"; var bcv = bc + ".1"; var bcv_range = bcv + "-" + bc + ".2"; expect(p.parse(bc).osis()).toEqual(bc); expect(p.parse(bcv).osis()).toEqual(bcv); expect(p.parse(bcv_range).osis()).toEqual(bcv_range); } }); it("should round-trip OSIS Apocrypha references", function () { let bc, book; p.set_options({ osis_compaction_strategy: "bc", ps151_strategy: "b" }); p.include_apocrypha(true); const books = ["Tob", "Jdt", "GkEsth", "Wis", "Sir", "Bar", "PrAzar", "Sus", "Bel", "SgThree", "EpJer", "1Macc", "2Macc", "3Macc", "4Macc", "1Esd", "2Esd", "PrMan", "Ps151"]; for (book of Array.from(books)) { bc = book + ".1"; var bcv = bc + ".1"; var bcv_range = bcv + "-" + bc + ".2"; expect(p.parse(bc).osis()).toEqual(bc); expect(p.parse(bcv).osis()).toEqual(bcv); expect(p.parse(bcv_range).osis()).toEqual(bcv_range); } p.set_options({ ps151_strategy: "bc" }); expect(p.parse("Ps151.1").osis()).toEqual("Ps.151"); expect(p.parse("Ps151.1.1").osis()).toEqual("Ps.151.1"); expect(p.parse("Ps151.1-Ps151.2").osis()).toEqual("Ps.151.1-Ps.151.2"); p.include_apocrypha(false); for (book of Array.from(books)) { bc = book + ".1"; expect(p.parse(bc).osis()).toEqual(""); } }); it("should handle a preceding character", function () { expect(p.parse(" Gen 1").osis()).toEqual("Gen.1"); expect(p.parse("Matt5John3").osis()).toEqual("Matt.5,John.3"); expect(p.parse("1Ps 1").osis()).toEqual(""); expect(p.parse("11Sam 1").osis()).toEqual(""); }); }); describe("Localized book Gen (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Gen (sr)", function () { expect(p.parse("Прва Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: 'Прва Мојсијева 1:1'"); expect(p.parse("1.. Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: '1.. Мојсијева 1:1'"); expect(p.parse("1. Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: '1. Мојсијева 1:1'"); expect(p.parse("I. Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I. Мојсијева 1:1'"); expect(p.parse("1 Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: '1 Мојсијева 1:1'"); expect(p.parse("I Мојсијева 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I Мојсијева 1:1'"); expect(p.parse("Прва Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: 'Прва Мојс 1:1'"); expect(p.parse("1.. Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: '1.. Мојс 1:1'"); expect(p.parse("1. Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: '1. Мојс 1:1'"); expect(p.parse("I. Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I. Мојс 1:1'"); expect(p.parse("Постање 1:1").osis()).toEqual("Gen.1.1", "parsing: 'Постање 1:1'"); expect(p.parse("1 Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: '1 Мојс 1:1'"); expect(p.parse("I Мојс 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I Мојс 1:1'"); expect(p.parse("Пост 1:1").osis()).toEqual("Gen.1.1", "parsing: 'Пост 1:1'"); expect(p.parse("Gen 1:1").osis()).toEqual("Gen.1.1", "parsing: 'Gen 1:1'"); p.include_apocrypha(false); expect(p.parse("ПРВА МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: 'ПРВА МОЈСИЈЕВА 1:1'"); expect(p.parse("1.. МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: '1.. МОЈСИЈЕВА 1:1'"); expect(p.parse("1. МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: '1. МОЈСИЈЕВА 1:1'"); expect(p.parse("I. МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I. МОЈСИЈЕВА 1:1'"); expect(p.parse("1 МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: '1 МОЈСИЈЕВА 1:1'"); expect(p.parse("I МОЈСИЈЕВА 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I МОЈСИЈЕВА 1:1'"); expect(p.parse("ПРВА МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: 'ПРВА МОЈС 1:1'"); expect(p.parse("1.. МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: '1.. МОЈС 1:1'"); expect(p.parse("1. МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: '1. МОЈС 1:1'"); expect(p.parse("I. МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I. МОЈС 1:1'"); expect(p.parse("ПОСТАЊЕ 1:1").osis()).toEqual("Gen.1.1", "parsing: 'ПОСТАЊЕ 1:1'"); expect(p.parse("1 МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: '1 МОЈС 1:1'"); expect(p.parse("I МОЈС 1:1").osis()).toEqual("Gen.1.1", "parsing: 'I МОЈС 1:1'"); expect(p.parse("ПОСТ 1:1").osis()).toEqual("Gen.1.1", "parsing: 'ПОСТ 1:1'"); expect(p.parse("GEN 1:1").osis()).toEqual("Gen.1.1", "parsing: 'GEN 1:1'"); }); }); describe("Localized book Exod (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Exod (sr)", function () { expect(p.parse("Друга Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Друга Мојсијева 1:1'"); expect(p.parse("2.. Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: '2.. Мојсијева 1:1'"); expect(p.parse("II. Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II. Мојсијева 1:1'"); expect(p.parse("2. Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: '2. Мојсијева 1:1'"); expect(p.parse("II Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II Мојсијева 1:1'"); expect(p.parse("2 Мојсијева 1:1").osis()).toEqual("Exod.1.1", "parsing: '2 Мојсијева 1:1'"); expect(p.parse("Друга Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Друга Мојс 1:1'"); expect(p.parse("2.. Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: '2.. Мојс 1:1'"); expect(p.parse("II. Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II. Мојс 1:1'"); expect(p.parse("2. Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: '2. Мојс 1:1'"); expect(p.parse("II Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II Мојс 1:1'"); expect(p.parse("Егзодус 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Егзодус 1:1'"); expect(p.parse("Излазак 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Излазак 1:1'"); expect(p.parse("2 Мојс 1:1").osis()).toEqual("Exod.1.1", "parsing: '2 Мојс 1:1'"); expect(p.parse("Exod 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Exod 1:1'"); expect(p.parse("Изл 1:1").osis()).toEqual("Exod.1.1", "parsing: 'Изл 1:1'"); p.include_apocrypha(false); expect(p.parse("ДРУГА МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: 'ДРУГА МОЈСИЈЕВА 1:1'"); expect(p.parse("2.. МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: '2.. МОЈСИЈЕВА 1:1'"); expect(p.parse("II. МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II. МОЈСИЈЕВА 1:1'"); expect(p.parse("2. МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: '2. МОЈСИЈЕВА 1:1'"); expect(p.parse("II МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II МОЈСИЈЕВА 1:1'"); expect(p.parse("2 МОЈСИЈЕВА 1:1").osis()).toEqual("Exod.1.1", "parsing: '2 МОЈСИЈЕВА 1:1'"); expect(p.parse("ДРУГА МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: 'ДРУГА МОЈС 1:1'"); expect(p.parse("2.. МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: '2.. МОЈС 1:1'"); expect(p.parse("II. МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II. МОЈС 1:1'"); expect(p.parse("2. МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: '2. МОЈС 1:1'"); expect(p.parse("II МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: 'II МОЈС 1:1'"); expect(p.parse("ЕГЗОДУС 1:1").osis()).toEqual("Exod.1.1", "parsing: 'ЕГЗОДУС 1:1'"); expect(p.parse("ИЗЛАЗАК 1:1").osis()).toEqual("Exod.1.1", "parsing: 'ИЗЛАЗАК 1:1'"); expect(p.parse("2 МОЈС 1:1").osis()).toEqual("Exod.1.1", "parsing: '2 МОЈС 1:1'"); expect(p.parse("EXOD 1:1").osis()).toEqual("Exod.1.1", "parsing: 'EXOD 1:1'"); expect(p.parse("ИЗЛ 1:1").osis()).toEqual("Exod.1.1", "parsing: 'ИЗЛ 1:1'"); }); }); describe("Localized book Bel (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Bel (sr)", function () { expect(p.parse("Bel 1:1").osis()).toEqual("Bel.1.1", "parsing: 'Bel 1:1'"); }); }); describe("Localized book Lev (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Lev (sr)", function () { expect(p.parse("Трећом Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Трећом Мојсијева 1:1'"); expect(p.parse("Трећа Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Трећа Мојсијева 1:1'"); expect(p.parse("III. Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III. Мојсијева 1:1'"); expect(p.parse("3.. Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: '3.. Мојсијева 1:1'"); expect(p.parse("III Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III Мојсијева 1:1'"); expect(p.parse("3. Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: '3. Мојсијева 1:1'"); expect(p.parse("3 Мојсијева 1:1").osis()).toEqual("Lev.1.1", "parsing: '3 Мојсијева 1:1'"); expect(p.parse("Трећом Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Трећом Мојс 1:1'"); expect(p.parse("Трећа Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Трећа Мојс 1:1'"); expect(p.parse("III. Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III. Мојс 1:1'"); expect(p.parse("3.. Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: '3.. Мојс 1:1'"); expect(p.parse("III Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III Мојс 1:1'"); expect(p.parse("Левитска 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Левитска 1:1'"); expect(p.parse("3. Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: '3. Мојс 1:1'"); expect(p.parse("3 Мојс 1:1").osis()).toEqual("Lev.1.1", "parsing: '3 Мојс 1:1'"); expect(p.parse("Lev 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Lev 1:1'"); expect(p.parse("Лев 1:1").osis()).toEqual("Lev.1.1", "parsing: 'Лев 1:1'"); p.include_apocrypha(false); expect(p.parse("ТРЕЋОМ МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ТРЕЋОМ МОЈСИЈЕВА 1:1'"); expect(p.parse("ТРЕЋА МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ТРЕЋА МОЈСИЈЕВА 1:1'"); expect(p.parse("III. МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III. МОЈСИЈЕВА 1:1'"); expect(p.parse("3.. МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: '3.. МОЈСИЈЕВА 1:1'"); expect(p.parse("III МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III МОЈСИЈЕВА 1:1'"); expect(p.parse("3. МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: '3. МОЈСИЈЕВА 1:1'"); expect(p.parse("3 МОЈСИЈЕВА 1:1").osis()).toEqual("Lev.1.1", "parsing: '3 МОЈСИЈЕВА 1:1'"); expect(p.parse("ТРЕЋОМ МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ТРЕЋОМ МОЈС 1:1'"); expect(p.parse("ТРЕЋА МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ТРЕЋА МОЈС 1:1'"); expect(p.parse("III. МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III. МОЈС 1:1'"); expect(p.parse("3.. МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: '3.. МОЈС 1:1'"); expect(p.parse("III МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: 'III МОЈС 1:1'"); expect(p.parse("ЛЕВИТСКА 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ЛЕВИТСКА 1:1'"); expect(p.parse("3. МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: '3. МОЈС 1:1'"); expect(p.parse("3 МОЈС 1:1").osis()).toEqual("Lev.1.1", "parsing: '3 МОЈС 1:1'"); expect(p.parse("LEV 1:1").osis()).toEqual("Lev.1.1", "parsing: 'LEV 1:1'"); expect(p.parse("ЛЕВ 1:1").osis()).toEqual("Lev.1.1", "parsing: 'ЛЕВ 1:1'"); }); }); describe("Localized book Num (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Num (sr)", function () { expect(p.parse("Четврта Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: 'Четврта Мојсијева 1:1'"); expect(p.parse("4.. Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: '4.. Мојсијева 1:1'"); expect(p.parse("IV. Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV. Мојсијева 1:1'"); expect(p.parse("4. Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: '4. Мојсијева 1:1'"); expect(p.parse("IV Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV Мојсијева 1:1'"); expect(p.parse("Четврта Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: 'Четврта Мојс 1:1'"); expect(p.parse("4 Мојсијева 1:1").osis()).toEqual("Num.1.1", "parsing: '4 Мојсијева 1:1'"); expect(p.parse("4.. Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: '4.. Мојс 1:1'"); expect(p.parse("IV. Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV. Мојс 1:1'"); expect(p.parse("4. Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: '4. Мојс 1:1'"); expect(p.parse("IV Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV Мојс 1:1'"); expect(p.parse("Бројеви 1:1").osis()).toEqual("Num.1.1", "parsing: 'Бројеви 1:1'"); expect(p.parse("4 Мојс 1:1").osis()).toEqual("Num.1.1", "parsing: '4 Мојс 1:1'"); expect(p.parse("Num 1:1").osis()).toEqual("Num.1.1", "parsing: 'Num 1:1'"); expect(p.parse("Бр 1:1").osis()).toEqual("Num.1.1", "parsing: 'Бр 1:1'"); p.include_apocrypha(false); expect(p.parse("ЧЕТВРТА МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: 'ЧЕТВРТА МОЈСИЈЕВА 1:1'"); expect(p.parse("4.. МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: '4.. МОЈСИЈЕВА 1:1'"); expect(p.parse("IV. МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV. МОЈСИЈЕВА 1:1'"); expect(p.parse("4. МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: '4. МОЈСИЈЕВА 1:1'"); expect(p.parse("IV МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV МОЈСИЈЕВА 1:1'"); expect(p.parse("ЧЕТВРТА МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: 'ЧЕТВРТА МОЈС 1:1'"); expect(p.parse("4 МОЈСИЈЕВА 1:1").osis()).toEqual("Num.1.1", "parsing: '4 МОЈСИЈЕВА 1:1'"); expect(p.parse("4.. МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: '4.. МОЈС 1:1'"); expect(p.parse("IV. МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV. МОЈС 1:1'"); expect(p.parse("4. МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: '4. МОЈС 1:1'"); expect(p.parse("IV МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: 'IV МОЈС 1:1'"); expect(p.parse("БРОЈЕВИ 1:1").osis()).toEqual("Num.1.1", "parsing: 'БРОЈЕВИ 1:1'"); expect(p.parse("4 МОЈС 1:1").osis()).toEqual("Num.1.1", "parsing: '4 МОЈС 1:1'"); expect(p.parse("NUM 1:1").osis()).toEqual("Num.1.1", "parsing: 'NUM 1:1'"); expect(p.parse("БР 1:1").osis()).toEqual("Num.1.1", "parsing: 'БР 1:1'"); }); }); describe("Localized book Sir (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Sir (sr)", function () { expect(p.parse("Премудрости Исуса сина Сирахова 1:1").osis()).toEqual("Sir.1.1", "parsing: 'Премудрости Исуса сина Сирахова 1:1'"); expect(p.parse("Еклезијастикус 1:1").osis()).toEqual("Sir.1.1", "parsing: 'Еклезијастикус 1:1'"); expect(p.parse("Сирина 1:1").osis()).toEqual("Sir.1.1", "parsing: 'Сирина 1:1'"); expect(p.parse("Sir 1:1").osis()).toEqual("Sir.1.1", "parsing: 'Sir 1:1'"); expect(p.parse("ИсС 1:1").osis()).toEqual("Sir.1.1", "parsing: 'ИсС 1:1'"); expect(p.parse("Сир 1:1").osis()).toEqual("Sir.1.1", "parsing: 'Сир 1:1'"); }); }); describe("Localized book Wis (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Wis (sr)", function () { expect(p.parse("Премудорсти Соломонове 1:1").osis()).toEqual("Wis.1.1", "parsing: 'Премудорсти Соломонове 1:1'"); expect(p.parse("Мудрости Соломонове 1:1").osis()).toEqual("Wis.1.1", "parsing: 'Мудрости Соломонове 1:1'"); expect(p.parse("Мудрости 1:1").osis()).toEqual("Wis.1.1", "parsing: 'Мудрости 1:1'"); expect(p.parse("Прем Сол 1:1").osis()).toEqual("Wis.1.1", "parsing: 'Прем Сол 1:1'"); expect(p.parse("Wis 1:1").osis()).toEqual("Wis.1.1", "parsing: 'Wis 1:1'"); }); }); describe("Localized book Lam (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Lam (sr)", function () { expect(p.parse("Плач Јеремијин 1:1").osis()).toEqual("Lam.1.1", "parsing: 'Плач Јеремијин 1:1'"); expect(p.parse("Плач 1:1").osis()).toEqual("Lam.1.1", "parsing: 'Плач 1:1'"); expect(p.parse("Lam 1:1").osis()).toEqual("Lam.1.1", "parsing: 'Lam 1:1'"); p.include_apocrypha(false); expect(p.parse("ПЛАЧ ЈЕРЕМИЈИН 1:1").osis()).toEqual("Lam.1.1", "parsing: 'ПЛАЧ ЈЕРЕМИЈИН 1:1'"); expect(p.parse("ПЛАЧ 1:1").osis()).toEqual("Lam.1.1", "parsing: 'ПЛАЧ 1:1'"); expect(p.parse("LAM 1:1").osis()).toEqual("Lam.1.1", "parsing: 'LAM 1:1'"); }); }); describe("Localized book EpJer (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: EpJer (sr)", function () { expect(p.parse("Посланица Јеремијина 1:1").osis()).toEqual("EpJer.1.1", "parsing: 'Посланица Јеремијина 1:1'"); expect(p.parse("Писма Јеремије 1:1").osis()).toEqual("EpJer.1.1", "parsing: 'Писма Јеремије 1:1'"); expect(p.parse("EpJer 1:1").osis()).toEqual("EpJer.1.1", "parsing: 'EpJer 1:1'"); }); }); describe("Localized book Rev (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Rev (sr)", function () { expect(p.parse("Откривење Јованово 1:1").osis()).toEqual("Rev.1.1", "parsing: 'Откривење Јованово 1:1'"); expect(p.parse("Откровење Јованово 1:1").osis()).toEqual("Rev.1.1", "parsing: 'Откровење Јованово 1:1'"); expect(p.parse("Откривење 1:1").osis()).toEqual("Rev.1.1", "parsing: 'Откривење 1:1'"); expect(p.parse("Rev 1:1").osis()).toEqual("Rev.1.1", "parsing: 'Rev 1:1'"); expect(p.parse("Отк 1:1").osis()).toEqual("Rev.1.1", "parsing: 'Отк 1:1'"); p.include_apocrypha(false); expect(p.parse("ОТКРИВЕЊЕ ЈОВАНОВО 1:1").osis()).toEqual("Rev.1.1", "parsing: 'ОТКРИВЕЊЕ ЈОВАНОВО 1:1'"); expect(p.parse("ОТКРОВЕЊЕ ЈОВАНОВО 1:1").osis()).toEqual("Rev.1.1", "parsing: 'ОТКРОВЕЊЕ ЈОВАНОВО 1:1'"); expect(p.parse("ОТКРИВЕЊЕ 1:1").osis()).toEqual("Rev.1.1", "parsing: 'ОТКРИВЕЊЕ 1:1'"); expect(p.parse("REV 1:1").osis()).toEqual("Rev.1.1", "parsing: 'REV 1:1'"); expect(p.parse("ОТК 1:1").osis()).toEqual("Rev.1.1", "parsing: 'ОТК 1:1'"); }); }); describe("Localized book PrMan (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: PrMan (sr)", function () { expect(p.parse("Молитва Манасијина 1:1").osis()).toEqual("PrMan.1.1", "parsing: 'Молитва Манасијина 1:1'"); expect(p.parse("PrMan 1:1").osis()).toEqual("PrMan.1.1", "parsing: 'PrMan 1:1'"); }); }); describe("Localized book Deut (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Deut (sr)", function () { expect(p.parse("Поновљени закони 1:1").osis()).toEqual("Deut.1.1", "parsing: 'Поновљени закони 1:1'"); expect(p.parse("Пета Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: 'Пета Мојсијева 1:1'"); expect(p.parse("5.. Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: '5.. Мојсијева 1:1'"); expect(p.parse("5. Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: '5. Мојсијева 1:1'"); expect(p.parse("V. Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V. Мојсијева 1:1'"); expect(p.parse("5 Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: '5 Мојсијева 1:1'"); expect(p.parse("V Мојсијева 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V Мојсијева 1:1'"); expect(p.parse("Пета Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: 'Пета Мојс 1:1'"); expect(p.parse("5.. Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: '5.. Мојс 1:1'"); expect(p.parse("5. Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: '5. Мојс 1:1'"); expect(p.parse("V. Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V. Мојс 1:1'"); expect(p.parse("5 Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: '5 Мојс 1:1'"); expect(p.parse("V Мојс 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V Мојс 1:1'"); expect(p.parse("Deut 1:1").osis()).toEqual("Deut.1.1", "parsing: 'Deut 1:1'"); expect(p.parse("Понз 1:1").osis()).toEqual("Deut.1.1", "parsing: 'Понз 1:1'"); p.include_apocrypha(false); expect(p.parse("ПОНОВЉЕНИ ЗАКОНИ 1:1").osis()).toEqual("Deut.1.1", "parsing: 'ПОНОВЉЕНИ ЗАКОНИ 1:1'"); expect(p.parse("ПЕТА МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: 'ПЕТА МОЈСИЈЕВА 1:1'"); expect(p.parse("5.. МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: '5.. МОЈСИЈЕВА 1:1'"); expect(p.parse("5. МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: '5. МОЈСИЈЕВА 1:1'"); expect(p.parse("V. МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V. МОЈСИЈЕВА 1:1'"); expect(p.parse("5 МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: '5 МОЈСИЈЕВА 1:1'"); expect(p.parse("V МОЈСИЈЕВА 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V МОЈСИЈЕВА 1:1'"); expect(p.parse("ПЕТА МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: 'ПЕТА МОЈС 1:1'"); expect(p.parse("5.. МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: '5.. МОЈС 1:1'"); expect(p.parse("5. МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: '5. МОЈС 1:1'"); expect(p.parse("V. МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V. МОЈС 1:1'"); expect(p.parse("5 МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: '5 МОЈС 1:1'"); expect(p.parse("V МОЈС 1:1").osis()).toEqual("Deut.1.1", "parsing: 'V МОЈС 1:1'"); expect(p.parse("DEUT 1:1").osis()).toEqual("Deut.1.1", "parsing: 'DEUT 1:1'"); expect(p.parse("ПОНЗ 1:1").osis()).toEqual("Deut.1.1", "parsing: 'ПОНЗ 1:1'"); }); }); describe("Localized book Josh (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Josh (sr)", function () { expect(p.parse("Исус Навин 1:1").osis()).toEqual("Josh.1.1", "parsing: 'Исус Навин 1:1'"); expect(p.parse("Josh 1:1").osis()).toEqual("Josh.1.1", "parsing: 'Josh 1:1'"); expect(p.parse("ИНав 1:1").osis()).toEqual("Josh.1.1", "parsing: 'ИНав 1:1'"); p.include_apocrypha(false); expect(p.parse("ИСУС НАВИН 1:1").osis()).toEqual("Josh.1.1", "parsing: 'ИСУС НАВИН 1:1'"); expect(p.parse("JOSH 1:1").osis()).toEqual("Josh.1.1", "parsing: 'JOSH 1:1'"); expect(p.parse("ИНАВ 1:1").osis()).toEqual("Josh.1.1", "parsing: 'ИНАВ 1:1'"); }); }); describe("Localized book Judg (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Judg (sr)", function () { expect(p.parse("Судија 1:1").osis()).toEqual("Judg.1.1", "parsing: 'Судија 1:1'"); expect(p.parse("Судије 1:1").osis()).toEqual("Judg.1.1", "parsing: 'Судије 1:1'"); expect(p.parse("Judg 1:1").osis()).toEqual("Judg.1.1", "parsing: 'Judg 1:1'"); expect(p.parse("Суд 1:1").osis()).toEqual("Judg.1.1", "parsing: 'Суд 1:1'"); p.include_apocrypha(false); expect(p.parse("СУДИЈА 1:1").osis()).toEqual("Judg.1.1", "parsing: 'СУДИЈА 1:1'"); expect(p.parse("СУДИЈЕ 1:1").osis()).toEqual("Judg.1.1", "parsing: 'СУДИЈЕ 1:1'"); expect(p.parse("JUDG 1:1").osis()).toEqual("Judg.1.1", "parsing: 'JUDG 1:1'"); expect(p.parse("СУД 1:1").osis()).toEqual("Judg.1.1", "parsing: 'СУД 1:1'"); }); }); describe("Localized book Ruth (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Ruth (sr)", function () { expect(p.parse("Ruth 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'Ruth 1:1'"); expect(p.parse("Рута 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'Рута 1:1'"); expect(p.parse("Рут 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'Рут 1:1'"); p.include_apocrypha(false); expect(p.parse("RUTH 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'RUTH 1:1'"); expect(p.parse("РУТА 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'РУТА 1:1'"); expect(p.parse("РУТ 1:1").osis()).toEqual("Ruth.1.1", "parsing: 'РУТ 1:1'"); }); }); describe("Localized book 1Esd (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 1Esd (sr)", function () { expect(p.parse("Прва Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'Прва Јездрина 1:1'"); expect(p.parse("1.. Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1.. Јездрина 1:1'"); expect(p.parse("Прва Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'Прва Ездрина 1:1'"); expect(p.parse("1. Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1. Јездрина 1:1'"); expect(p.parse("1.. Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1.. Ездрина 1:1'"); expect(p.parse("I. Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'I. Јездрина 1:1'"); expect(p.parse("1 Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1 Јездрина 1:1'"); expect(p.parse("1. Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1. Ездрина 1:1'"); expect(p.parse("I Јездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'I Јездрина 1:1'"); expect(p.parse("I. Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'I. Ездрина 1:1'"); expect(p.parse("1 Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1 Ездрина 1:1'"); expect(p.parse("I Ездрина 1:1").osis()).toEqual("1Esd.1.1", "parsing: 'I Ездрина 1:1'"); expect(p.parse("1 Јез 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1 Јез 1:1'"); expect(p.parse("1Esd 1:1").osis()).toEqual("1Esd.1.1", "parsing: '1Esd 1:1'"); }); }); describe("Localized book 2Esd (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 2Esd (sr)", function () { expect(p.parse("Друга Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'Друга Јездрина 1:1'"); expect(p.parse("Друга Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'Друга Ездрина 1:1'"); expect(p.parse("2.. Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2.. Јездрина 1:1'"); expect(p.parse("II. Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'II. Јездрина 1:1'"); expect(p.parse("2. Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2. Јездрина 1:1'"); expect(p.parse("2.. Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2.. Ездрина 1:1'"); expect(p.parse("II Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'II Јездрина 1:1'"); expect(p.parse("II. Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'II. Ездрина 1:1'"); expect(p.parse("2 Јездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2 Јездрина 1:1'"); expect(p.parse("2. Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2. Ездрина 1:1'"); expect(p.parse("II Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: 'II Ездрина 1:1'"); expect(p.parse("2 Ездрина 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2 Ездрина 1:1'"); expect(p.parse("2 Јез 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2 Јез 1:1'"); expect(p.parse("2Esd 1:1").osis()).toEqual("2Esd.1.1", "parsing: '2Esd 1:1'"); }); }); describe("Localized book Isa (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: Isa (sr)", function () { expect(p.parse("Исаија 1:1").osis()).toEqual("Isa.1.1", "parsing: 'Исаија 1:1'"); expect(p.parse("Isa 1:1").osis()).toEqual("Isa.1.1", "parsing: 'Isa 1:1'"); expect(p.parse("Ис 1:1").osis()).toEqual("Isa.1.1", "parsing: 'Ис 1:1'"); p.include_apocrypha(false); expect(p.parse("ИСАИЈА 1:1").osis()).toEqual("Isa.1.1", "parsing: 'ИСАИЈА 1:1'"); expect(p.parse("ISA 1:1").osis()).toEqual("Isa.1.1", "parsing: 'ISA 1:1'"); expect(p.parse("ИС 1:1").osis()).toEqual("Isa.1.1", "parsing: 'ИС 1:1'"); }); }); describe("Localized book 2Sam (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 2Sam (sr)", function () { expect(p.parse("Друга Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'Друга Самуилова 1:1'"); expect(p.parse("Друга краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'Друга краљевима 1:1'"); expect(p.parse("2.. Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2.. Самуилова 1:1'"); expect(p.parse("2.. краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2.. краљевима 1:1'"); expect(p.parse("II. Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II. Самуилова 1:1'"); expect(p.parse("II. краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II. краљевима 1:1'"); expect(p.parse("2. Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2. Самуилова 1:1'"); expect(p.parse("2. краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2. краљевима 1:1'"); expect(p.parse("II Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II Самуилова 1:1'"); expect(p.parse("II краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II краљевима 1:1'"); expect(p.parse("2 Самуилова 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 Самуилова 1:1'"); expect(p.parse("2 краљевима 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 краљевима 1:1'"); expect(p.parse("2 Сам 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 Сам 1:1'"); expect(p.parse("2Sam 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2Sam 1:1'"); p.include_apocrypha(false); expect(p.parse("ДРУГА САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'ДРУГА САМУИЛОВА 1:1'"); expect(p.parse("ДРУГА КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'ДРУГА КРАЉЕВИМА 1:1'"); expect(p.parse("2.. САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2.. САМУИЛОВА 1:1'"); expect(p.parse("2.. КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2.. КРАЉЕВИМА 1:1'"); expect(p.parse("II. САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II. САМУИЛОВА 1:1'"); expect(p.parse("II. КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II. КРАЉЕВИМА 1:1'"); expect(p.parse("2. САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2. САМУИЛОВА 1:1'"); expect(p.parse("2. КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2. КРАЉЕВИМА 1:1'"); expect(p.parse("II САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II САМУИЛОВА 1:1'"); expect(p.parse("II КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: 'II КРАЉЕВИМА 1:1'"); expect(p.parse("2 САМУИЛОВА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 САМУИЛОВА 1:1'"); expect(p.parse("2 КРАЉЕВИМА 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 КРАЉЕВИМА 1:1'"); expect(p.parse("2 САМ 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2 САМ 1:1'"); expect(p.parse("2SAM 1:1").osis()).toEqual("2Sam.1.1", "parsing: '2SAM 1:1'"); }); }); describe("Localized book 1Sam (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 1Sam (sr)", function () { expect(p.parse("Прва Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'Прва Самуилова 1:1'"); expect(p.parse("Прва краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'Прва краљевима 1:1'"); expect(p.parse("1.. Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1.. Самуилова 1:1'"); expect(p.parse("1.. краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1.. краљевима 1:1'"); expect(p.parse("1. Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1. Самуилова 1:1'"); expect(p.parse("1. краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1. краљевима 1:1'"); expect(p.parse("I. Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I. Самуилова 1:1'"); expect(p.parse("I. краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I. краљевима 1:1'"); expect(p.parse("1 Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 Самуилова 1:1'"); expect(p.parse("1 краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 краљевима 1:1'"); expect(p.parse("I Самуилова 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I Самуилова 1:1'"); expect(p.parse("I краљевима 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I краљевима 1:1'"); expect(p.parse("1 Сам 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 Сам 1:1'"); expect(p.parse("1Sam 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1Sam 1:1'"); p.include_apocrypha(false); expect(p.parse("ПРВА САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'ПРВА САМУИЛОВА 1:1'"); expect(p.parse("ПРВА КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'ПРВА КРАЉЕВИМА 1:1'"); expect(p.parse("1.. САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1.. САМУИЛОВА 1:1'"); expect(p.parse("1.. КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1.. КРАЉЕВИМА 1:1'"); expect(p.parse("1. САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1. САМУИЛОВА 1:1'"); expect(p.parse("1. КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1. КРАЉЕВИМА 1:1'"); expect(p.parse("I. САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I. САМУИЛОВА 1:1'"); expect(p.parse("I. КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I. КРАЉЕВИМА 1:1'"); expect(p.parse("1 САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 САМУИЛОВА 1:1'"); expect(p.parse("1 КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 КРАЉЕВИМА 1:1'"); expect(p.parse("I САМУИЛОВА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I САМУИЛОВА 1:1'"); expect(p.parse("I КРАЉЕВИМА 1:1").osis()).toEqual("1Sam.1.1", "parsing: 'I КРАЉЕВИМА 1:1'"); expect(p.parse("1 САМ 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1 САМ 1:1'"); expect(p.parse("1SAM 1:1").osis()).toEqual("1Sam.1.1", "parsing: '1SAM 1:1'"); }); }); describe("Localized book 2Kgs (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 2Kgs (sr)", function () { expect(p.parse("Четврта краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'Четврта краљевства 1:1'"); expect(p.parse("Четврта краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'Четврта краљевима 1:1'"); expect(p.parse("Друга о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'Друга о царевима 1:1'"); expect(p.parse("2.. о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. о царевима 1:1'"); expect(p.parse("4.. краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4.. краљевства 1:1'"); expect(p.parse("II. о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. о царевима 1:1'"); expect(p.parse("IV. краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV. краљевства 1:1'"); expect(p.parse("2. о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. о царевима 1:1'"); expect(p.parse("4. краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4. краљевства 1:1'"); expect(p.parse("4.. краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4.. краљевима 1:1'"); expect(p.parse("II о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II о царевима 1:1'"); expect(p.parse("IV краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV краљевства 1:1'"); expect(p.parse("IV. краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV. краљевима 1:1'"); expect(p.parse("Друга краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'Друга краљева 1:1'"); expect(p.parse("2 о царевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 о царевима 1:1'"); expect(p.parse("4 краљевства 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4 краљевства 1:1'"); expect(p.parse("4. краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4. краљевима 1:1'"); expect(p.parse("IV краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV краљевима 1:1'"); expect(p.parse("Друга Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'Друга Царева 1:1'"); expect(p.parse("2.. краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. краљева 1:1'"); expect(p.parse("4 краљевима 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4 краљевима 1:1'"); expect(p.parse("II. краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. краљева 1:1'"); expect(p.parse("2. краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. краљева 1:1'"); expect(p.parse("2.. Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. Царева 1:1'"); expect(p.parse("II краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II краљева 1:1'"); expect(p.parse("II. Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. Царева 1:1'"); expect(p.parse("2 краљева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 краљева 1:1'"); expect(p.parse("2. Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. Царева 1:1'"); expect(p.parse("II Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II Царева 1:1'"); expect(p.parse("2 Царева 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 Царева 1:1'"); expect(p.parse("2 Цар 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 Цар 1:1'"); expect(p.parse("2Kgs 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2Kgs 1:1'"); p.include_apocrypha(false); expect(p.parse("ЧЕТВРТА КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'ЧЕТВРТА КРАЉЕВСТВА 1:1'"); expect(p.parse("ЧЕТВРТА КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'ЧЕТВРТА КРАЉЕВИМА 1:1'"); expect(p.parse("ДРУГА О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'ДРУГА О ЦАРЕВИМА 1:1'"); expect(p.parse("2.. О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. О ЦАРЕВИМА 1:1'"); expect(p.parse("4.. КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4.. КРАЉЕВСТВА 1:1'"); expect(p.parse("II. О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. О ЦАРЕВИМА 1:1'"); expect(p.parse("IV. КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV. КРАЉЕВСТВА 1:1'"); expect(p.parse("2. О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. О ЦАРЕВИМА 1:1'"); expect(p.parse("4. КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4. КРАЉЕВСТВА 1:1'"); expect(p.parse("4.. КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4.. КРАЉЕВИМА 1:1'"); expect(p.parse("II О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II О ЦАРЕВИМА 1:1'"); expect(p.parse("IV КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV КРАЉЕВСТВА 1:1'"); expect(p.parse("IV. КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV. КРАЉЕВИМА 1:1'"); expect(p.parse("ДРУГА КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'ДРУГА КРАЉЕВА 1:1'"); expect(p.parse("2 О ЦАРЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 О ЦАРЕВИМА 1:1'"); expect(p.parse("4 КРАЉЕВСТВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4 КРАЉЕВСТВА 1:1'"); expect(p.parse("4. КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4. КРАЉЕВИМА 1:1'"); expect(p.parse("IV КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'IV КРАЉЕВИМА 1:1'"); expect(p.parse("ДРУГА ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'ДРУГА ЦАРЕВА 1:1'"); expect(p.parse("2.. КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. КРАЉЕВА 1:1'"); expect(p.parse("4 КРАЉЕВИМА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '4 КРАЉЕВИМА 1:1'"); expect(p.parse("II. КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. КРАЉЕВА 1:1'"); expect(p.parse("2. КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. КРАЉЕВА 1:1'"); expect(p.parse("2.. ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2.. ЦАРЕВА 1:1'"); expect(p.parse("II КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II КРАЉЕВА 1:1'"); expect(p.parse("II. ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II. ЦАРЕВА 1:1'"); expect(p.parse("2 КРАЉЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 КРАЉЕВА 1:1'"); expect(p.parse("2. ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2. ЦАРЕВА 1:1'"); expect(p.parse("II ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: 'II ЦАРЕВА 1:1'"); expect(p.parse("2 ЦАРЕВА 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 ЦАРЕВА 1:1'"); expect(p.parse("2 ЦАР 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2 ЦАР 1:1'"); expect(p.parse("2KGS 1:1").osis()).toEqual("2Kgs.1.1", "parsing: '2KGS 1:1'"); }); }); describe("Localized book 1Kgs (sr)", function () { let p = {}; beforeEach(function () { p = new bcv_parser; p.set_options({ book_alone_strategy: "ignore", book_sequence_strategy: "ignore", osis_compaction_strategy: "bc", captive_end_digits_strategy: "delete" }); p.include_apocrypha(true); }); it("should handle book: 1Kgs (sr)", function () { expect(p.parse("Трећом краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Трећом краљевства 1:1'"); expect(p.parse("Трећа краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Трећа краљевства 1:1'"); expect(p.parse("Трећом краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Трећом краљевима 1:1'"); expect(p.parse("III. краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'III. краљевства 1:1'"); expect(p.parse("Прва о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Прва о царевима 1:1'"); expect(p.parse("Трећа краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Трећа краљевима 1:1'"); expect(p.parse("1.. о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '1.. о царевима 1:1'"); expect(p.parse("3.. краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '3.. краљевства 1:1'"); expect(p.parse("III краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'III краљевства 1:1'"); expect(p.parse("III. краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'III. краљевима 1:1'"); expect(p.parse("1. о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '1. о царевима 1:1'"); expect(p.parse("3. краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '3. краљевства 1:1'"); expect(p.parse("3.. краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '3.. краљевима 1:1'"); expect(p.parse("I. о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'I. о царевима 1:1'"); expect(p.parse("III краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'III краљевима 1:1'"); expect(p.parse("1 о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '1 о царевима 1:1'"); expect(p.parse("3 краљевства 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '3 краљевства 1:1'"); expect(p.parse("3. краљевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: '3. краљевима 1:1'"); expect(p.parse("I о царевима 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'I о царевима 1:1'"); expect(p.parse("Прва краљева 1:1").osis()).toEqual("1Kgs.1.1", "parsing: 'Прва краљева 1:1'");