diff --git a/.travis.yml b/.travis.yml index 93ba621..36a3462 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,7 +21,7 @@ env: - PIP_FIND_LINKS=file://$HOME/.cache/pip/wheels python: - - "2.7" + - "3.6" addons: apt: diff --git a/supermercado/edge_finder.py b/supermercado/edge_finder.py index 6d7a378..d1e88c7 100644 --- a/supermercado/edge_finder.py +++ b/supermercado/edge_finder.py @@ -23,7 +23,7 @@ def findedges(inputtiles, parsenames): # Using the indices to roll + stack the array, find the minimum along the rolled / stacked axis xys_edge = (np.min(np.dstack(( np.roll(np.roll(burn, i[0], 0), i[1], 1) for i in idxs - )), axis=2) - burn) + )), axis=2) ^ burn) # Set missed non-tiles to False xys_edge[burn == False] = False diff --git a/supermercado/scripts/cli.py b/supermercado/scripts/cli.py index 9a63c2d..d202b6e 100644 --- a/supermercado/scripts/cli.py +++ b/supermercado/scripts/cli.py @@ -1,4 +1,8 @@ -import click, json +import re +import json +import itertools + +import click import cligj from supermercado import edge_finder, uniontiles, burntiles, super_utils @@ -7,7 +11,8 @@ def cli(): pass -@click.command('edges') + +@cli.command('edges', short_help="Return edge tiles for a stream of [, , ] tiles.") @click.argument('inputtiles', default='-', required=False) @click.option('--parsenames', is_flag=True) def edges(inputtiles, parsenames): @@ -25,9 +30,8 @@ def edges(inputtiles, parsenames): for t in tiles: click.echo(t.tolist()) -cli.add_command(edges) -@click.command('union') +@cli.command('union', short_help="Returns the unioned shape of a stream of [, , ] tiles") @click.argument('inputtiles', default='-', required=False) @click.option('--parsenames', is_flag=True) def union(inputtiles, parsenames): @@ -42,22 +46,43 @@ def union(inputtiles, parsenames): for u in unioned: click.echo(json.dumps(u)) -cli.add_command(union) +class zoomCustomType(click.ParamType): + """Custom zoom type.""" + + name = "zoom" + + def convert(self, value, param, ctx): + """Validate and parse band index.""" + try: + assert re.match(r"^[0-9]+(..[0-9]+)?$", value) + zooms = list(map(int, value.split(".."))) + assert all(z > 0 for z in zooms) + return min(zooms), max(zooms) + + except (AssertionError): + raise click.ClickException( + "zoom must be a integer or a 'min..max' string " + "representing a zoom range, e.g. 9..12" + ) -@click.command('burn') + +@cli.command('burn') @cligj.features_in_arg @cligj.sequence_opt -@click.argument('zoom', type=int) +@click.argument( + 'zoom', + type=zoomCustomType() +) def burn(features, sequence, zoom): """ Burn a stream of GeoJSONs into a output stream of the tiles they intersect for a given zoom. """ features = [f for f in super_utils.filter_polygons(features)] - tiles = burntiles.burn(features, zoom) - for t in tiles: - click.echo(t.tolist()) + tiles = ( + burntiles.burn(features, zoom) for zoom in range(zoom[0], zoom[1] + 1) + ) - -cli.add_command(burn) \ No newline at end of file + for t in itertools.chain.from_iterable(tiles): + click.echo(t.tolist()) diff --git a/tests/expected/burned_range.txt b/tests/expected/burned_range.txt new file mode 100644 index 0000000..be72ff4 --- /dev/null +++ b/tests/expected/burned_range.txt @@ -0,0 +1,2393 @@ +[78, 178, 9] +[79, 178, 9] +[80, 178, 9] +[81, 178, 9] +[82, 178, 9] +[83, 178, 9] +[84, 178, 9] +[85, 178, 9] +[86, 178, 9] +[87, 178, 9] +[88, 178, 9] +[98, 178, 9] +[99, 178, 9] +[77, 179, 9] +[78, 179, 9] +[79, 179, 9] +[80, 179, 9] +[81, 179, 9] +[82, 179, 9] +[83, 179, 9] +[84, 179, 9] +[85, 179, 9] +[86, 179, 9] +[96, 179, 9] +[97, 179, 9] +[98, 179, 9] +[99, 179, 9] +[100, 179, 9] +[76, 180, 9] +[77, 180, 9] +[78, 180, 9] +[79, 180, 9] +[80, 180, 9] +[81, 180, 9] +[82, 180, 9] +[83, 180, 9] +[84, 180, 9] +[95, 180, 9] +[96, 180, 9] +[97, 180, 9] +[98, 180, 9] +[99, 180, 9] +[100, 180, 9] +[103, 180, 9] +[104, 180, 9] +[105, 180, 9] +[106, 180, 9] +[107, 180, 9] +[108, 180, 9] +[76, 181, 9] +[77, 181, 9] +[78, 181, 9] +[79, 181, 9] +[80, 181, 9] +[81, 181, 9] +[82, 181, 9] +[94, 181, 9] +[95, 181, 9] +[96, 181, 9] +[97, 181, 9] +[98, 181, 9] +[99, 181, 9] +[100, 181, 9] +[101, 181, 9] +[102, 181, 9] +[103, 181, 9] +[104, 181, 9] +[105, 181, 9] +[106, 181, 9] +[107, 181, 9] +[75, 182, 9] +[76, 182, 9] +[77, 182, 9] +[78, 182, 9] +[79, 182, 9] +[80, 182, 9] +[89, 182, 9] +[90, 182, 9] +[91, 182, 9] +[95, 182, 9] +[96, 182, 9] +[97, 182, 9] +[98, 182, 9] +[99, 182, 9] +[100, 182, 9] +[101, 182, 9] +[102, 182, 9] +[103, 182, 9] +[104, 182, 9] +[105, 182, 9] +[106, 182, 9] +[109, 182, 9] +[74, 183, 9] +[75, 183, 9] +[76, 183, 9] +[77, 183, 9] +[78, 183, 9] +[79, 183, 9] +[81, 183, 9] +[87, 183, 9] +[88, 183, 9] +[89, 183, 9] +[90, 183, 9] +[91, 183, 9] +[93, 183, 9] +[94, 183, 9] +[95, 183, 9] +[96, 183, 9] +[97, 183, 9] +[98, 183, 9] +[99, 183, 9] +[100, 183, 9] +[101, 183, 9] +[103, 183, 9] +[104, 183, 9] +[105, 183, 9] +[106, 183, 9] +[108, 183, 9] +[109, 183, 9] +[75, 184, 9] +[76, 184, 9] +[77, 184, 9] +[78, 184, 9] +[79, 184, 9] +[81, 184, 9] +[82, 184, 9] +[83, 184, 9] +[85, 184, 9] +[86, 184, 9] +[87, 184, 9] +[88, 184, 9] +[89, 184, 9] +[90, 184, 9] +[91, 184, 9] +[92, 184, 9] +[93, 184, 9] +[94, 184, 9] +[95, 184, 9] +[96, 184, 9] +[97, 184, 9] +[98, 184, 9] +[99, 184, 9] +[100, 184, 9] +[101, 184, 9] +[102, 184, 9] +[103, 184, 9] +[104, 184, 9] +[105, 184, 9] +[108, 184, 9] +[109, 184, 9] +[110, 184, 9] +[75, 185, 9] +[76, 185, 9] +[77, 185, 9] +[78, 185, 9] +[79, 185, 9] +[83, 185, 9] +[84, 185, 9] +[85, 185, 9] +[86, 185, 9] +[87, 185, 9] +[88, 185, 9] +[89, 185, 9] +[90, 185, 9] +[91, 185, 9] +[92, 185, 9] +[93, 185, 9] +[94, 185, 9] +[95, 185, 9] +[96, 185, 9] +[97, 185, 9] +[98, 185, 9] +[99, 185, 9] +[100, 185, 9] +[101, 185, 9] +[102, 185, 9] +[104, 185, 9] +[107, 185, 9] +[108, 185, 9] +[109, 185, 9] +[110, 185, 9] +[75, 186, 9] +[76, 186, 9] +[77, 186, 9] +[78, 186, 9] +[79, 186, 9] +[84, 186, 9] +[85, 186, 9] +[86, 186, 9] +[87, 186, 9] +[88, 186, 9] +[89, 186, 9] +[90, 186, 9] +[91, 186, 9] +[92, 186, 9] +[93, 186, 9] +[94, 186, 9] +[95, 186, 9] +[96, 186, 9] +[97, 186, 9] +[98, 186, 9] +[99, 186, 9] +[100, 186, 9] +[101, 186, 9] +[102, 186, 9] +[103, 186, 9] +[107, 186, 9] +[108, 186, 9] +[109, 186, 9] +[110, 186, 9] +[111, 186, 9] +[76, 187, 9] +[77, 187, 9] +[78, 187, 9] +[79, 187, 9] +[80, 187, 9] +[81, 187, 9] +[86, 187, 9] +[87, 187, 9] +[88, 187, 9] +[89, 187, 9] +[90, 187, 9] +[91, 187, 9] +[92, 187, 9] +[93, 187, 9] +[94, 187, 9] +[95, 187, 9] +[96, 187, 9] +[97, 187, 9] +[98, 187, 9] +[99, 187, 9] +[100, 187, 9] +[101, 187, 9] +[102, 187, 9] +[103, 187, 9] +[104, 187, 9] +[107, 187, 9] +[108, 187, 9] +[109, 187, 9] +[110, 187, 9] +[111, 187, 9] +[76, 188, 9] +[77, 188, 9] +[78, 188, 9] +[79, 188, 9] +[80, 188, 9] +[81, 188, 9] +[82, 188, 9] +[83, 188, 9] +[87, 188, 9] +[88, 188, 9] +[89, 188, 9] +[90, 188, 9] +[91, 188, 9] +[92, 188, 9] +[93, 188, 9] +[94, 188, 9] +[95, 188, 9] +[96, 188, 9] +[97, 188, 9] +[98, 188, 9] +[99, 188, 9] +[100, 188, 9] +[101, 188, 9] +[102, 188, 9] +[103, 188, 9] +[104, 188, 9] +[107, 188, 9] +[108, 188, 9] +[109, 188, 9] +[110, 188, 9] +[111, 188, 9] +[112, 188, 9] +[78, 189, 9] +[79, 189, 9] +[80, 189, 9] +[81, 189, 9] +[82, 189, 9] +[83, 189, 9] +[84, 189, 9] +[89, 189, 9] +[90, 189, 9] +[92, 189, 9] +[93, 189, 9] +[94, 189, 9] +[95, 189, 9] +[96, 189, 9] +[97, 189, 9] +[98, 189, 9] +[100, 189, 9] +[101, 189, 9] +[102, 189, 9] +[103, 189, 9] +[104, 189, 9] +[105, 189, 9] +[108, 189, 9] +[109, 189, 9] +[110, 189, 9] +[111, 189, 9] +[112, 189, 9] +[79, 190, 9] +[80, 190, 9] +[81, 190, 9] +[82, 190, 9] +[83, 190, 9] +[84, 190, 9] +[85, 190, 9] +[86, 190, 9] +[91, 190, 9] +[92, 190, 9] +[93, 190, 9] +[94, 190, 9] +[95, 190, 9] +[96, 190, 9] +[97, 190, 9] +[98, 190, 9] +[101, 190, 9] +[102, 190, 9] +[103, 190, 9] +[104, 190, 9] +[105, 190, 9] +[107, 190, 9] +[108, 190, 9] +[109, 190, 9] +[110, 190, 9] +[111, 190, 9] +[112, 190, 9] +[81, 191, 9] +[82, 191, 9] +[83, 191, 9] +[84, 191, 9] +[85, 191, 9] +[86, 191, 9] +[87, 191, 9] +[89, 191, 9] +[90, 191, 9] +[91, 191, 9] +[92, 191, 9] +[93, 191, 9] +[94, 191, 9] +[95, 191, 9] +[96, 191, 9] +[97, 191, 9] +[98, 191, 9] +[102, 191, 9] +[103, 191, 9] +[107, 191, 9] +[108, 191, 9] +[109, 191, 9] +[110, 191, 9] +[111, 191, 9] +[82, 192, 9] +[83, 192, 9] +[84, 192, 9] +[85, 192, 9] +[86, 192, 9] +[88, 192, 9] +[89, 192, 9] +[90, 192, 9] +[91, 192, 9] +[92, 192, 9] +[93, 192, 9] +[94, 192, 9] +[95, 192, 9] +[96, 192, 9] +[97, 192, 9] +[107, 192, 9] +[108, 192, 9] +[109, 192, 9] +[110, 192, 9] +[111, 192, 9] +[81, 193, 9] +[82, 193, 9] +[83, 193, 9] +[84, 193, 9] +[85, 193, 9] +[86, 193, 9] +[87, 193, 9] +[88, 193, 9] +[89, 193, 9] +[90, 193, 9] +[91, 193, 9] +[92, 193, 9] +[93, 193, 9] +[94, 193, 9] +[95, 193, 9] +[96, 193, 9] +[97, 193, 9] +[106, 193, 9] +[107, 193, 9] +[108, 193, 9] +[109, 193, 9] +[110, 193, 9] +[80, 194, 9] +[81, 194, 9] +[82, 194, 9] +[83, 194, 9] +[84, 194, 9] +[85, 194, 9] +[86, 194, 9] +[87, 194, 9] +[88, 194, 9] +[89, 194, 9] +[90, 194, 9] +[91, 194, 9] +[93, 194, 9] +[94, 194, 9] +[95, 194, 9] +[96, 194, 9] +[106, 194, 9] +[107, 194, 9] +[108, 194, 9] +[109, 194, 9] +[110, 194, 9] +[79, 195, 9] +[80, 195, 9] +[81, 195, 9] +[82, 195, 9] +[83, 195, 9] +[84, 195, 9] +[85, 195, 9] +[86, 195, 9] +[87, 195, 9] +[88, 195, 9] +[89, 195, 9] +[90, 195, 9] +[92, 195, 9] +[93, 195, 9] +[94, 195, 9] +[95, 195, 9] +[96, 195, 9] +[97, 195, 9] +[98, 195, 9] +[99, 195, 9] +[100, 195, 9] +[101, 195, 9] +[102, 195, 9] +[103, 195, 9] +[104, 195, 9] +[105, 195, 9] +[106, 195, 9] +[107, 195, 9] +[108, 195, 9] +[109, 195, 9] +[110, 195, 9] +[79, 196, 9] +[80, 196, 9] +[81, 196, 9] +[82, 196, 9] +[83, 196, 9] +[84, 196, 9] +[85, 196, 9] +[86, 196, 9] +[87, 196, 9] +[88, 196, 9] +[89, 196, 9] +[92, 196, 9] +[93, 196, 9] +[94, 196, 9] +[95, 196, 9] +[96, 196, 9] +[97, 196, 9] +[98, 196, 9] +[99, 196, 9] +[100, 196, 9] +[101, 196, 9] +[102, 196, 9] +[103, 196, 9] +[104, 196, 9] +[105, 196, 9] +[106, 196, 9] +[107, 196, 9] +[108, 196, 9] +[109, 196, 9] +[81, 197, 9] +[82, 197, 9] +[83, 197, 9] +[84, 197, 9] +[85, 197, 9] +[86, 197, 9] +[87, 197, 9] +[88, 197, 9] +[92, 197, 9] +[93, 197, 9] +[94, 197, 9] +[95, 197, 9] +[96, 197, 9] +[97, 197, 9] +[98, 197, 9] +[99, 197, 9] +[100, 197, 9] +[101, 197, 9] +[102, 197, 9] +[103, 197, 9] +[104, 197, 9] +[105, 197, 9] +[106, 197, 9] +[107, 197, 9] +[108, 197, 9] +[109, 197, 9] +[85, 198, 9] +[86, 198, 9] +[93, 198, 9] +[94, 198, 9] +[95, 198, 9] +[96, 198, 9] +[97, 198, 9] +[98, 198, 9] +[99, 198, 9] +[100, 198, 9] +[101, 198, 9] +[102, 198, 9] +[103, 198, 9] +[104, 198, 9] +[105, 198, 9] +[106, 198, 9] +[107, 198, 9] +[108, 198, 9] +[94, 199, 9] +[95, 199, 9] +[96, 199, 9] +[97, 199, 9] +[98, 199, 9] +[99, 199, 9] +[100, 199, 9] +[101, 199, 9] +[102, 199, 9] +[103, 199, 9] +[104, 199, 9] +[105, 199, 9] +[106, 199, 9] +[107, 199, 9] +[108, 199, 9] +[95, 200, 9] +[96, 200, 9] +[97, 200, 9] +[98, 200, 9] +[99, 200, 9] +[100, 200, 9] +[101, 200, 9] +[102, 200, 9] +[103, 200, 9] +[158, 356, 10] +[159, 356, 10] +[160, 356, 10] +[161, 356, 10] +[162, 356, 10] +[163, 356, 10] +[164, 356, 10] +[165, 356, 10] +[166, 356, 10] +[167, 356, 10] +[168, 356, 10] +[169, 356, 10] +[170, 356, 10] +[171, 356, 10] +[172, 356, 10] +[173, 356, 10] +[174, 356, 10] +[175, 356, 10] +[176, 356, 10] +[157, 357, 10] +[158, 357, 10] +[159, 357, 10] +[160, 357, 10] +[161, 357, 10] +[162, 357, 10] +[163, 357, 10] +[164, 357, 10] +[165, 357, 10] +[166, 357, 10] +[167, 357, 10] +[168, 357, 10] +[169, 357, 10] +[170, 357, 10] +[171, 357, 10] +[172, 357, 10] +[173, 357, 10] +[174, 357, 10] +[175, 357, 10] +[197, 357, 10] +[198, 357, 10] +[199, 357, 10] +[156, 358, 10] +[157, 358, 10] +[158, 358, 10] +[159, 358, 10] +[160, 358, 10] +[161, 358, 10] +[162, 358, 10] +[163, 358, 10] +[164, 358, 10] +[165, 358, 10] +[166, 358, 10] +[167, 358, 10] +[168, 358, 10] +[169, 358, 10] +[170, 358, 10] +[171, 358, 10] +[172, 358, 10] +[173, 358, 10] +[195, 358, 10] +[196, 358, 10] +[197, 358, 10] +[198, 358, 10] +[199, 358, 10] +[155, 359, 10] +[156, 359, 10] +[157, 359, 10] +[158, 359, 10] +[159, 359, 10] +[160, 359, 10] +[161, 359, 10] +[162, 359, 10] +[163, 359, 10] +[164, 359, 10] +[165, 359, 10] +[166, 359, 10] +[167, 359, 10] +[168, 359, 10] +[169, 359, 10] +[170, 359, 10] +[171, 359, 10] +[193, 359, 10] +[194, 359, 10] +[195, 359, 10] +[196, 359, 10] +[197, 359, 10] +[198, 359, 10] +[199, 359, 10] +[200, 359, 10] +[154, 360, 10] +[155, 360, 10] +[156, 360, 10] +[157, 360, 10] +[158, 360, 10] +[159, 360, 10] +[160, 360, 10] +[161, 360, 10] +[162, 360, 10] +[163, 360, 10] +[164, 360, 10] +[165, 360, 10] +[166, 360, 10] +[167, 360, 10] +[168, 360, 10] +[169, 360, 10] +[192, 360, 10] +[193, 360, 10] +[194, 360, 10] +[195, 360, 10] +[196, 360, 10] +[197, 360, 10] +[198, 360, 10] +[199, 360, 10] +[200, 360, 10] +[211, 360, 10] +[212, 360, 10] +[213, 360, 10] +[214, 360, 10] +[215, 360, 10] +[216, 360, 10] +[153, 361, 10] +[154, 361, 10] +[155, 361, 10] +[156, 361, 10] +[157, 361, 10] +[158, 361, 10] +[159, 361, 10] +[160, 361, 10] +[161, 361, 10] +[162, 361, 10] +[163, 361, 10] +[164, 361, 10] +[165, 361, 10] +[166, 361, 10] +[167, 361, 10] +[190, 361, 10] +[191, 361, 10] +[192, 361, 10] +[193, 361, 10] +[194, 361, 10] +[195, 361, 10] +[196, 361, 10] +[197, 361, 10] +[198, 361, 10] +[199, 361, 10] +[200, 361, 10] +[201, 361, 10] +[206, 361, 10] +[207, 361, 10] +[208, 361, 10] +[209, 361, 10] +[210, 361, 10] +[211, 361, 10] +[212, 361, 10] +[213, 361, 10] +[214, 361, 10] +[215, 361, 10] +[152, 362, 10] +[153, 362, 10] +[154, 362, 10] +[155, 362, 10] +[156, 362, 10] +[157, 362, 10] +[158, 362, 10] +[159, 362, 10] +[160, 362, 10] +[161, 362, 10] +[162, 362, 10] +[163, 362, 10] +[164, 362, 10] +[165, 362, 10] +[188, 362, 10] +[189, 362, 10] +[190, 362, 10] +[191, 362, 10] +[192, 362, 10] +[193, 362, 10] +[194, 362, 10] +[195, 362, 10] +[196, 362, 10] +[197, 362, 10] +[198, 362, 10] +[199, 362, 10] +[200, 362, 10] +[201, 362, 10] +[202, 362, 10] +[203, 362, 10] +[204, 362, 10] +[205, 362, 10] +[206, 362, 10] +[207, 362, 10] +[208, 362, 10] +[209, 362, 10] +[210, 362, 10] +[211, 362, 10] +[212, 362, 10] +[213, 362, 10] +[214, 362, 10] +[215, 362, 10] +[152, 363, 10] +[153, 363, 10] +[154, 363, 10] +[155, 363, 10] +[156, 363, 10] +[157, 363, 10] +[158, 363, 10] +[159, 363, 10] +[160, 363, 10] +[161, 363, 10] +[162, 363, 10] +[163, 363, 10] +[189, 363, 10] +[190, 363, 10] +[191, 363, 10] +[192, 363, 10] +[193, 363, 10] +[194, 363, 10] +[195, 363, 10] +[196, 363, 10] +[197, 363, 10] +[198, 363, 10] +[199, 363, 10] +[200, 363, 10] +[201, 363, 10] +[202, 363, 10] +[203, 363, 10] +[204, 363, 10] +[205, 363, 10] +[206, 363, 10] +[207, 363, 10] +[208, 363, 10] +[209, 363, 10] +[210, 363, 10] +[211, 363, 10] +[212, 363, 10] +[213, 363, 10] +[214, 363, 10] +[151, 364, 10] +[152, 364, 10] +[153, 364, 10] +[154, 364, 10] +[155, 364, 10] +[156, 364, 10] +[157, 364, 10] +[158, 364, 10] +[159, 364, 10] +[160, 364, 10] +[161, 364, 10] +[181, 364, 10] +[182, 364, 10] +[191, 364, 10] +[192, 364, 10] +[193, 364, 10] +[194, 364, 10] +[195, 364, 10] +[196, 364, 10] +[197, 364, 10] +[198, 364, 10] +[199, 364, 10] +[200, 364, 10] +[201, 364, 10] +[202, 364, 10] +[203, 364, 10] +[204, 364, 10] +[205, 364, 10] +[206, 364, 10] +[207, 364, 10] +[208, 364, 10] +[209, 364, 10] +[210, 364, 10] +[211, 364, 10] +[212, 364, 10] +[213, 364, 10] +[150, 365, 10] +[151, 365, 10] +[152, 365, 10] +[153, 365, 10] +[154, 365, 10] +[155, 365, 10] +[156, 365, 10] +[157, 365, 10] +[158, 365, 10] +[159, 365, 10] +[179, 365, 10] +[180, 365, 10] +[181, 365, 10] +[182, 365, 10] +[193, 365, 10] +[194, 365, 10] +[195, 365, 10] +[196, 365, 10] +[197, 365, 10] +[198, 365, 10] +[199, 365, 10] +[200, 365, 10] +[201, 365, 10] +[202, 365, 10] +[203, 365, 10] +[204, 365, 10] +[205, 365, 10] +[206, 365, 10] +[208, 365, 10] +[209, 365, 10] +[210, 365, 10] +[211, 365, 10] +[212, 365, 10] +[218, 365, 10] +[149, 366, 10] +[150, 366, 10] +[151, 366, 10] +[152, 366, 10] +[153, 366, 10] +[154, 366, 10] +[155, 366, 10] +[156, 366, 10] +[157, 366, 10] +[158, 366, 10] +[177, 366, 10] +[178, 366, 10] +[179, 366, 10] +[180, 366, 10] +[181, 366, 10] +[182, 366, 10] +[193, 366, 10] +[194, 366, 10] +[195, 366, 10] +[196, 366, 10] +[197, 366, 10] +[198, 366, 10] +[199, 366, 10] +[200, 366, 10] +[201, 366, 10] +[202, 366, 10] +[207, 366, 10] +[208, 366, 10] +[209, 366, 10] +[210, 366, 10] +[211, 366, 10] +[212, 366, 10] +[217, 366, 10] +[218, 366, 10] +[150, 367, 10] +[151, 367, 10] +[152, 367, 10] +[153, 367, 10] +[154, 367, 10] +[155, 367, 10] +[156, 367, 10] +[157, 367, 10] +[158, 367, 10] +[162, 367, 10] +[163, 367, 10] +[175, 367, 10] +[176, 367, 10] +[177, 367, 10] +[178, 367, 10] +[179, 367, 10] +[180, 367, 10] +[181, 367, 10] +[182, 367, 10] +[187, 367, 10] +[188, 367, 10] +[189, 367, 10] +[190, 367, 10] +[191, 367, 10] +[192, 367, 10] +[193, 367, 10] +[194, 367, 10] +[195, 367, 10] +[196, 367, 10] +[197, 367, 10] +[198, 367, 10] +[199, 367, 10] +[200, 367, 10] +[201, 367, 10] +[202, 367, 10] +[203, 367, 10] +[207, 367, 10] +[208, 367, 10] +[209, 367, 10] +[210, 367, 10] +[211, 367, 10] +[217, 367, 10] +[218, 367, 10] +[219, 367, 10] +[150, 368, 10] +[151, 368, 10] +[152, 368, 10] +[153, 368, 10] +[154, 368, 10] +[155, 368, 10] +[156, 368, 10] +[157, 368, 10] +[158, 368, 10] +[163, 368, 10] +[164, 368, 10] +[165, 368, 10] +[173, 368, 10] +[174, 368, 10] +[175, 368, 10] +[176, 368, 10] +[177, 368, 10] +[178, 368, 10] +[179, 368, 10] +[180, 368, 10] +[181, 368, 10] +[182, 368, 10] +[183, 368, 10] +[184, 368, 10] +[185, 368, 10] +[186, 368, 10] +[187, 368, 10] +[188, 368, 10] +[189, 368, 10] +[190, 368, 10] +[191, 368, 10] +[192, 368, 10] +[193, 368, 10] +[194, 368, 10] +[195, 368, 10] +[196, 368, 10] +[197, 368, 10] +[198, 368, 10] +[199, 368, 10] +[200, 368, 10] +[201, 368, 10] +[202, 368, 10] +[203, 368, 10] +[204, 368, 10] +[207, 368, 10] +[208, 368, 10] +[209, 368, 10] +[210, 368, 10] +[216, 368, 10] +[217, 368, 10] +[218, 368, 10] +[219, 368, 10] +[150, 369, 10] +[151, 369, 10] +[152, 369, 10] +[153, 369, 10] +[154, 369, 10] +[155, 369, 10] +[156, 369, 10] +[157, 369, 10] +[158, 369, 10] +[164, 369, 10] +[165, 369, 10] +[166, 369, 10] +[167, 369, 10] +[171, 369, 10] +[172, 369, 10] +[173, 369, 10] +[174, 369, 10] +[175, 369, 10] +[176, 369, 10] +[177, 369, 10] +[178, 369, 10] +[179, 369, 10] +[180, 369, 10] +[181, 369, 10] +[182, 369, 10] +[183, 369, 10] +[184, 369, 10] +[185, 369, 10] +[186, 369, 10] +[187, 369, 10] +[188, 369, 10] +[189, 369, 10] +[190, 369, 10] +[191, 369, 10] +[192, 369, 10] +[193, 369, 10] +[194, 369, 10] +[195, 369, 10] +[196, 369, 10] +[197, 369, 10] +[198, 369, 10] +[199, 369, 10] +[200, 369, 10] +[201, 369, 10] +[202, 369, 10] +[203, 369, 10] +[204, 369, 10] +[208, 369, 10] +[209, 369, 10] +[210, 369, 10] +[216, 369, 10] +[217, 369, 10] +[218, 369, 10] +[219, 369, 10] +[220, 369, 10] +[151, 370, 10] +[152, 370, 10] +[153, 370, 10] +[154, 370, 10] +[155, 370, 10] +[156, 370, 10] +[157, 370, 10] +[158, 370, 10] +[166, 370, 10] +[167, 370, 10] +[168, 370, 10] +[169, 370, 10] +[170, 370, 10] +[171, 370, 10] +[172, 370, 10] +[173, 370, 10] +[174, 370, 10] +[175, 370, 10] +[176, 370, 10] +[177, 370, 10] +[178, 370, 10] +[179, 370, 10] +[180, 370, 10] +[181, 370, 10] +[182, 370, 10] +[183, 370, 10] +[184, 370, 10] +[185, 370, 10] +[186, 370, 10] +[187, 370, 10] +[188, 370, 10] +[189, 370, 10] +[190, 370, 10] +[191, 370, 10] +[192, 370, 10] +[193, 370, 10] +[194, 370, 10] +[195, 370, 10] +[196, 370, 10] +[197, 370, 10] +[198, 370, 10] +[199, 370, 10] +[200, 370, 10] +[201, 370, 10] +[202, 370, 10] +[203, 370, 10] +[204, 370, 10] +[205, 370, 10] +[209, 370, 10] +[215, 370, 10] +[216, 370, 10] +[217, 370, 10] +[218, 370, 10] +[219, 370, 10] +[220, 370, 10] +[151, 371, 10] +[152, 371, 10] +[153, 371, 10] +[154, 371, 10] +[155, 371, 10] +[156, 371, 10] +[157, 371, 10] +[167, 371, 10] +[168, 371, 10] +[169, 371, 10] +[170, 371, 10] +[171, 371, 10] +[172, 371, 10] +[173, 371, 10] +[174, 371, 10] +[175, 371, 10] +[176, 371, 10] +[177, 371, 10] +[178, 371, 10] +[179, 371, 10] +[180, 371, 10] +[181, 371, 10] +[182, 371, 10] +[183, 371, 10] +[184, 371, 10] +[185, 371, 10] +[186, 371, 10] +[187, 371, 10] +[188, 371, 10] +[189, 371, 10] +[190, 371, 10] +[191, 371, 10] +[192, 371, 10] +[193, 371, 10] +[194, 371, 10] +[195, 371, 10] +[196, 371, 10] +[197, 371, 10] +[198, 371, 10] +[199, 371, 10] +[200, 371, 10] +[201, 371, 10] +[202, 371, 10] +[203, 371, 10] +[204, 371, 10] +[205, 371, 10] +[215, 371, 10] +[216, 371, 10] +[217, 371, 10] +[218, 371, 10] +[219, 371, 10] +[220, 371, 10] +[221, 371, 10] +[151, 372, 10] +[152, 372, 10] +[153, 372, 10] +[154, 372, 10] +[155, 372, 10] +[156, 372, 10] +[157, 372, 10] +[158, 372, 10] +[169, 372, 10] +[170, 372, 10] +[171, 372, 10] +[172, 372, 10] +[173, 372, 10] +[174, 372, 10] +[175, 372, 10] +[176, 372, 10] +[177, 372, 10] +[178, 372, 10] +[179, 372, 10] +[180, 372, 10] +[181, 372, 10] +[182, 372, 10] +[183, 372, 10] +[184, 372, 10] +[185, 372, 10] +[186, 372, 10] +[187, 372, 10] +[188, 372, 10] +[189, 372, 10] +[190, 372, 10] +[191, 372, 10] +[192, 372, 10] +[193, 372, 10] +[194, 372, 10] +[195, 372, 10] +[196, 372, 10] +[197, 372, 10] +[198, 372, 10] +[199, 372, 10] +[200, 372, 10] +[201, 372, 10] +[202, 372, 10] +[203, 372, 10] +[204, 372, 10] +[205, 372, 10] +[206, 372, 10] +[214, 372, 10] +[215, 372, 10] +[216, 372, 10] +[217, 372, 10] +[218, 372, 10] +[219, 372, 10] +[220, 372, 10] +[221, 372, 10] +[152, 373, 10] +[153, 373, 10] +[154, 373, 10] +[155, 373, 10] +[156, 373, 10] +[157, 373, 10] +[158, 373, 10] +[159, 373, 10] +[170, 373, 10] +[171, 373, 10] +[172, 373, 10] +[173, 373, 10] +[174, 373, 10] +[175, 373, 10] +[176, 373, 10] +[177, 373, 10] +[178, 373, 10] +[179, 373, 10] +[180, 373, 10] +[181, 373, 10] +[182, 373, 10] +[183, 373, 10] +[184, 373, 10] +[185, 373, 10] +[186, 373, 10] +[187, 373, 10] +[188, 373, 10] +[189, 373, 10] +[190, 373, 10] +[191, 373, 10] +[192, 373, 10] +[193, 373, 10] +[194, 373, 10] +[195, 373, 10] +[196, 373, 10] +[197, 373, 10] +[198, 373, 10] +[199, 373, 10] +[200, 373, 10] +[201, 373, 10] +[202, 373, 10] +[203, 373, 10] +[204, 373, 10] +[205, 373, 10] +[206, 373, 10] +[207, 373, 10] +[214, 373, 10] +[215, 373, 10] +[216, 373, 10] +[217, 373, 10] +[218, 373, 10] +[219, 373, 10] +[220, 373, 10] +[221, 373, 10] +[222, 373, 10] +[152, 374, 10] +[153, 374, 10] +[154, 374, 10] +[155, 374, 10] +[156, 374, 10] +[157, 374, 10] +[158, 374, 10] +[159, 374, 10] +[160, 374, 10] +[161, 374, 10] +[172, 374, 10] +[173, 374, 10] +[174, 374, 10] +[175, 374, 10] +[176, 374, 10] +[177, 374, 10] +[178, 374, 10] +[179, 374, 10] +[180, 374, 10] +[181, 374, 10] +[182, 374, 10] +[183, 374, 10] +[184, 374, 10] +[185, 374, 10] +[186, 374, 10] +[187, 374, 10] +[188, 374, 10] +[189, 374, 10] +[190, 374, 10] +[191, 374, 10] +[192, 374, 10] +[193, 374, 10] +[194, 374, 10] +[195, 374, 10] +[196, 374, 10] +[197, 374, 10] +[198, 374, 10] +[199, 374, 10] +[200, 374, 10] +[201, 374, 10] +[202, 374, 10] +[203, 374, 10] +[204, 374, 10] +[205, 374, 10] +[206, 374, 10] +[207, 374, 10] +[214, 374, 10] +[215, 374, 10] +[216, 374, 10] +[217, 374, 10] +[218, 374, 10] +[219, 374, 10] +[220, 374, 10] +[221, 374, 10] +[222, 374, 10] +[152, 375, 10] +[153, 375, 10] +[154, 375, 10] +[155, 375, 10] +[156, 375, 10] +[157, 375, 10] +[158, 375, 10] +[159, 375, 10] +[160, 375, 10] +[161, 375, 10] +[162, 375, 10] +[163, 375, 10] +[173, 375, 10] +[174, 375, 10] +[175, 375, 10] +[176, 375, 10] +[177, 375, 10] +[178, 375, 10] +[179, 375, 10] +[180, 375, 10] +[181, 375, 10] +[182, 375, 10] +[183, 375, 10] +[184, 375, 10] +[185, 375, 10] +[186, 375, 10] +[187, 375, 10] +[188, 375, 10] +[189, 375, 10] +[190, 375, 10] +[191, 375, 10] +[192, 375, 10] +[193, 375, 10] +[194, 375, 10] +[195, 375, 10] +[196, 375, 10] +[197, 375, 10] +[198, 375, 10] +[200, 375, 10] +[201, 375, 10] +[202, 375, 10] +[203, 375, 10] +[204, 375, 10] +[205, 375, 10] +[206, 375, 10] +[207, 375, 10] +[208, 375, 10] +[214, 375, 10] +[215, 375, 10] +[216, 375, 10] +[217, 375, 10] +[218, 375, 10] +[219, 375, 10] +[220, 375, 10] +[221, 375, 10] +[222, 375, 10] +[223, 375, 10] +[153, 376, 10] +[154, 376, 10] +[155, 376, 10] +[156, 376, 10] +[157, 376, 10] +[158, 376, 10] +[159, 376, 10] +[160, 376, 10] +[161, 376, 10] +[162, 376, 10] +[163, 376, 10] +[164, 376, 10] +[175, 376, 10] +[176, 376, 10] +[177, 376, 10] +[178, 376, 10] +[179, 376, 10] +[180, 376, 10] +[181, 376, 10] +[182, 376, 10] +[183, 376, 10] +[184, 376, 10] +[185, 376, 10] +[186, 376, 10] +[187, 376, 10] +[188, 376, 10] +[189, 376, 10] +[190, 376, 10] +[191, 376, 10] +[192, 376, 10] +[193, 376, 10] +[194, 376, 10] +[195, 376, 10] +[196, 376, 10] +[197, 376, 10] +[198, 376, 10] +[200, 376, 10] +[201, 376, 10] +[202, 376, 10] +[203, 376, 10] +[204, 376, 10] +[205, 376, 10] +[206, 376, 10] +[207, 376, 10] +[208, 376, 10] +[214, 376, 10] +[215, 376, 10] +[216, 376, 10] +[217, 376, 10] +[218, 376, 10] +[219, 376, 10] +[220, 376, 10] +[221, 376, 10] +[222, 376, 10] +[223, 376, 10] +[155, 377, 10] +[156, 377, 10] +[157, 377, 10] +[158, 377, 10] +[159, 377, 10] +[160, 377, 10] +[161, 377, 10] +[162, 377, 10] +[163, 377, 10] +[164, 377, 10] +[165, 377, 10] +[166, 377, 10] +[177, 377, 10] +[178, 377, 10] +[179, 377, 10] +[180, 377, 10] +[181, 377, 10] +[182, 377, 10] +[183, 377, 10] +[188, 377, 10] +[189, 377, 10] +[190, 377, 10] +[191, 377, 10] +[192, 377, 10] +[193, 377, 10] +[194, 377, 10] +[195, 377, 10] +[196, 377, 10] +[197, 377, 10] +[198, 377, 10] +[201, 377, 10] +[202, 377, 10] +[203, 377, 10] +[204, 377, 10] +[205, 377, 10] +[206, 377, 10] +[207, 377, 10] +[208, 377, 10] +[209, 377, 10] +[215, 377, 10] +[216, 377, 10] +[217, 377, 10] +[218, 377, 10] +[219, 377, 10] +[220, 377, 10] +[221, 377, 10] +[222, 377, 10] +[223, 377, 10] +[224, 377, 10] +[156, 378, 10] +[157, 378, 10] +[158, 378, 10] +[159, 378, 10] +[160, 378, 10] +[161, 378, 10] +[162, 378, 10] +[163, 378, 10] +[164, 378, 10] +[165, 378, 10] +[166, 378, 10] +[167, 378, 10] +[168, 378, 10] +[178, 378, 10] +[179, 378, 10] +[180, 378, 10] +[181, 378, 10] +[186, 378, 10] +[187, 378, 10] +[188, 378, 10] +[189, 378, 10] +[190, 378, 10] +[191, 378, 10] +[192, 378, 10] +[193, 378, 10] +[194, 378, 10] +[195, 378, 10] +[196, 378, 10] +[197, 378, 10] +[201, 378, 10] +[202, 378, 10] +[203, 378, 10] +[204, 378, 10] +[205, 378, 10] +[206, 378, 10] +[207, 378, 10] +[208, 378, 10] +[209, 378, 10] +[216, 378, 10] +[217, 378, 10] +[218, 378, 10] +[219, 378, 10] +[220, 378, 10] +[221, 378, 10] +[222, 378, 10] +[223, 378, 10] +[224, 378, 10] +[158, 379, 10] +[159, 379, 10] +[160, 379, 10] +[161, 379, 10] +[162, 379, 10] +[163, 379, 10] +[164, 379, 10] +[165, 379, 10] +[166, 379, 10] +[167, 379, 10] +[168, 379, 10] +[169, 379, 10] +[185, 379, 10] +[186, 379, 10] +[187, 379, 10] +[188, 379, 10] +[189, 379, 10] +[190, 379, 10] +[191, 379, 10] +[192, 379, 10] +[193, 379, 10] +[194, 379, 10] +[195, 379, 10] +[196, 379, 10] +[197, 379, 10] +[202, 379, 10] +[203, 379, 10] +[204, 379, 10] +[205, 379, 10] +[206, 379, 10] +[207, 379, 10] +[208, 379, 10] +[209, 379, 10] +[210, 379, 10] +[216, 379, 10] +[217, 379, 10] +[218, 379, 10] +[219, 379, 10] +[220, 379, 10] +[221, 379, 10] +[222, 379, 10] +[223, 379, 10] +[224, 379, 10] +[159, 380, 10] +[160, 380, 10] +[161, 380, 10] +[162, 380, 10] +[163, 380, 10] +[164, 380, 10] +[165, 380, 10] +[166, 380, 10] +[167, 380, 10] +[168, 380, 10] +[169, 380, 10] +[170, 380, 10] +[171, 380, 10] +[184, 380, 10] +[185, 380, 10] +[186, 380, 10] +[187, 380, 10] +[188, 380, 10] +[189, 380, 10] +[190, 380, 10] +[191, 380, 10] +[192, 380, 10] +[193, 380, 10] +[194, 380, 10] +[195, 380, 10] +[196, 380, 10] +[197, 380, 10] +[203, 380, 10] +[204, 380, 10] +[205, 380, 10] +[206, 380, 10] +[207, 380, 10] +[208, 380, 10] +[209, 380, 10] +[210, 380, 10] +[211, 380, 10] +[216, 380, 10] +[217, 380, 10] +[218, 380, 10] +[219, 380, 10] +[220, 380, 10] +[221, 380, 10] +[222, 380, 10] +[223, 380, 10] +[224, 380, 10] +[161, 381, 10] +[162, 381, 10] +[163, 381, 10] +[164, 381, 10] +[165, 381, 10] +[166, 381, 10] +[167, 381, 10] +[168, 381, 10] +[169, 381, 10] +[170, 381, 10] +[171, 381, 10] +[172, 381, 10] +[173, 381, 10] +[182, 381, 10] +[183, 381, 10] +[184, 381, 10] +[185, 381, 10] +[186, 381, 10] +[187, 381, 10] +[188, 381, 10] +[189, 381, 10] +[190, 381, 10] +[191, 381, 10] +[192, 381, 10] +[193, 381, 10] +[194, 381, 10] +[195, 381, 10] +[196, 381, 10] +[197, 381, 10] +[203, 381, 10] +[204, 381, 10] +[205, 381, 10] +[206, 381, 10] +[207, 381, 10] +[208, 381, 10] +[209, 381, 10] +[210, 381, 10] +[215, 381, 10] +[216, 381, 10] +[217, 381, 10] +[218, 381, 10] +[219, 381, 10] +[220, 381, 10] +[221, 381, 10] +[222, 381, 10] +[223, 381, 10] +[163, 382, 10] +[164, 382, 10] +[165, 382, 10] +[166, 382, 10] +[167, 382, 10] +[168, 382, 10] +[169, 382, 10] +[170, 382, 10] +[171, 382, 10] +[172, 382, 10] +[173, 382, 10] +[174, 382, 10] +[181, 382, 10] +[182, 382, 10] +[183, 382, 10] +[184, 382, 10] +[185, 382, 10] +[186, 382, 10] +[187, 382, 10] +[188, 382, 10] +[189, 382, 10] +[190, 382, 10] +[191, 382, 10] +[192, 382, 10] +[193, 382, 10] +[194, 382, 10] +[195, 382, 10] +[196, 382, 10] +[197, 382, 10] +[204, 382, 10] +[205, 382, 10] +[206, 382, 10] +[215, 382, 10] +[216, 382, 10] +[217, 382, 10] +[218, 382, 10] +[219, 382, 10] +[220, 382, 10] +[221, 382, 10] +[222, 382, 10] +[223, 382, 10] +[164, 383, 10] +[165, 383, 10] +[166, 383, 10] +[167, 383, 10] +[168, 383, 10] +[169, 383, 10] +[170, 383, 10] +[171, 383, 10] +[172, 383, 10] +[173, 383, 10] +[179, 383, 10] +[180, 383, 10] +[181, 383, 10] +[182, 383, 10] +[183, 383, 10] +[184, 383, 10] +[185, 383, 10] +[186, 383, 10] +[187, 383, 10] +[188, 383, 10] +[189, 383, 10] +[190, 383, 10] +[191, 383, 10] +[192, 383, 10] +[193, 383, 10] +[194, 383, 10] +[196, 383, 10] +[197, 383, 10] +[215, 383, 10] +[216, 383, 10] +[217, 383, 10] +[218, 383, 10] +[219, 383, 10] +[220, 383, 10] +[221, 383, 10] +[222, 383, 10] +[223, 383, 10] +[164, 384, 10] +[165, 384, 10] +[166, 384, 10] +[167, 384, 10] +[168, 384, 10] +[169, 384, 10] +[170, 384, 10] +[171, 384, 10] +[172, 384, 10] +[173, 384, 10] +[178, 384, 10] +[179, 384, 10] +[180, 384, 10] +[181, 384, 10] +[182, 384, 10] +[183, 384, 10] +[184, 384, 10] +[185, 384, 10] +[186, 384, 10] +[187, 384, 10] +[188, 384, 10] +[189, 384, 10] +[190, 384, 10] +[191, 384, 10] +[192, 384, 10] +[193, 384, 10] +[194, 384, 10] +[214, 384, 10] +[215, 384, 10] +[216, 384, 10] +[217, 384, 10] +[218, 384, 10] +[219, 384, 10] +[220, 384, 10] +[221, 384, 10] +[222, 384, 10] +[164, 385, 10] +[165, 385, 10] +[166, 385, 10] +[167, 385, 10] +[168, 385, 10] +[169, 385, 10] +[170, 385, 10] +[171, 385, 10] +[172, 385, 10] +[177, 385, 10] +[178, 385, 10] +[179, 385, 10] +[180, 385, 10] +[181, 385, 10] +[182, 385, 10] +[183, 385, 10] +[184, 385, 10] +[185, 385, 10] +[186, 385, 10] +[188, 385, 10] +[189, 385, 10] +[190, 385, 10] +[191, 385, 10] +[192, 385, 10] +[193, 385, 10] +[194, 385, 10] +[214, 385, 10] +[215, 385, 10] +[216, 385, 10] +[217, 385, 10] +[218, 385, 10] +[219, 385, 10] +[220, 385, 10] +[221, 385, 10] +[222, 385, 10] +[163, 386, 10] +[164, 386, 10] +[165, 386, 10] +[166, 386, 10] +[167, 386, 10] +[168, 386, 10] +[169, 386, 10] +[170, 386, 10] +[171, 386, 10] +[172, 386, 10] +[175, 386, 10] +[176, 386, 10] +[177, 386, 10] +[178, 386, 10] +[179, 386, 10] +[180, 386, 10] +[181, 386, 10] +[182, 386, 10] +[183, 386, 10] +[184, 386, 10] +[185, 386, 10] +[187, 386, 10] +[188, 386, 10] +[189, 386, 10] +[190, 386, 10] +[191, 386, 10] +[192, 386, 10] +[193, 386, 10] +[194, 386, 10] +[214, 386, 10] +[215, 386, 10] +[216, 386, 10] +[217, 386, 10] +[218, 386, 10] +[219, 386, 10] +[220, 386, 10] +[221, 386, 10] +[162, 387, 10] +[163, 387, 10] +[164, 387, 10] +[165, 387, 10] +[166, 387, 10] +[167, 387, 10] +[168, 387, 10] +[169, 387, 10] +[170, 387, 10] +[171, 387, 10] +[174, 387, 10] +[175, 387, 10] +[176, 387, 10] +[177, 387, 10] +[178, 387, 10] +[179, 387, 10] +[180, 387, 10] +[181, 387, 10] +[182, 387, 10] +[183, 387, 10] +[184, 387, 10] +[187, 387, 10] +[188, 387, 10] +[189, 387, 10] +[190, 387, 10] +[191, 387, 10] +[192, 387, 10] +[193, 387, 10] +[213, 387, 10] +[214, 387, 10] +[215, 387, 10] +[216, 387, 10] +[217, 387, 10] +[218, 387, 10] +[219, 387, 10] +[220, 387, 10] +[221, 387, 10] +[161, 388, 10] +[162, 388, 10] +[163, 388, 10] +[164, 388, 10] +[165, 388, 10] +[166, 388, 10] +[167, 388, 10] +[168, 388, 10] +[169, 388, 10] +[170, 388, 10] +[172, 388, 10] +[173, 388, 10] +[174, 388, 10] +[175, 388, 10] +[176, 388, 10] +[177, 388, 10] +[178, 388, 10] +[179, 388, 10] +[180, 388, 10] +[181, 388, 10] +[182, 388, 10] +[183, 388, 10] +[187, 388, 10] +[188, 388, 10] +[189, 388, 10] +[190, 388, 10] +[191, 388, 10] +[192, 388, 10] +[193, 388, 10] +[213, 388, 10] +[214, 388, 10] +[215, 388, 10] +[216, 388, 10] +[217, 388, 10] +[218, 388, 10] +[219, 388, 10] +[220, 388, 10] +[221, 388, 10] +[161, 389, 10] +[162, 389, 10] +[163, 389, 10] +[164, 389, 10] +[165, 389, 10] +[166, 389, 10] +[167, 389, 10] +[168, 389, 10] +[169, 389, 10] +[170, 389, 10] +[171, 389, 10] +[172, 389, 10] +[173, 389, 10] +[174, 389, 10] +[175, 389, 10] +[176, 389, 10] +[177, 389, 10] +[178, 389, 10] +[179, 389, 10] +[180, 389, 10] +[181, 389, 10] +[186, 389, 10] +[187, 389, 10] +[188, 389, 10] +[189, 389, 10] +[190, 389, 10] +[191, 389, 10] +[192, 389, 10] +[193, 389, 10] +[213, 389, 10] +[214, 389, 10] +[215, 389, 10] +[216, 389, 10] +[217, 389, 10] +[218, 389, 10] +[219, 389, 10] +[220, 389, 10] +[160, 390, 10] +[161, 390, 10] +[162, 390, 10] +[163, 390, 10] +[164, 390, 10] +[165, 390, 10] +[166, 390, 10] +[167, 390, 10] +[168, 390, 10] +[169, 390, 10] +[170, 390, 10] +[171, 390, 10] +[172, 390, 10] +[173, 390, 10] +[174, 390, 10] +[175, 390, 10] +[176, 390, 10] +[177, 390, 10] +[178, 390, 10] +[179, 390, 10] +[180, 390, 10] +[186, 390, 10] +[187, 390, 10] +[188, 390, 10] +[189, 390, 10] +[190, 390, 10] +[191, 390, 10] +[192, 390, 10] +[193, 390, 10] +[194, 390, 10] +[195, 390, 10] +[196, 390, 10] +[212, 390, 10] +[213, 390, 10] +[214, 390, 10] +[215, 390, 10] +[216, 390, 10] +[217, 390, 10] +[218, 390, 10] +[219, 390, 10] +[220, 390, 10] +[159, 391, 10] +[160, 391, 10] +[161, 391, 10] +[162, 391, 10] +[163, 391, 10] +[164, 391, 10] +[165, 391, 10] +[166, 391, 10] +[167, 391, 10] +[168, 391, 10] +[169, 391, 10] +[170, 391, 10] +[171, 391, 10] +[172, 391, 10] +[173, 391, 10] +[174, 391, 10] +[175, 391, 10] +[176, 391, 10] +[177, 391, 10] +[178, 391, 10] +[179, 391, 10] +[185, 391, 10] +[186, 391, 10] +[187, 391, 10] +[188, 391, 10] +[189, 391, 10] +[190, 391, 10] +[191, 391, 10] +[192, 391, 10] +[193, 391, 10] +[194, 391, 10] +[195, 391, 10] +[196, 391, 10] +[197, 391, 10] +[198, 391, 10] +[199, 391, 10] +[200, 391, 10] +[201, 391, 10] +[202, 391, 10] +[203, 391, 10] +[204, 391, 10] +[205, 391, 10] +[206, 391, 10] +[207, 391, 10] +[208, 391, 10] +[209, 391, 10] +[210, 391, 10] +[211, 391, 10] +[212, 391, 10] +[213, 391, 10] +[214, 391, 10] +[215, 391, 10] +[216, 391, 10] +[217, 391, 10] +[218, 391, 10] +[219, 391, 10] +[159, 392, 10] +[160, 392, 10] +[161, 392, 10] +[162, 392, 10] +[163, 392, 10] +[164, 392, 10] +[165, 392, 10] +[166, 392, 10] +[167, 392, 10] +[168, 392, 10] +[169, 392, 10] +[170, 392, 10] +[171, 392, 10] +[172, 392, 10] +[173, 392, 10] +[174, 392, 10] +[175, 392, 10] +[176, 392, 10] +[177, 392, 10] +[178, 392, 10] +[185, 392, 10] +[186, 392, 10] +[187, 392, 10] +[188, 392, 10] +[189, 392, 10] +[190, 392, 10] +[191, 392, 10] +[192, 392, 10] +[193, 392, 10] +[194, 392, 10] +[195, 392, 10] +[196, 392, 10] +[197, 392, 10] +[198, 392, 10] +[199, 392, 10] +[200, 392, 10] +[201, 392, 10] +[202, 392, 10] +[203, 392, 10] +[204, 392, 10] +[205, 392, 10] +[206, 392, 10] +[207, 392, 10] +[208, 392, 10] +[209, 392, 10] +[210, 392, 10] +[211, 392, 10] +[212, 392, 10] +[213, 392, 10] +[214, 392, 10] +[215, 392, 10] +[216, 392, 10] +[217, 392, 10] +[218, 392, 10] +[219, 392, 10] +[160, 393, 10] +[161, 393, 10] +[162, 393, 10] +[163, 393, 10] +[164, 393, 10] +[165, 393, 10] +[166, 393, 10] +[167, 393, 10] +[168, 393, 10] +[169, 393, 10] +[170, 393, 10] +[171, 393, 10] +[172, 393, 10] +[173, 393, 10] +[174, 393, 10] +[175, 393, 10] +[176, 393, 10] +[177, 393, 10] +[185, 393, 10] +[186, 393, 10] +[187, 393, 10] +[188, 393, 10] +[189, 393, 10] +[190, 393, 10] +[191, 393, 10] +[192, 393, 10] +[193, 393, 10] +[194, 393, 10] +[195, 393, 10] +[196, 393, 10] +[197, 393, 10] +[198, 393, 10] +[199, 393, 10] +[200, 393, 10] +[201, 393, 10] +[202, 393, 10] +[203, 393, 10] +[204, 393, 10] +[205, 393, 10] +[206, 393, 10] +[207, 393, 10] +[208, 393, 10] +[209, 393, 10] +[210, 393, 10] +[211, 393, 10] +[212, 393, 10] +[213, 393, 10] +[214, 393, 10] +[215, 393, 10] +[216, 393, 10] +[217, 393, 10] +[218, 393, 10] +[219, 393, 10] +[163, 394, 10] +[164, 394, 10] +[165, 394, 10] +[166, 394, 10] +[167, 394, 10] +[168, 394, 10] +[169, 394, 10] +[170, 394, 10] +[171, 394, 10] +[172, 394, 10] +[173, 394, 10] +[174, 394, 10] +[175, 394, 10] +[176, 394, 10] +[184, 394, 10] +[185, 394, 10] +[186, 394, 10] +[187, 394, 10] +[188, 394, 10] +[189, 394, 10] +[190, 394, 10] +[191, 394, 10] +[192, 394, 10] +[193, 394, 10] +[194, 394, 10] +[195, 394, 10] +[196, 394, 10] +[197, 394, 10] +[198, 394, 10] +[199, 394, 10] +[200, 394, 10] +[201, 394, 10] +[202, 394, 10] +[203, 394, 10] +[204, 394, 10] +[205, 394, 10] +[206, 394, 10] +[207, 394, 10] +[208, 394, 10] +[209, 394, 10] +[210, 394, 10] +[211, 394, 10] +[212, 394, 10] +[213, 394, 10] +[214, 394, 10] +[215, 394, 10] +[216, 394, 10] +[217, 394, 10] +[218, 394, 10] +[167, 395, 10] +[168, 395, 10] +[169, 395, 10] +[170, 395, 10] +[171, 395, 10] +[172, 395, 10] +[173, 395, 10] +[174, 395, 10] +[175, 395, 10] +[185, 395, 10] +[186, 395, 10] +[187, 395, 10] +[188, 395, 10] +[189, 395, 10] +[190, 395, 10] +[191, 395, 10] +[192, 395, 10] +[193, 395, 10] +[194, 395, 10] +[195, 395, 10] +[196, 395, 10] +[197, 395, 10] +[198, 395, 10] +[199, 395, 10] +[200, 395, 10] +[201, 395, 10] +[202, 395, 10] +[203, 395, 10] +[204, 395, 10] +[205, 395, 10] +[206, 395, 10] +[207, 395, 10] +[208, 395, 10] +[209, 395, 10] +[210, 395, 10] +[211, 395, 10] +[212, 395, 10] +[213, 395, 10] +[214, 395, 10] +[215, 395, 10] +[216, 395, 10] +[217, 395, 10] +[218, 395, 10] +[171, 396, 10] +[172, 396, 10] +[173, 396, 10] +[186, 396, 10] +[187, 396, 10] +[188, 396, 10] +[189, 396, 10] +[190, 396, 10] +[191, 396, 10] +[192, 396, 10] +[193, 396, 10] +[194, 396, 10] +[195, 396, 10] +[196, 396, 10] +[197, 396, 10] +[198, 396, 10] +[199, 396, 10] +[200, 396, 10] +[201, 396, 10] +[202, 396, 10] +[203, 396, 10] +[204, 396, 10] +[205, 396, 10] +[206, 396, 10] +[207, 396, 10] +[208, 396, 10] +[209, 396, 10] +[210, 396, 10] +[211, 396, 10] +[212, 396, 10] +[213, 396, 10] +[214, 396, 10] +[215, 396, 10] +[216, 396, 10] +[217, 396, 10] +[187, 397, 10] +[188, 397, 10] +[189, 397, 10] +[190, 397, 10] +[191, 397, 10] +[192, 397, 10] +[193, 397, 10] +[194, 397, 10] +[195, 397, 10] +[196, 397, 10] +[197, 397, 10] +[198, 397, 10] +[199, 397, 10] +[200, 397, 10] +[201, 397, 10] +[202, 397, 10] +[203, 397, 10] +[204, 397, 10] +[205, 397, 10] +[206, 397, 10] +[207, 397, 10] +[208, 397, 10] +[209, 397, 10] +[210, 397, 10] +[211, 397, 10] +[212, 397, 10] +[213, 397, 10] +[214, 397, 10] +[215, 397, 10] +[216, 397, 10] +[217, 397, 10] +[188, 398, 10] +[189, 398, 10] +[190, 398, 10] +[191, 398, 10] +[192, 398, 10] +[193, 398, 10] +[194, 398, 10] +[195, 398, 10] +[196, 398, 10] +[197, 398, 10] +[198, 398, 10] +[199, 398, 10] +[200, 398, 10] +[201, 398, 10] +[202, 398, 10] +[203, 398, 10] +[204, 398, 10] +[205, 398, 10] +[206, 398, 10] +[207, 398, 10] +[208, 398, 10] +[209, 398, 10] +[210, 398, 10] +[211, 398, 10] +[212, 398, 10] +[213, 398, 10] +[214, 398, 10] +[215, 398, 10] +[216, 398, 10] +[217, 398, 10] +[189, 399, 10] +[190, 399, 10] +[191, 399, 10] +[192, 399, 10] +[193, 399, 10] +[194, 399, 10] +[195, 399, 10] +[196, 399, 10] +[197, 399, 10] +[198, 399, 10] +[199, 399, 10] +[200, 399, 10] +[201, 399, 10] +[202, 399, 10] +[203, 399, 10] +[204, 399, 10] +[205, 399, 10] +[206, 399, 10] +[207, 399, 10] +[208, 399, 10] +[209, 399, 10] +[210, 399, 10] +[211, 399, 10] +[212, 399, 10] +[213, 399, 10] +[214, 399, 10] +[215, 399, 10] +[190, 400, 10] +[191, 400, 10] +[192, 400, 10] +[193, 400, 10] +[194, 400, 10] +[195, 400, 10] +[196, 400, 10] +[197, 400, 10] +[198, 400, 10] +[199, 400, 10] +[200, 400, 10] +[201, 400, 10] +[202, 400, 10] +[203, 400, 10] +[204, 400, 10] +[205, 400, 10] +[206, 400, 10] +[207, 400, 10] +[191, 401, 10] +[192, 401, 10] +[193, 401, 10] +[194, 401, 10] +[195, 401, 10] +[196, 401, 10] +[197, 401, 10] +[198, 401, 10] +[199, 401, 10] diff --git a/tests/test_cli.py b/tests/test_cli.py index 241a045..4dd95bc 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -42,6 +42,35 @@ def test_burn_cli(): expected = ofile.read() assert result.output == expected + +def test_burn_cli_range(): + """Should work as expected with a zoom range input""" + filename = os.path.join( + os.path.dirname(__file__), 'fixtures/shape.geojson' + ) + expectedFilename = os.path.join( + os.path.dirname(__file__), 'expected/burned_range.txt' + ) + + with open(filename) as ofile: + geojson = ofile.read() + + with open(expectedFilename) as ofile: + expected = ofile.read() + + runner = CliRunner() + result = runner.invoke(cli, ['burn', '9..10'], input=geojson) + assert result.exit_code == 0 + assert result.output == expected + + result = runner.invoke(cli, ['burn', '10..9'], input=geojson) + assert result.exit_code == 0 + assert result.output == expected + + result = runner.invoke(cli, ['burn', '9..'], input=geojson) + assert result.exit_code == 1 + + def test_burn_cli_tile_shape(): tilegeom = '{"bbox": [-122.4755859375, 37.75334401310657, -122.431640625, 37.78808138412046], "geometry": {"coordinates": [[[-122.4755859375, 37.75334401310657], [-122.4755859375, 37.78808138412046], [-122.431640625, 37.78808138412046], [-122.431640625, 37.75334401310657], [-122.4755859375, 37.75334401310657]]], "type": "Polygon"}, "id": "(1309, 3166, 13)", "properties": {"title": "XYZ tile (1309, 3166, 13)"}, "type": "Feature"}' runner = CliRunner()