UNPKG

sc-voice

Version:
324 lines (293 loc) 10.6 kB
(typeof describe === 'function') && describe("sutta-duration", function() { const should = require("should"); const fs = require('fs'); const path = require('path'); const { logger } = require('log-instance'); const { ScApi } = require('suttacentral-api'); const { SuttaDuration, Sutta, SuttaFactory, SuttaStore, } = require("../index"); const scApi = new ScApi(); const TOLERANCE = 33; const logLevel = false; this.timeout(10*1000); function testTolerance(actual, expected, e = TOLERANCE) { should(actual).above(expected-e); should(actual).below(expected+e); } it("constructor", function() { var scd = new SuttaDuration(); should(scd.name).equal('amy'); }); it("measure(sutta, lang) measures thag1.2", async()=>{ var store = await new SuttaStore({logLevel}).initialize(); var sutta = await store.loadSutta('thag1.2'); var factory = new SuttaFactory({logLevel}); sutta = factory.sectionSutta(sutta); var scd = new SuttaDuration(); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 259, lang: 'en', nSegments: 9, nSections: 2, nEmptySegments: 0, }); testTolerance(resMeasure.seconds, 24); }); it("measure(sutta, lang) measures thig1.1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('thig1.1'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 342, lang: 'en', nSegments: 9, nEmptySegments: 0, nSections: 3, }); testTolerance(resMeasure.seconds, 31); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn2.2", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn2.2'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 354, lang: 'en', nSegments: 9, nEmptySegments: 0, nSections: 2, }); testTolerance(resMeasure.seconds, 31); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures thig5.1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('thig5.1'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 722, lang: 'en', nSegments: 27, nEmptySegments: 2, nSections: 3, }); testTolerance(resMeasure.seconds, 69); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn1.1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn1.1'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 938, lang: 'en', nSegments: 20, nEmptySegments: 1, nSections: 2, }); testTolerance(resMeasure.seconds, 85); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn56.21", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn56.21'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 1097, lang: 'en', nSegments: 23, nEmptySegments: 1, nSections: 2, }); testTolerance(resMeasure.seconds, 111); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures thag9.1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('thag9.1'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 1779, lang: 'en', nSegments: 48, nSections: 3, nEmptySegments: 8, }); testTolerance(resMeasure.seconds, 168); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn36.11", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn36.11'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 2998, lang: 'en', nSegments: 50, nEmptySegments: 4, nSections: 2, }); testTolerance(resMeasure.seconds, 270); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn42.11", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn42.11'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 3315, lang: 'en', nSegments: 55, nEmptySegments: 1, nSections: 2, }); testTolerance(resMeasure.seconds, 292); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures an2.1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('an2.1'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 6564, lang: 'en', nSegments: 124, nEmptySegments: 25, nSections: 11, }); testTolerance(resMeasure.seconds, 596); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures sn12.51", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('sn12.51'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 6789, lang: 'en', nSegments: 92, nEmptySegments: 1, nSections: 2, }); testTolerance(resMeasure.seconds, 719); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures dn33", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('dn33'); sutta = factory.sectionSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 84664, lang: 'en', nSegments: 1158, nEmptySegments: 38, nSections: 12, }); testTolerance(resMeasure.seconds, 7418); done(); } catch(e) { done(e); } })(); }); it("measure(sutta, lang) measures mn1", function(done) { (async function() { try { var factory = await new SuttaFactory({ scApi, }).initialize(); var scd = new SuttaDuration(); var sutta = await factory.loadSutta('mn1'); sutta = factory.sectionSutta(sutta); // unexpanded var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 14238, lang: 'en', nSegments: 334, nSections: 2, nEmptySegments: 9, }); testTolerance(resMeasure.seconds, 1250); // expanded sutta = factory.expandSutta(sutta); var resMeasure = scd.measure(sutta); should(resMeasure).properties({ text: 76661, lang: 'en', nSegments: 840, nSections: 10, nEmptySegments: 9, }); testTolerance(resMeasure.seconds, 12051); done(); } catch(e) { done(e); } })(); }); });