Skip to content

Commit

Permalink
Test: changed order to match IntervalNum instances
Browse files Browse the repository at this point in the history
  • Loading branch information
basvandijk committed Jul 22, 2021
1 parent e21c760 commit 55e3302
Showing 1 changed file with 45 additions and 45 deletions.
90 changes: 45 additions & 45 deletions Test/Test.hs
Expand Up @@ -1264,24 +1264,27 @@ testForUpdate = do
it "Returns same rows from a table" $
testH (OL.forUpdate table1Q) (`shouldBe` table1data)

testAddIntervalFromTimestamptzToTimestamptz :: Test
testAddIntervalFromTimestamptzToTimestamptz = do
it "timestamptz + interval = timestamptz" $ testH query (`shouldBe` [expectation])
where query :: Select (Field O.SqlTimestamptz)
query = pure $ (O.toFields t :: Field O.SqlTimestamptz)
testAddIntervalFromDateToTimestamptz :: Test
testAddIntervalFromDateToTimestamptz = do
it "date + interval = timestamptz" $ testH query (`shouldBe` [expectation])
where query :: Select (Field O.SqlTimestamp)
query = pure $ (O.toFields d :: Field O.SqlDate)
`O.addInterval`
(O.toFields c :: Field O.SqlInterval)

-- UNIX epoch
t :: Time.UTCTime
t = Time.posixSecondsToUTCTime 0
d :: Time.Day
d = Time.ModifiedJulianDay 0 -- = 1858-11-17

-- 1 second
c :: Time.CalendarDiffTime
c = Time.calendarTimeTime 1

expectation :: Time.UTCTime
expectation = Time.ctTime c `Time.addUTCTime` t
expectation :: Time.LocalTime
expectation = Time.ctTime c `Time.addLocalTime`
Time.LocalTime
{ Time.localDay = d
, Time.localTimeOfDay = Time.TimeOfDay 0 0 0
}

testAddIntervalFromIntervalToInterval :: Test
testAddIntervalFromIntervalToInterval = do
Expand All @@ -1302,27 +1305,45 @@ testAddIntervalFromIntervalToInterval = do
expectation :: Time.CalendarDiffTime
expectation = Time.calendarTimeTime $ Time.ctTime c1 + Time.ctTime c2

testAddIntervalFromDateToTimestamptz :: Test
testAddIntervalFromDateToTimestamptz = do
it "date + interval = timestamptz" $ testH query (`shouldBe` [expectation])
testAddIntervalFromTimestampToTimestamp :: Test
testAddIntervalFromTimestampToTimestamp = do
it "timestamp + interval = timestamp" $ testH query (`shouldBe` [expectation])
where query :: Select (Field O.SqlTimestamp)
query = pure $ (O.toFields d :: Field O.SqlDate)
query = pure $ (O.toFields t :: Field O.SqlTimestamp)
`O.addInterval`
(O.toFields c :: Field O.SqlInterval)

d :: Time.Day
d = Time.ModifiedJulianDay 0 -- = 1858-11-17
t :: Time.LocalTime
t = Time.LocalTime
{ Time.localDay = Time.ModifiedJulianDay 0 -- = 1858-11-17
, Time.localTimeOfDay = Time.TimeOfDay 0 0 0 -- midnight
}

-- 1 second
c :: Time.CalendarDiffTime
c = Time.calendarTimeTime 1

expectation :: Time.LocalTime
expectation = Time.ctTime c `Time.addLocalTime`
Time.LocalTime
{ Time.localDay = d
, Time.localTimeOfDay = Time.TimeOfDay 0 0 0
}
expectation = Time.ctTime c `Time.addLocalTime` t

testAddIntervalFromTimestamptzToTimestamptz :: Test
testAddIntervalFromTimestamptzToTimestamptz = do
it "timestamptz + interval = timestamptz" $ testH query (`shouldBe` [expectation])
where query :: Select (Field O.SqlTimestamptz)
query = pure $ (O.toFields t :: Field O.SqlTimestamptz)
`O.addInterval`
(O.toFields c :: Field O.SqlInterval)

-- UNIX epoch
t :: Time.UTCTime
t = Time.posixSecondsToUTCTime 0

-- 1 second
c :: Time.CalendarDiffTime
c = Time.calendarTimeTime 1

expectation :: Time.UTCTime
expectation = Time.ctTime c `Time.addUTCTime` t

testAddIntervalFromTimeToTime :: Test
testAddIntervalFromTimeToTime = do
Expand All @@ -1345,27 +1366,6 @@ testAddIntervalFromTimeToTime = do
(realToFrac (Time.ctTime c :: Time.NominalDiffTime) :: Time.DiffTime)
+ Time.timeOfDayToTime t

testAddIntervalFromTimestampToTimestamp :: Test
testAddIntervalFromTimestampToTimestamp = do
it "timestamp + interval = timestamp" $ testH query (`shouldBe` [expectation])
where query :: Select (Field O.SqlTimestamp)
query = pure $ (O.toFields t :: Field O.SqlTimestamp)
`O.addInterval`
(O.toFields c :: Field O.SqlInterval)

t :: Time.LocalTime
t = Time.LocalTime
{ Time.localDay = Time.ModifiedJulianDay 0 -- = 1858-11-17
, Time.localTimeOfDay = Time.TimeOfDay 0 0 0 -- midnight
}

-- 1 second
c :: Time.CalendarDiffTime
c = Time.calendarTimeTime 1

expectation :: Time.LocalTime
expectation = Time.ctTime c `Time.addLocalTime` t

main :: IO ()
main = do
let envVarName = "POSTGRES_CONNSTRING"
Expand Down Expand Up @@ -1523,8 +1523,8 @@ main = do
describe "Locking" $ do
testForUpdate
describe "Interval" $ do
testAddIntervalFromTimestamptzToTimestamptz
testAddIntervalFromIntervalToInterval
testAddIntervalFromDateToTimestamptz
testAddIntervalFromTimeToTime
testAddIntervalFromIntervalToInterval
testAddIntervalFromTimestampToTimestamp
testAddIntervalFromTimestamptzToTimestamptz
testAddIntervalFromTimeToTime

0 comments on commit 55e3302

Please sign in to comment.