A bevy of MFHD bug fixes (and test cases)
authordbwells <dbwells@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 13 May 2011 16:02:18 +0000 (16:02 +0000)
committerdbwells <dbwells@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 13 May 2011 16:02:18 +0000 (16:02 +0000)
commit1ad1542b3f11ddc847718d848d9ed7aee910b589
tree549e5bb567c1a4ac3f2c3a1c5b5647a3de0dd6aa
parent162202d1d8c3ea88868cdf8db7b56a4469835ffa
A bevy of MFHD bug fixes (and test cases)

1) Remove hard-coded 'gap' text from format_part()
2) Honor $ypm## for chron_to_date() for annuals
3) Removed overly simple check on $w as digit
4) Allow for combined chronologies other than 2nd level
5) Make calendar changes trump $u counts
6) Honor issue restarts at calendar changes
7) Rudimentary support of $u counts for non-restarting issue numbering
8) Special interpretation of $yps for early winters (i.e. winter is the first season of the calendar year)
9) Teach chron_to_date() about early winters

The last two points deserve some special attention.  A large number of journals consider 'Winter' to be the first season of the year, so Winter 2011 means (roughly) January 2011, not December 2011.  However, there is no explicit way to indicate this in the standard, and also the code relies in many ways on the fact that 24 (chronology code for winter) is greater than 21 (code for spring).  To work around this, we are interpreting a certain ambiguous pattern in a particular way.  Specifically, if you set $w to a digit, then set $y to 'ps24,21,22,23' (or some variation with '24' as the first value), you will get this winter-first behavior.  Also, the season is treated internally as '20' then converted to '24' when processing is completed.

git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_2_1@20471 dcc99617-32d9-48b4-a31d-7c20da2025e4
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/Caption.pm
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/Date.pm
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/Holding.pm
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/test/mfhd.t
Open-ILS/src/perlmods/lib/OpenILS/Utils/MFHD/test/mfhddata.txt