Start tests for timepicker functions. Test timezoneOffsetNumber() and fix seeming deviation from intent, although not in a likely meaningful way.
Expand timezoneOffsetNumber() docs
Test timepicker.timezoneOffsetString(). Fix lower range issue and simplify formatting of output string by eliminating 'magic' 101 values.
Fix some jsdoc.
Test timepicker.log()
Test timepicker.timezoneAdjust()
Minor simplification of timepicker.timezoneAdjust(). Left the addition of the negation of date.getTimezoneOffset() to make it clear that we need to reverse its sense. Just representing it as straight subtraction might be mathematically simpler and marginally more performant, but would fail to suggest this important detail.
Test the callers of timepicker.handleRange. The tests are a bit implementational, but that's all the methods under test do.
Doco fix.
Simplify range convenience function tests.
Add placeholder for handleRange, but I'm not quite ready to tackle that one yet.
Expose splitDateTime for testing.
Tests for splitDateTime, except for error paths.
Expose parseDateTimeInternal for testing. I'm going to test it even though I haven't tested its datepicker collaborator functions.
Tests for parseDateTimeInternal(). The exception test found a bug.
Fix parseDateTimeInternal() bug. The parsers returned false. The function tested for null with typed equality. Changed to test for falsiness.
Refactored parseDateTimeInternal() to make it a little simpler to read and test.
Now that the basic time and date parsing functions are test protected, make splitDateTime() return an object instead of an array to simplify the code a bit.
Eliminate an unused intermediate variable.
Refactor the effective setting computations out of splitDateTime()