-- Simple unit test to test time zones

dofile("../timecore.lua")

SUMMERTIME_OFFSET=2
WINTERTIME_OFFSET=1

-- This functions expects to be executed in Germany, 
-- so resultingHourDiff is 1 in wintertime
-- and 2 in summertime
function checkTime(yearIn, monthIn, dayIn, hourIn, minutesIn, secondsIn,dowIn, resultingHourDiff)
    -- Generate a time struct from the given parameter
    time = {}
    time.year = yearIn
    time.month = monthIn
    time.day = dayIn
    time.hour = hourIn
    time.minute = minutesIn
    time.second = secondsIn
    time.dow = dowIn
    -- the test itself
    local summerTime = isSummerTime(time)
    if ((resultingHourDiff == SUMMERTIME_OFFSET and not (summerTime == true)) or (resultingHourDiff == WINTERTIME_OFFSET and not (summerTime == false))) then
        print(yearIn .. "-" .. string.format("%0.2d", monthIn) .. "-" .. string.format("%0.2d", dayIn) .. " " .. string.format("%0.2d", hourIn) .. ":" .. string.format("%0.2d", minutesIn) .. ":" .. string.format("%0.2d", secondsIn) .. " (dow:" .. dowIn .. ") was not GMT+" .. resultingHourDiff .. "  ( summer time was " .. tostring(summerTime) .. ")" )
        os.exit(1)
    else
        print(yearIn .. "-" .. string.format("%0.2d", monthIn) .. "-" .. string.format("%0.2d", dayIn) .. " " .. string.format("%0.2d", hourIn) .. ":" .. string.format("%0.2d", minutesIn) .. ":" .. string.format("%0.2d", secondsIn) .. " summertime is " .. tostring(summerTime) .. " (GMT+" .. resultingHourDiff .. ")" )
    end
end