Add PTZ nudges, configurable monitoring wall and lunar family dates
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
'use strict';
|
||||
const test=require('node:test'),assert=require('node:assert/strict'),cal=require('./web/calendar.js');
|
||||
test('Spring Festival and leap month are bidirectional',()=>{
|
||||
assert.deepEqual(cal.lunar('2024-02-10'),{year:2024,month:1,day:1,leap:false});
|
||||
assert.equal(cal.solar('2024-01-01'),'2024-02-10');
|
||||
assert.deepEqual(cal.lunar('2023-03-22'),{year:2023,month:2,day:1,leap:true});
|
||||
assert.equal(cal.solar('2023-02-01',true),'2023-03-22');
|
||||
assert.equal(cal.solar('2023-02-01',false),'2023-02-20');
|
||||
});
|
||||
test('all days across a leap year round trip',()=>{
|
||||
for(let n=0;n<366;n++){const s=new Date(Date.UTC(2024,0,1+n,12)).toISOString().slice(0,10),l=cal.lunar(s);assert.equal(cal.solar(cal.iso(l),l.leap),s);}
|
||||
});
|
||||
test('invalid dates, nonexistent leap months and range are explicit',()=>{
|
||||
for(const s of ['2026-02-30','2026-13-01','bad'])assert.throws(()=>cal.solarDate(s));
|
||||
assert.throws(()=>cal.solar('2024-02-01',true));assert.throws(()=>cal.solar('2024-12-31'));assert.throws(()=>cal.lunar('1800-01-01'));
|
||||
assert.equal(cal.describe('1800-01-01'),'1800-01-01(公历)');
|
||||
});
|
||||
Reference in New Issue
Block a user