Added some tests.
This commit is contained in:
parent
930608a8e9
commit
84170a58b6
2 changed files with 85 additions and 5 deletions
|
@ -2,13 +2,31 @@ module Tests exposing (..)
|
||||||
|
|
||||||
import Test exposing (..)
|
import Test exposing (..)
|
||||||
import Expect
|
import Expect
|
||||||
import AnimationHelpers exposing (calculateAnimation)
|
import AnimationHelpers exposing (calculateAnimation, movePosition, distanceFromSpeed, fmod)
|
||||||
|
|
||||||
|
|
||||||
|
trimFloatX : Int -> Float -> Float
|
||||||
|
trimFloatX precision num =
|
||||||
|
((num * toFloat (10 ^ precision)) |> round |> toFloat) / toFloat (10 ^ precision)
|
||||||
|
|
||||||
|
|
||||||
|
trimTupleX : Int -> ( Float, Float ) -> ( Float, Float )
|
||||||
|
trimTupleX precision ( first, second ) =
|
||||||
|
( trimFloatX precision first, trimFloatX precision second )
|
||||||
|
|
||||||
|
|
||||||
|
trimFloat1 =
|
||||||
|
trimFloatX 1
|
||||||
|
|
||||||
|
|
||||||
|
trimTuple1 =
|
||||||
|
trimTupleX 1
|
||||||
|
|
||||||
|
|
||||||
all : Test
|
all : Test
|
||||||
all =
|
all =
|
||||||
describe "Elmman Test Suite"
|
describe "Elmman Test Suite"
|
||||||
[ describe "Player logic tests"
|
[ describe "Animations frame mapping function"
|
||||||
[ test "Animation frame calculations" <|
|
[ test "Animation frame calculations" <|
|
||||||
\() ->
|
\() ->
|
||||||
Expect.equal (calculateAnimation 100 500 ( 0, 200 )) 40
|
Expect.equal (calculateAnimation 100 500 ( 0, 200 )) 40
|
||||||
|
@ -18,14 +36,75 @@ all =
|
||||||
, test "Animation frame calculations 3" <|
|
, test "Animation frame calculations 3" <|
|
||||||
\() ->
|
\() ->
|
||||||
Expect.equal (calculateAnimation 501 500 ( 0, 200 )) 0
|
Expect.equal (calculateAnimation 501 500 ( 0, 200 )) 0
|
||||||
, test "Animation frame calculations 4" <|
|
, test "Animation frame calculations with increased range" <|
|
||||||
\() ->
|
\() ->
|
||||||
Expect.equal (calculateAnimation 500 500 ( 100, 300 )) 300
|
Expect.equal (calculateAnimation 500 500 ( 100, 300 )) 300
|
||||||
, test "Animation frame calculations 5" <|
|
, test "Animation frame calculations with increased range 2" <|
|
||||||
\() ->
|
\() ->
|
||||||
Expect.equal (calculateAnimation 100 500 ( 100, 300 )) 140
|
Expect.equal (calculateAnimation 100 500 ( 100, 300 )) 140
|
||||||
, test "Animation frame calculations 6" <|
|
, test "Animation frame calculations with negative range" <|
|
||||||
\() ->
|
\() ->
|
||||||
Expect.equal (calculateAnimation 100 500 ( -100, 100 )) -60
|
Expect.equal (calculateAnimation 100 500 ( -100, 100 )) -60
|
||||||
]
|
]
|
||||||
|
, describe "Position movement function"
|
||||||
|
[ test "Move 45 degrees 10 units" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimTuple1 (movePosition ( 0, 0 ) 45 10))
|
||||||
|
( 7.1, 7.1 )
|
||||||
|
, test "Move 45 degrees 200 units from 10,10" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimTuple1 (movePosition ( 10, 10 ) 45 200))
|
||||||
|
( 151.4, 151.4 )
|
||||||
|
, test "Move 158 degrees 200 units" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimTuple1 (movePosition ( 0, 0 ) 158 200))
|
||||||
|
( -185.4, 74.9 )
|
||||||
|
, test "Move 360 degrees 200 units" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimTuple1 (movePosition ( 0, 0 ) 360 200))
|
||||||
|
( 200, 0 )
|
||||||
|
, test "Move 312 degrees 150 units" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimTuple1 (movePosition ( 0, 0 ) 312 150))
|
||||||
|
( 100.4, -111.5 )
|
||||||
|
]
|
||||||
|
, describe "convert speed/time to distance function"
|
||||||
|
[ test "speed 200u/s for 4ms" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimFloat1 (distanceFromSpeed 200 4))
|
||||||
|
0.8
|
||||||
|
, test "speed 2000u/s for 1ms" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(distanceFromSpeed 2000 1)
|
||||||
|
2
|
||||||
|
, test "speed 1 u/s for 1ms" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(distanceFromSpeed 1 1)
|
||||||
|
0.001
|
||||||
|
, test "speed 1 u/s for 1000ms" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(distanceFromSpeed 1 1000)
|
||||||
|
1
|
||||||
|
]
|
||||||
|
, describe "modulus for float"
|
||||||
|
[ test "10.15 % 9" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(trimFloatX 2 (fmod 10.15 9))
|
||||||
|
1.15
|
||||||
|
, test "51934 % 123" <|
|
||||||
|
\() ->
|
||||||
|
Expect.equal
|
||||||
|
(fmod 51934 123)
|
||||||
|
28
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
"elm-community/json-extra": "2.3.0 <= v < 3.0.0",
|
"elm-community/json-extra": "2.3.0 <= v < 3.0.0",
|
||||||
"elm-lang/core": "5.0.0 <= v < 6.0.0",
|
"elm-lang/core": "5.0.0 <= v < 6.0.0",
|
||||||
"elm-lang/html": "2.0.0 <= v < 3.0.0",
|
"elm-lang/html": "2.0.0 <= v < 3.0.0",
|
||||||
|
"folkertdev/svg-path-dsl": "2.0.0 <= v < 3.0.0",
|
||||||
"mgold/elm-random-pcg": "5.0.0 <= v < 6.0.0",
|
"mgold/elm-random-pcg": "5.0.0 <= v < 6.0.0",
|
||||||
"rtfeldman/node-test-runner": "3.0.0 <= v < 4.0.0"
|
"rtfeldman/node-test-runner": "3.0.0 <= v < 4.0.0"
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue