rasterio/tests/test_rio_sample.py
Sean Gillies a807d1bd51 Closes #282.
At the heart of this was a subtle indexing error due to calling
round() instead of math.floor(). Fixing that needed a cascade of
fixes to expectated values in various tests.

Finally, core logic in the merge command was rewritten for
correctness and clarity.
2015-03-11 15:11:52 -06:00

82 lines
2.1 KiB
Python

import logging
import sys
import click
from click.testing import CliRunner
import rasterio
from rasterio.rio import sample
logging.basicConfig(stream=sys.stderr, level=logging.DEBUG)
def test_sample_err():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['bogus.tif'],
"[220650.0, 2719200.0]")
assert result.exit_code == 1
def test_sample_stdin():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif'],
"[220650.0, 2719200.0]\n[220650.0, 2719200.0]",
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[18, 25, 14]\n[18, 25, 14]'
def test_sample_arg():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif', "[220650.0, 2719200.0]"],
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[18, 25, 14]'
def test_sample_bidx():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif', '--bidx', '1,2', "[220650.0, 2719200.0]"],
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[18, 25]'
def test_sample_bidx2():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif', '--bidx', '1..2', "[220650.0, 2719200.0]"],
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[18, 25]'
def test_sample_bidx3():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif', '--bidx', '..2', "[220650.0, 2719200.0]"],
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[18, 25]'
def test_sample_bidx4():
runner = CliRunner()
result = runner.invoke(
sample.sample,
['tests/data/RGB.byte.tif', '--bidx', '3', "[220650.0, 2719200.0]"],
catch_exceptions=False)
assert result.exit_code == 0
assert result.output.strip() == '[14]'