prop/test/microwaveprop/rover/elevation_test.exs

41 lines
1.1 KiB
Elixir

defmodule Microwaveprop.Rover.ElevationTest do
use ExUnit.Case, async: false
alias Microwaveprop.Rover.Elevation
setup do
tmp = Path.join(System.tmp_dir!(), "rover_elev_#{System.unique_integer([:positive])}")
File.mkdir_p!(tmp)
prev = Application.get_env(:microwaveprop, :srtm_tiles_dir)
Application.put_env(:microwaveprop, :srtm_tiles_dir, tmp)
on_exit(fn ->
File.rm_rf!(tmp)
if prev do
Application.put_env(:microwaveprop, :srtm_tiles_dir, prev)
else
Application.delete_env(:microwaveprop, :srtm_tiles_dir)
end
end)
:ok
end
describe "lookup_many/1" do
test "returns map keyed by {lat, lon}, nil values when no tiles available" do
points = [{33.0, -96.0}, {30.0, -97.0}]
result = Elevation.lookup_many(points)
assert is_map(result)
assert Map.has_key?(result, {33.0, -96.0})
assert Map.has_key?(result, {30.0, -97.0})
assert result[{33.0, -96.0}] == nil
assert result[{30.0, -97.0}] == nil
end
test "empty list returns empty map" do
assert Elevation.lookup_many([]) == %{}
end
end
end