Awesome
test_BokkyPooBahsDateTimeLibrary
Testing https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary using:
Parity 1.11.1 testnet (parity --no-persistent-txqueue --chain dev)
Ruby 2.4.2p198 on Windows 10, using the Ethereum.rb gem
Note that the number of requests handled by the Parity node was less than 100 per second, which limits the extent of testing possible.
Test Result
Code review: no issues identified
Testing: all tests passed, no errors were found
== exhaustive tests
[1] BPBDTL_ymd.rb -- 4 functions
Functions exhaustively tested from 1970 to 2286:
- _isLeapYear
- _getDaysInMonth
- _daysFromDate
- timestampFromDate
[2] BPBDTL_days_to_date.rb -- 1 function
Function exhaustively tested from 1970-01-01 to 2298-07-20:
- _daysToDate
== tests using random data
[1] BPBDTL_ts.rb - 13 functions
Random time points between 1970-01-01 (0) and 2298-07-20 (10_000_000_000).
- timestampToDate
- timestamp_to_date_time
- isLeapYear
- isWeekDay
- isWeekEnd
- getDaysInMonth
- getDayOfWeek
- getYear
- getMonth
- getDay
- getHour
- getMinute
- getSecond
First pass: checked each function 200_000 times
[2] BPBDTL_ts2.rb - 6 functions
Random time points between 1970-01-01 (0) and 2298-07-20 (10_000_000_000).
- diffYears
- diffMonths
- diffDays
- diffHours
- diffMinutes
- diffSeconds
First pass: checked each function 200_000 times
[3] BPDTL_timestamp_from_date_time.rb - 1 function
Random DateTime points between 1970-01-01 and 2299-12-31 23:59:59
- timestampFromDateTime
First pass: checked 120_000 times
[4] BPBDTL_add_sub.rb - 12 functions
Adding to / subtracting from random time points between 1970-01-01 (0) and 2298-07-20 (10_000_000_000).
Adding / subtracting time periods of approximately 0-299 years
- addYears
- addMonths
- addDays
- addHours
- addMinutes
- addSeconds
- subYears
- subMonths
- subDays
- subHours
- subMinutes
- subSeconds
First pass: checked each function 100_000 times
Note: also checking that subtractions resulting in a date before 1970-01-01 00:00:00