test_weekofyear.sh 757 Bytes
#!/bin/bash

# this just takes php's date() function as a reference to check if week of year
# is calculated correctly in the range from 1970 .. 2038 by brute force...

SEQ="seq"
SYSTEM=`uname`
if [ "$SYSTEM" = "Darwin" ]; then
	SEQ="jot"
fi

for YEAR in {1970..2038}; do
  for MONTH in {1..12}; do
    DAYS=$(cal $MONTH $YEAR | egrep "28|29|30|31" |tail -1 |awk '{print $NF}')
    for DAY in $( $SEQ $DAYS ); do
      DATE=$YEAR-$MONTH-$DAY
      echo -n $DATE ...
      NODEVAL=$(node test_weekofyear.js $DATE)
      PHPVAL=$(php -r "echo intval(date('W', strtotime('$DATE')));")
      if [ "$NODEVAL" -ne "$PHPVAL" ]; then
        echo "MISMATCH: node: $NODEVAL vs php: $PHPVAL for date $DATE"
      else
        echo " OK"
      fi
    done
  done
done