29 lines
862 B
Ruby
29 lines
862 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "minitest/autorun"
|
|
require "tmpdir"
|
|
require "zip"
|
|
require "moon_model"
|
|
|
|
module TestData
|
|
def make_data(path, width: 16, height: 8)
|
|
elevations = Array.new(width * height) { |i| ((i % width) - width / 2) * 20 }
|
|
reflectance = Array.new(width * height) { |i| (255.0 * (i % width) / (width - 1)).round }
|
|
header = { "format_version" => 1, "title" => "test data", "width" => width, "height" => height,
|
|
"elevation_offset_range_m" => elevations.minmax }
|
|
encoded = JSON.generate(header)
|
|
Zlib::GzipWriter.open(path) do |gzip|
|
|
gzip.write(MoonModel::DataSet::MAGIC)
|
|
gzip.write([encoded.bytesize].pack("L<"))
|
|
gzip.write(encoded)
|
|
gzip.write(elevations.pack("s<*"))
|
|
gzip.write(reflectance.pack("C*"))
|
|
end
|
|
path
|
|
end
|
|
end
|
|
|
|
class Minitest::Test
|
|
include TestData
|
|
end
|