51 lines
2.4 KiB
Clojure
51 lines
2.4 KiB
Clojure
(ns mw-engine.heightmap-test
|
|
(:use clojure.java.io)
|
|
(:require [clojure.test :refer :all]
|
|
[mw-engine.heightmap :refer :all]
|
|
[mw-engine.world :as world :only [make-world]]
|
|
[clojure.math.combinatorics :as combo]))
|
|
|
|
(deftest apply-heightmap-test
|
|
(testing "Heightmap functionality"
|
|
(let [world (apply-heightmap "resources/heightmaps/test9x9.png")
|
|
altitudes (map #(:altitude %) (flatten world))
|
|
gradients (map #(:gradient %) (flatten world))]
|
|
(is (= (count world) 9) "World should be 9x9")
|
|
(is (= (count (first world)) 9) "World should be 9x9")
|
|
(is (= (count (remove nil? altitudes)) 81)
|
|
"All cells should have altitude")
|
|
(is (= (count (remove nil? gradients)) 81)
|
|
"All cells should have gradient")
|
|
(is (> (apply max altitudes)
|
|
(apply min altitudes))
|
|
"There should be a range of altitudes")
|
|
(is (> (apply + gradients) 0)
|
|
"At least some gradients must be positive, none should be negative"))
|
|
;; alternate means of making the world, same tests.
|
|
(let [world (apply-heightmap (world/make-world 9 9) "resources/heightmaps/test9x9.png")
|
|
altitudes (map #(:altitude %) (flatten world))
|
|
gradients (map #(:gradient %) (flatten world))]
|
|
(is (= (count world) 9) "World should be 9x9")
|
|
(is (= (count (first world)) 9) "World should be 9x9")
|
|
(is (= (count (remove nil? altitudes)) 81)
|
|
"All cells should have altitude")
|
|
(is (= (count (remove nil? gradients)) 81)
|
|
"All cells should have gradient")
|
|
(is (> (apply max altitudes)
|
|
(apply min altitudes))
|
|
"There should be a range of altitudes")
|
|
(is (> (apply + gradients) 0)
|
|
"At least some gradients must be positive, none should be negative")
|
|
)))
|
|
|
|
|
|
|
|
(deftest apply-valuemap-test
|
|
(testing "Valuemap functionality"
|
|
(let [image "resources/heightmaps/test9x9.png"
|
|
world (apply-valuemap (apply-heightmap image) image :arbitrary)
|
|
altitudes (map #(:altitude %) (flatten world))
|
|
arbitraries (map #(:arbitrary %) (flatten world))]
|
|
(is (= altitudes arbitraries) "Altitudes and arbitraries are derived from same map so should be identical.")
|
|
)))
|