f37d0f75c0
Implement ToJSON and FromJSON for all of the various pieces of the game state, and add a pair of functions saveGame/loadGame implementing a prism to save the game as zlib-compressed JSON. To test this, there's now Arbitrary, CoArbitrary, and Function instances for all the parts of the game state - to get around circular imports with the concrete entities this unfortunately is happening via orphan instances, plus an hs-boot file to break a circular import that was just a little too hard to remove by moving things around. Ugh.
30 lines
911 B
Haskell
30 lines
911 B
Haskell
import Test.Prelude
|
|
import qualified Xanthous.Data.EntityMapSpec
|
|
import qualified Xanthous.DataSpec
|
|
import qualified Xanthous.EntitiesSpec
|
|
import qualified Xanthous.Entities.RawsSpec
|
|
import qualified Xanthous.GameSpec
|
|
import qualified Xanthous.Generators.UtilSpec
|
|
import qualified Xanthous.MessageSpec
|
|
import qualified Xanthous.OrphansSpec
|
|
import qualified Xanthous.UtilSpec
|
|
import qualified Xanthous.Util.GraphicsSpec
|
|
import qualified Xanthous.Util.InflectionSpec
|
|
|
|
main :: IO ()
|
|
main = defaultMain test
|
|
|
|
test :: TestTree
|
|
test = testGroup "Xanthous"
|
|
[ Xanthous.Data.EntityMapSpec.test
|
|
, Xanthous.EntitiesSpec.test
|
|
, Xanthous.Entities.RawsSpec.test
|
|
, Xanthous.GameSpec.test
|
|
, Xanthous.Generators.UtilSpec.test
|
|
, Xanthous.MessageSpec.test
|
|
, Xanthous.OrphansSpec.test
|
|
, Xanthous.DataSpec.test
|
|
, Xanthous.UtilSpec.test
|
|
, Xanthous.Util.GraphicsSpec.test
|
|
, Xanthous.Util.InflectionSpec.test
|
|
]
|