From 22cd331ef79a34e91dcf9b93e076a3452dc7eb89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Fri, 13 May 2011 18:10:58 -0400 Subject: [PATCH] add rest of the grids too --- test/fixtures/grids/plain_2_0_0_0.json | 1 + test/fixtures/grids/plain_2_0_0_1.json | 1 + test/fixtures/grids/plain_2_0_10_4.json | 1 + test/fixtures/grids/plain_2_0_11_4.json | 1 + test/fixtures/grids/plain_2_0_12_4.json | 1 + test/fixtures/grids/plain_2_0_13_4.json | 1 + test/fixtures/grids/plain_2_0_14_4.json | 1 + test/fixtures/grids/plain_2_0_1_1.json | 1 + test/fixtures/grids/plain_2_0_1_2.json | 1 + test/fixtures/grids/plain_2_0_2_2.json | 1 + test/fixtures/grids/plain_2_0_2_3.json | 1 + test/fixtures/grids/plain_2_0_3_2.json | 1 + test/fixtures/grids/plain_2_0_3_3.json | 1 + test/fixtures/grids/plain_2_0_4_3.json | 1 + test/fixtures/grids/plain_2_0_4_4.json | 1 + test/fixtures/grids/plain_2_0_5_3.json | 1 + test/fixtures/grids/plain_2_0_5_4.json | 1 + test/fixtures/grids/plain_2_0_6_3.json | 1 + test/fixtures/grids/plain_2_0_6_4.json | 1 + test/fixtures/grids/plain_2_0_7_3.json | 1 + test/fixtures/grids/plain_2_0_8_4.json | 1 + test/fixtures/grids/plain_2_0_9_4.json | 1 + test/fixtures/grids/plain_2_10_10_4.json | 1 + test/fixtures/grids/plain_2_10_11_4.json | 1 + test/fixtures/grids/plain_2_10_13_4.json | 1 + test/fixtures/grids/plain_2_10_4_4.json | 1 + test/fixtures/grids/plain_2_10_5_4.json | 1 + test/fixtures/grids/plain_2_10_6_4.json | 1 + test/fixtures/grids/plain_2_10_7_4.json | 1 + test/fixtures/grids/plain_2_10_8_4.json | 1 + test/fixtures/grids/plain_2_11_10_4.json | 1 + test/fixtures/grids/plain_2_11_11_4.json | 1 + test/fixtures/grids/plain_2_11_12_4.json | 1 + test/fixtures/grids/plain_2_11_13_4.json | 1 + test/fixtures/grids/plain_2_11_14_4.json | 1 + test/fixtures/grids/plain_2_11_5_4.json | 1 + test/fixtures/grids/plain_2_11_8_4.json | 1 + test/fixtures/grids/plain_2_11_9_4.json | 1 + test/fixtures/grids/plain_2_12_10_4.json | 1 + test/fixtures/grids/plain_2_12_11_4.json | 1 + test/fixtures/grids/plain_2_12_12_4.json | 1 + test/fixtures/grids/plain_2_12_13_4.json | 1 + test/fixtures/grids/plain_2_12_14_4.json | 1 + test/fixtures/grids/plain_2_12_4_4.json | 1 + test/fixtures/grids/plain_2_12_6_4.json | 1 + test/fixtures/grids/plain_2_12_7_4.json | 1 + test/fixtures/grids/plain_2_12_8_4.json | 1 + test/fixtures/grids/plain_2_12_9_4.json | 1 + test/fixtures/grids/plain_2_13_12_4.json | 1 + test/fixtures/grids/plain_2_13_13_4.json | 1 + test/fixtures/grids/plain_2_13_14_4.json | 1 + test/fixtures/grids/plain_2_13_4_4.json | 1 + test/fixtures/grids/plain_2_13_5_4.json | 1 + test/fixtures/grids/plain_2_13_6_4.json | 1 + test/fixtures/grids/plain_2_13_7_4.json | 1 + test/fixtures/grids/plain_2_13_8_4.json | 1 + test/fixtures/grids/plain_2_13_9_4.json | 1 + test/fixtures/grids/plain_2_14_11_4.json | 1 + test/fixtures/grids/plain_2_14_12_4.json | 1 + test/fixtures/grids/plain_2_14_13_4.json | 1 + test/fixtures/grids/plain_2_14_14_4.json | 1 + test/fixtures/grids/plain_2_14_4_4.json | 1 + test/fixtures/grids/plain_2_14_6_4.json | 1 + test/fixtures/grids/plain_2_14_7_4.json | 1 + test/fixtures/grids/plain_2_14_8_4.json | 1 + test/fixtures/grids/plain_2_14_9_4.json | 1 + test/fixtures/grids/plain_2_15_10_4.json | 1 + test/fixtures/grids/plain_2_15_11_4.json | 1 + test/fixtures/grids/plain_2_15_13_4.json | 1 + test/fixtures/grids/plain_2_15_4_4.json | 1 + test/fixtures/grids/plain_2_15_5_4.json | 1 + test/fixtures/grids/plain_2_15_6_4.json | 1 + test/fixtures/grids/plain_2_15_7_4.json | 1 + test/fixtures/grids/plain_2_15_8_4.json | 1 + test/fixtures/grids/plain_2_15_9_4.json | 1 + test/fixtures/grids/plain_2_1_0_1.json | 1 + test/fixtures/grids/plain_2_1_10_4.json | 1 + test/fixtures/grids/plain_2_1_11_4.json | 1 + test/fixtures/grids/plain_2_1_12_4.json | 1 + test/fixtures/grids/plain_2_1_13_4.json | 1 + test/fixtures/grids/plain_2_1_1_1.json | 1 + test/fixtures/grids/plain_2_1_1_2.json | 1 + test/fixtures/grids/plain_2_1_2_2.json | 1 + test/fixtures/grids/plain_2_1_2_3.json | 1 + test/fixtures/grids/plain_2_1_3_3.json | 1 + test/fixtures/grids/plain_2_1_4_3.json | 1 + test/fixtures/grids/plain_2_1_4_4.json | 1 + test/fixtures/grids/plain_2_1_5_3.json | 1 + test/fixtures/grids/plain_2_1_5_4.json | 1 + test/fixtures/grids/plain_2_1_6_3.json | 1 + test/fixtures/grids/plain_2_1_6_4.json | 1 + test/fixtures/grids/plain_2_1_7_3.json | 1 + test/fixtures/grids/plain_2_1_7_4.json | 1 + test/fixtures/grids/plain_2_1_8_4.json | 1 + test/fixtures/grids/plain_2_2_10_4.json | 1 + test/fixtures/grids/plain_2_2_11_4.json | 1 + test/fixtures/grids/plain_2_2_1_2.json | 1 + test/fixtures/grids/plain_2_2_2_2.json | 1 + test/fixtures/grids/plain_2_2_2_3.json | 1 + test/fixtures/grids/plain_2_2_3_2.json | 1 + test/fixtures/grids/plain_2_2_3_3.json | 1 + test/fixtures/grids/plain_2_2_5_3.json | 1 + test/fixtures/grids/plain_2_2_5_4.json | 1 + test/fixtures/grids/plain_2_2_6_3.json | 1 + test/fixtures/grids/plain_2_2_6_4.json | 1 + test/fixtures/grids/plain_2_2_7_3.json | 1 + test/fixtures/grids/plain_2_2_7_4.json | 1 + test/fixtures/grids/plain_2_2_8_4.json | 1 + test/fixtures/grids/plain_2_2_9_4.json | 1 + test/fixtures/grids/plain_2_3_10_4.json | 1 + test/fixtures/grids/plain_2_3_11_4.json | 1 + test/fixtures/grids/plain_2_3_12_4.json | 1 + test/fixtures/grids/plain_2_3_14_4.json | 1 + test/fixtures/grids/plain_2_3_2_2.json | 1 + test/fixtures/grids/plain_2_3_2_3.json | 1 + test/fixtures/grids/plain_2_3_3_2.json | 1 + test/fixtures/grids/plain_2_3_3_3.json | 1 + test/fixtures/grids/plain_2_3_4_3.json | 1 + test/fixtures/grids/plain_2_3_5_4.json | 1 + test/fixtures/grids/plain_2_3_6_3.json | 1 + test/fixtures/grids/plain_2_3_6_4.json | 1 + test/fixtures/grids/plain_2_3_7_3.json | 1 + test/fixtures/grids/plain_2_3_7_4.json | 1 + test/fixtures/grids/plain_2_3_8_4.json | 1 + test/fixtures/grids/plain_2_3_9_4.json | 1 + test/fixtures/grids/plain_2_4_10_4.json | 1 + test/fixtures/grids/plain_2_4_11_4.json | 1 + test/fixtures/grids/plain_2_4_12_4.json | 1 + test/fixtures/grids/plain_2_4_13_4.json | 1 + test/fixtures/grids/plain_2_4_4_3.json | 1 + test/fixtures/grids/plain_2_4_4_4.json | 1 + test/fixtures/grids/plain_2_4_5_3.json | 1 + test/fixtures/grids/plain_2_4_5_4.json | 1 + test/fixtures/grids/plain_2_4_6_3.json | 1 + test/fixtures/grids/plain_2_4_6_4.json | 1 + test/fixtures/grids/plain_2_4_7_4.json | 1 + test/fixtures/grids/plain_2_4_8_4.json | 1 + test/fixtures/grids/plain_2_5_10_4.json | 1 + test/fixtures/grids/plain_2_5_11_4.json | 1 + test/fixtures/grids/plain_2_5_13_4.json | 1 + test/fixtures/grids/plain_2_5_2_3.json | 1 + test/fixtures/grids/plain_2_5_3_3.json | 1 + test/fixtures/grids/plain_2_5_5_3.json | 1 + test/fixtures/grids/plain_2_5_6_4.json | 1 + test/fixtures/grids/plain_2_5_7_3.json | 1 + test/fixtures/grids/plain_2_5_7_4.json | 1 + test/fixtures/grids/plain_2_5_8_4.json | 1 + test/fixtures/grids/plain_2_5_9_4.json | 1 + test/fixtures/grids/plain_2_6_10_4.json | 1 + test/fixtures/grids/plain_2_6_11_4.json | 1 + test/fixtures/grids/plain_2_6_12_4.json | 1 + test/fixtures/grids/plain_2_6_13_4.json | 1 + test/fixtures/grids/plain_2_6_14_4.json | 1 + test/fixtures/grids/plain_2_6_2_3.json | 1 + test/fixtures/grids/plain_2_6_4_4.json | 1 + test/fixtures/grids/plain_2_6_5_3.json | 1 + test/fixtures/grids/plain_2_6_6_4.json | 1 + test/fixtures/grids/plain_2_6_7_3.json | 1 + test/fixtures/grids/plain_2_6_7_4.json | 1 + test/fixtures/grids/plain_2_6_9_4.json | 1 + test/fixtures/grids/plain_2_7_10_4.json | 1 + test/fixtures/grids/plain_2_7_11_4.json | 1 + test/fixtures/grids/plain_2_7_12_4.json | 1 + test/fixtures/grids/plain_2_7_14_4.json | 1 + test/fixtures/grids/plain_2_7_2_3.json | 1 + test/fixtures/grids/plain_2_7_4_3.json | 1 + test/fixtures/grids/plain_2_7_4_4.json | 1 + test/fixtures/grids/plain_2_7_5_3.json | 1 + test/fixtures/grids/plain_2_7_5_4.json | 1 + test/fixtures/grids/plain_2_7_6_3.json | 1 + test/fixtures/grids/plain_2_7_6_4.json | 1 + test/fixtures/grids/plain_2_7_7_3.json | 1 + test/fixtures/grids/plain_2_7_8_4.json | 1 + test/fixtures/grids/plain_2_8_10_4.json | 1 + test/fixtures/grids/plain_2_8_11_4.json | 1 + test/fixtures/grids/plain_2_8_12_4.json | 1 + test/fixtures/grids/plain_2_8_13_4.json | 1 + test/fixtures/grids/plain_2_8_14_4.json | 1 + test/fixtures/grids/plain_2_8_6_4.json | 1 + test/fixtures/grids/plain_2_8_7_4.json | 1 + test/fixtures/grids/plain_2_8_8_4.json | 1 + test/fixtures/grids/plain_2_9_10_4.json | 1 + test/fixtures/grids/plain_2_9_12_4.json | 1 + test/fixtures/grids/plain_2_9_13_4.json | 1 + test/fixtures/grids/plain_2_9_14_4.json | 1 + test/fixtures/grids/plain_2_9_4_4.json | 1 + test/fixtures/grids/plain_2_9_5_4.json | 1 + test/fixtures/grids/plain_2_9_6_4.json | 1 + test/fixtures/grids/plain_2_9_7_4.json | 1 + test/fixtures/grids/plain_2_9_8_4.json | 1 + test/fixtures/grids/plain_2_9_9_4.json | 1 + test/fixtures/images/plain_1_0_0_1.png | Bin 0 -> 1626 bytes test/fixtures/images/plain_1_0_11_4.png | Bin 0 -> 3140 bytes test/fixtures/images/plain_1_0_12_4.png | Bin 0 -> 1505 bytes test/fixtures/images/plain_1_0_13_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_14_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_1_1.png | Bin 0 -> 7414 bytes test/fixtures/images/plain_1_0_1_2.png | Bin 0 -> 651 bytes test/fixtures/images/plain_1_0_2_2.png | Bin 0 -> 2949 bytes test/fixtures/images/plain_1_0_3_2.png | Bin 0 -> 4171 bytes test/fixtures/images/plain_1_0_3_3.png | Bin 0 -> 748 bytes test/fixtures/images/plain_1_0_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_4_3.png | Bin 0 -> 452 bytes test/fixtures/images/plain_1_0_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_5_4.png | Bin 0 -> 328 bytes test/fixtures/images/plain_1_0_6_3.png | Bin 0 -> 1250 bytes test/fixtures/images/plain_1_0_7_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_0_7_4.png | Bin 0 -> 692 bytes test/fixtures/images/plain_1_0_8_4.png | Bin 0 -> 374 bytes test/fixtures/images/plain_1_0_9_4.png | Bin 0 -> 325 bytes test/fixtures/images/plain_1_10_10_4.png | Bin 0 -> 2786 bytes test/fixtures/images/plain_1_10_11_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_10_12_4.png | Bin 0 -> 3074 bytes test/fixtures/images/plain_1_10_13_4.png | Bin 0 -> 1473 bytes test/fixtures/images/plain_1_10_14_4.png | Bin 0 -> 3474 bytes test/fixtures/images/plain_1_10_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_10_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_10_5_4.png | Bin 0 -> 292 bytes test/fixtures/images/plain_1_10_6_4.png | Bin 0 -> 404 bytes test/fixtures/images/plain_1_10_8_4.png | Bin 0 -> 1768 bytes test/fixtures/images/plain_1_11_10_4.png | Bin 0 -> 1953 bytes test/fixtures/images/plain_1_11_11_4.png | Bin 0 -> 337 bytes test/fixtures/images/plain_1_11_12_4.png | Bin 0 -> 3689 bytes test/fixtures/images/plain_1_11_13_4.png | Bin 0 -> 1242 bytes test/fixtures/images/plain_1_11_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_11_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_11_6_4.png | Bin 0 -> 258 bytes test/fixtures/images/plain_1_11_7_4.png | Bin 0 -> 320 bytes test/fixtures/images/plain_1_11_8_4.png | Bin 0 -> 1909 bytes test/fixtures/images/plain_1_11_9_4.png | Bin 0 -> 3151 bytes test/fixtures/images/plain_1_12_10_4.png | Bin 0 -> 1432 bytes test/fixtures/images/plain_1_12_11_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_12_12_4.png | Bin 0 -> 719 bytes test/fixtures/images/plain_1_12_14_4.png | Bin 0 -> 1907 bytes test/fixtures/images/plain_1_12_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_12_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_12_6_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_12_8_4.png | Bin 0 -> 5460 bytes test/fixtures/images/plain_1_12_9_4.png | Bin 0 -> 1528 bytes test/fixtures/images/plain_1_13_10_4.png | Bin 0 -> 2032 bytes test/fixtures/images/plain_1_13_11_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_13_12_4.png | Bin 0 -> 2083 bytes test/fixtures/images/plain_1_13_14_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_13_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_13_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_13_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_13_7_4.png | Bin 0 -> 4463 bytes test/fixtures/images/plain_1_13_8_4.png | Bin 0 -> 4079 bytes test/fixtures/images/plain_1_13_9_4.png | Bin 0 -> 3709 bytes test/fixtures/images/plain_1_14_10_4.png | Bin 0 -> 3238 bytes test/fixtures/images/plain_1_14_11_4.png | Bin 0 -> 1235 bytes test/fixtures/images/plain_1_14_12_4.png | Bin 0 -> 1673 bytes test/fixtures/images/plain_1_14_14_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_14_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_14_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_14_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_14_5_4.png | Bin 0 -> 641 bytes test/fixtures/images/plain_1_14_6_4.png | Bin 0 -> 1860 bytes test/fixtures/images/plain_1_14_8_4.png | Bin 0 -> 446 bytes test/fixtures/images/plain_1_15_10_4.png | Bin 0 -> 841 bytes test/fixtures/images/plain_1_15_11_4.png | Bin 0 -> 2285 bytes test/fixtures/images/plain_1_15_12_4.png | Bin 0 -> 1406 bytes test/fixtures/images/plain_1_15_13_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_15_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_15_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_15_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_15_5_4.png | Bin 0 -> 1210 bytes test/fixtures/images/plain_1_15_7_4.png | Bin 0 -> 1743 bytes test/fixtures/images/plain_1_15_8_4.png | Bin 0 -> 517 bytes test/fixtures/images/plain_1_1_0_1.png | Bin 0 -> 2450 bytes test/fixtures/images/plain_1_1_0_2.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_10_4.png | Bin 0 -> 168 bytes test/fixtures/images/plain_1_1_11_4.png | Bin 0 -> 2753 bytes test/fixtures/images/plain_1_1_12_4.png | Bin 0 -> 1070 bytes test/fixtures/images/plain_1_1_14_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_1_1.png | Bin 0 -> 7815 bytes test/fixtures/images/plain_1_1_1_2.png | Bin 0 -> 2693 bytes test/fixtures/images/plain_1_1_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_2_2.png | Bin 0 -> 6220 bytes test/fixtures/images/plain_1_1_2_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_3_2.png | Bin 0 -> 6300 bytes test/fixtures/images/plain_1_1_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_4_3.png | Bin 0 -> 2000 bytes test/fixtures/images/plain_1_1_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_5_3.png | Bin 0 -> 2020 bytes test/fixtures/images/plain_1_1_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_1_6_3.png | Bin 0 -> 7502 bytes test/fixtures/images/plain_1_1_6_4.png | Bin 0 -> 317 bytes test/fixtures/images/plain_1_1_7_3.png | Bin 0 -> 1072 bytes test/fixtures/images/plain_1_1_8_4.png | Bin 0 -> 457 bytes test/fixtures/images/plain_1_1_9_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_0_2.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_10_4.png | Bin 0 -> 2746 bytes test/fixtures/images/plain_1_2_11_4.png | Bin 0 -> 1240 bytes test/fixtures/images/plain_1_2_12_4.png | Bin 0 -> 3247 bytes test/fixtures/images/plain_1_2_13_4.png | Bin 0 -> 2507 bytes test/fixtures/images/plain_1_2_14_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_1_2.png | Bin 0 -> 2179 bytes test/fixtures/images/plain_1_2_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_2_2.png | Bin 0 -> 8228 bytes test/fixtures/images/plain_1_2_2_3.png | Bin 0 -> 2221 bytes test/fixtures/images/plain_1_2_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_4_3.png | Bin 0 -> 4247 bytes test/fixtures/images/plain_1_2_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_5_3.png | Bin 0 -> 5688 bytes test/fixtures/images/plain_1_2_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_2_6_3.png | Bin 0 -> 6743 bytes test/fixtures/images/plain_1_2_6_4.png | Bin 0 -> 278 bytes test/fixtures/images/plain_1_2_7_3.png | Bin 0 -> 3907 bytes test/fixtures/images/plain_1_2_8_4.png | Bin 0 -> 173 bytes test/fixtures/images/plain_1_2_9_4.png | Bin 0 -> 1440 bytes test/fixtures/images/plain_1_3_0_2.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_10_4.png | Bin 0 -> 404 bytes test/fixtures/images/plain_1_3_11_4.png | Bin 0 -> 1079 bytes test/fixtures/images/plain_1_3_13_4.png | Bin 0 -> 5778 bytes test/fixtures/images/plain_1_3_14_4.png | Bin 0 -> 1951 bytes test/fixtures/images/plain_1_3_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_1_2.png | Bin 0 -> 3284 bytes test/fixtures/images/plain_1_3_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_2_3.png | Bin 0 -> 383 bytes test/fixtures/images/plain_1_3_3_2.png | Bin 0 -> 2483 bytes test/fixtures/images/plain_1_3_3_3.png | Bin 0 -> 793 bytes test/fixtures/images/plain_1_3_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_4_3.png | Bin 0 -> 2879 bytes test/fixtures/images/plain_1_3_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_3_6_3.png | Bin 0 -> 2561 bytes test/fixtures/images/plain_1_3_6_4.png | Bin 0 -> 266 bytes test/fixtures/images/plain_1_3_7_3.png | Bin 0 -> 2729 bytes test/fixtures/images/plain_1_3_7_4.png | Bin 0 -> 396 bytes test/fixtures/images/plain_1_3_8_4.png | Bin 0 -> 1259 bytes test/fixtures/images/plain_1_3_9_4.png | Bin 0 -> 1845 bytes test/fixtures/images/plain_1_4_10_4.png | Bin 0 -> 2437 bytes test/fixtures/images/plain_1_4_11_4.png | Bin 0 -> 4274 bytes test/fixtures/images/plain_1_4_12_4.png | Bin 0 -> 6068 bytes test/fixtures/images/plain_1_4_13_4.png | Bin 0 -> 5274 bytes test/fixtures/images/plain_1_4_15_4.png | Bin 0 -> 1078 bytes test/fixtures/images/plain_1_4_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_4_2_3.png | Bin 0 -> 273 bytes test/fixtures/images/plain_1_4_3_3.png | Bin 0 -> 3513 bytes test/fixtures/images/plain_1_4_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_4_4_3.png | Bin 0 -> 5839 bytes test/fixtures/images/plain_1_4_4_4.png | Bin 0 -> 261 bytes test/fixtures/images/plain_1_4_5_3.png | Bin 0 -> 7113 bytes test/fixtures/images/plain_1_4_6_3.png | Bin 0 -> 3186 bytes test/fixtures/images/plain_1_4_6_4.png | Bin 0 -> 1454 bytes test/fixtures/images/plain_1_4_7_3.png | Bin 0 -> 1252 bytes test/fixtures/images/plain_1_4_7_4.png | Bin 0 -> 2337 bytes test/fixtures/images/plain_1_4_8_4.png | Bin 0 -> 4029 bytes test/fixtures/images/plain_1_5_12_4.png | Bin 0 -> 3769 bytes test/fixtures/images/plain_1_5_14_4.png | Bin 0 -> 2979 bytes test/fixtures/images/plain_1_5_15_4.png | Bin 0 -> 873 bytes test/fixtures/images/plain_1_5_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_5_2_3.png | Bin 0 -> 405 bytes test/fixtures/images/plain_1_5_3_3.png | Bin 0 -> 782 bytes test/fixtures/images/plain_1_5_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_5_4_3.png | Bin 0 -> 4600 bytes test/fixtures/images/plain_1_5_5_4.png | Bin 0 -> 1266 bytes test/fixtures/images/plain_1_5_6_3.png | Bin 0 -> 3953 bytes test/fixtures/images/plain_1_5_6_4.png | Bin 0 -> 2371 bytes test/fixtures/images/plain_1_5_7_3.png | Bin 0 -> 1818 bytes test/fixtures/images/plain_1_5_7_4.png | Bin 0 -> 1386 bytes test/fixtures/images/plain_1_6_10_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_6_11_4.png | Bin 0 -> 1893 bytes test/fixtures/images/plain_1_6_12_4.png | Bin 0 -> 2615 bytes test/fixtures/images/plain_1_6_14_4.png | Bin 0 -> 1720 bytes test/fixtures/images/plain_1_6_15_4.png | Bin 0 -> 2388 bytes test/fixtures/images/plain_1_6_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_6_2_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_6_3_3.png | Bin 0 -> 3218 bytes test/fixtures/images/plain_1_6_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_6_4_4.png | Bin 0 -> 333 bytes test/fixtures/images/plain_1_6_5_3.png | Bin 0 -> 1650 bytes test/fixtures/images/plain_1_6_5_4.png | Bin 0 -> 420 bytes test/fixtures/images/plain_1_6_6_3.png | Bin 0 -> 2715 bytes test/fixtures/images/plain_1_6_7_4.png | Bin 0 -> 1143 bytes test/fixtures/images/plain_1_6_8_4.png | Bin 0 -> 377 bytes test/fixtures/images/plain_1_6_9_4.png | Bin 0 -> 359 bytes test/fixtures/images/plain_1_7_11_4.png | Bin 0 -> 2536 bytes test/fixtures/images/plain_1_7_12_4.png | Bin 0 -> 933 bytes test/fixtures/images/plain_1_7_14_4.png | Bin 0 -> 2142 bytes test/fixtures/images/plain_1_7_15_4.png | Bin 0 -> 288 bytes test/fixtures/images/plain_1_7_1_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_7_2_3.png | Bin 0 -> 890 bytes test/fixtures/images/plain_1_7_3_3.png | Bin 0 -> 3561 bytes test/fixtures/images/plain_1_7_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_7_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_7_5_3.png | Bin 0 -> 3225 bytes test/fixtures/images/plain_1_7_5_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_7_6_3.png | Bin 0 -> 2111 bytes test/fixtures/images/plain_1_7_6_4.png | Bin 0 -> 279 bytes test/fixtures/images/plain_1_7_7_3.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_7_8_4.png | Bin 0 -> 3128 bytes test/fixtures/images/plain_1_7_9_4.png | Bin 0 -> 2494 bytes test/fixtures/images/plain_1_8_10_4.png | Bin 0 -> 5863 bytes test/fixtures/images/plain_1_8_12_4.png | Bin 0 -> 2348 bytes test/fixtures/images/plain_1_8_13_4.png | Bin 0 -> 2199 bytes test/fixtures/images/plain_1_8_14_4.png | Bin 0 -> 1828 bytes test/fixtures/images/plain_1_8_15_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_8_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_8_4_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_8_5_4.png | Bin 0 -> 250 bytes test/fixtures/images/plain_1_8_6_4.png | Bin 0 -> 1021 bytes test/fixtures/images/plain_1_8_7_4.png | Bin 0 -> 1929 bytes test/fixtures/images/plain_1_8_8_4.png | Bin 0 -> 3310 bytes test/fixtures/images/plain_1_8_9_4.png | Bin 0 -> 3044 bytes test/fixtures/images/plain_1_9_10_4.png | Bin 0 -> 3687 bytes test/fixtures/images/plain_1_9_11_4.png | Bin 0 -> 2940 bytes test/fixtures/images/plain_1_9_12_4.png | Bin 0 -> 2820 bytes test/fixtures/images/plain_1_9_13_4.png | Bin 0 -> 813 bytes test/fixtures/images/plain_1_9_14_4.png | Bin 0 -> 933 bytes test/fixtures/images/plain_1_9_3_4.png | Bin 0 -> 103 bytes test/fixtures/images/plain_1_9_5_4.png | Bin 0 -> 284 bytes test/fixtures/images/plain_1_9_6_4.png | Bin 0 -> 1752 bytes test/fixtures/images/plain_1_9_7_4.png | Bin 0 -> 3479 bytes test/fixtures/images/plain_1_9_9_4.png | Bin 0 -> 4322 bytes 417 files changed, 191 insertions(+) create mode 100644 test/fixtures/grids/plain_2_0_0_0.json create mode 100644 test/fixtures/grids/plain_2_0_0_1.json create mode 100644 test/fixtures/grids/plain_2_0_10_4.json create mode 100644 test/fixtures/grids/plain_2_0_11_4.json create mode 100644 test/fixtures/grids/plain_2_0_12_4.json create mode 100644 test/fixtures/grids/plain_2_0_13_4.json create mode 100644 test/fixtures/grids/plain_2_0_14_4.json create mode 100644 test/fixtures/grids/plain_2_0_1_1.json create mode 100644 test/fixtures/grids/plain_2_0_1_2.json create mode 100644 test/fixtures/grids/plain_2_0_2_2.json create mode 100644 test/fixtures/grids/plain_2_0_2_3.json create mode 100644 test/fixtures/grids/plain_2_0_3_2.json create mode 100644 test/fixtures/grids/plain_2_0_3_3.json create mode 100644 test/fixtures/grids/plain_2_0_4_3.json create mode 100644 test/fixtures/grids/plain_2_0_4_4.json create mode 100644 test/fixtures/grids/plain_2_0_5_3.json create mode 100644 test/fixtures/grids/plain_2_0_5_4.json create mode 100644 test/fixtures/grids/plain_2_0_6_3.json create mode 100644 test/fixtures/grids/plain_2_0_6_4.json create mode 100644 test/fixtures/grids/plain_2_0_7_3.json create mode 100644 test/fixtures/grids/plain_2_0_8_4.json create mode 100644 test/fixtures/grids/plain_2_0_9_4.json create mode 100644 test/fixtures/grids/plain_2_10_10_4.json create mode 100644 test/fixtures/grids/plain_2_10_11_4.json create mode 100644 test/fixtures/grids/plain_2_10_13_4.json create mode 100644 test/fixtures/grids/plain_2_10_4_4.json create mode 100644 test/fixtures/grids/plain_2_10_5_4.json create mode 100644 test/fixtures/grids/plain_2_10_6_4.json create mode 100644 test/fixtures/grids/plain_2_10_7_4.json create mode 100644 test/fixtures/grids/plain_2_10_8_4.json create mode 100644 test/fixtures/grids/plain_2_11_10_4.json create mode 100644 test/fixtures/grids/plain_2_11_11_4.json create mode 100644 test/fixtures/grids/plain_2_11_12_4.json create mode 100644 test/fixtures/grids/plain_2_11_13_4.json create mode 100644 test/fixtures/grids/plain_2_11_14_4.json create mode 100644 test/fixtures/grids/plain_2_11_5_4.json create mode 100644 test/fixtures/grids/plain_2_11_8_4.json create mode 100644 test/fixtures/grids/plain_2_11_9_4.json create mode 100644 test/fixtures/grids/plain_2_12_10_4.json create mode 100644 test/fixtures/grids/plain_2_12_11_4.json create mode 100644 test/fixtures/grids/plain_2_12_12_4.json create mode 100644 test/fixtures/grids/plain_2_12_13_4.json create mode 100644 test/fixtures/grids/plain_2_12_14_4.json create mode 100644 test/fixtures/grids/plain_2_12_4_4.json create mode 100644 test/fixtures/grids/plain_2_12_6_4.json create mode 100644 test/fixtures/grids/plain_2_12_7_4.json create mode 100644 test/fixtures/grids/plain_2_12_8_4.json create mode 100644 test/fixtures/grids/plain_2_12_9_4.json create mode 100644 test/fixtures/grids/plain_2_13_12_4.json create mode 100644 test/fixtures/grids/plain_2_13_13_4.json create mode 100644 test/fixtures/grids/plain_2_13_14_4.json create mode 100644 test/fixtures/grids/plain_2_13_4_4.json create mode 100644 test/fixtures/grids/plain_2_13_5_4.json create mode 100644 test/fixtures/grids/plain_2_13_6_4.json create mode 100644 test/fixtures/grids/plain_2_13_7_4.json create mode 100644 test/fixtures/grids/plain_2_13_8_4.json create mode 100644 test/fixtures/grids/plain_2_13_9_4.json create mode 100644 test/fixtures/grids/plain_2_14_11_4.json create mode 100644 test/fixtures/grids/plain_2_14_12_4.json create mode 100644 test/fixtures/grids/plain_2_14_13_4.json create mode 100644 test/fixtures/grids/plain_2_14_14_4.json create mode 100644 test/fixtures/grids/plain_2_14_4_4.json create mode 100644 test/fixtures/grids/plain_2_14_6_4.json create mode 100644 test/fixtures/grids/plain_2_14_7_4.json create mode 100644 test/fixtures/grids/plain_2_14_8_4.json create mode 100644 test/fixtures/grids/plain_2_14_9_4.json create mode 100644 test/fixtures/grids/plain_2_15_10_4.json create mode 100644 test/fixtures/grids/plain_2_15_11_4.json create mode 100644 test/fixtures/grids/plain_2_15_13_4.json create mode 100644 test/fixtures/grids/plain_2_15_4_4.json create mode 100644 test/fixtures/grids/plain_2_15_5_4.json create mode 100644 test/fixtures/grids/plain_2_15_6_4.json create mode 100644 test/fixtures/grids/plain_2_15_7_4.json create mode 100644 test/fixtures/grids/plain_2_15_8_4.json create mode 100644 test/fixtures/grids/plain_2_15_9_4.json create mode 100644 test/fixtures/grids/plain_2_1_0_1.json create mode 100644 test/fixtures/grids/plain_2_1_10_4.json create mode 100644 test/fixtures/grids/plain_2_1_11_4.json create mode 100644 test/fixtures/grids/plain_2_1_12_4.json create mode 100644 test/fixtures/grids/plain_2_1_13_4.json create mode 100644 test/fixtures/grids/plain_2_1_1_1.json create mode 100644 test/fixtures/grids/plain_2_1_1_2.json create mode 100644 test/fixtures/grids/plain_2_1_2_2.json create mode 100644 test/fixtures/grids/plain_2_1_2_3.json create mode 100644 test/fixtures/grids/plain_2_1_3_3.json create mode 100644 test/fixtures/grids/plain_2_1_4_3.json create mode 100644 test/fixtures/grids/plain_2_1_4_4.json create mode 100644 test/fixtures/grids/plain_2_1_5_3.json create mode 100644 test/fixtures/grids/plain_2_1_5_4.json create mode 100644 test/fixtures/grids/plain_2_1_6_3.json create mode 100644 test/fixtures/grids/plain_2_1_6_4.json create mode 100644 test/fixtures/grids/plain_2_1_7_3.json create mode 100644 test/fixtures/grids/plain_2_1_7_4.json create mode 100644 test/fixtures/grids/plain_2_1_8_4.json create mode 100644 test/fixtures/grids/plain_2_2_10_4.json create mode 100644 test/fixtures/grids/plain_2_2_11_4.json create mode 100644 test/fixtures/grids/plain_2_2_1_2.json create mode 100644 test/fixtures/grids/plain_2_2_2_2.json create mode 100644 test/fixtures/grids/plain_2_2_2_3.json create mode 100644 test/fixtures/grids/plain_2_2_3_2.json create mode 100644 test/fixtures/grids/plain_2_2_3_3.json create mode 100644 test/fixtures/grids/plain_2_2_5_3.json create mode 100644 test/fixtures/grids/plain_2_2_5_4.json create mode 100644 test/fixtures/grids/plain_2_2_6_3.json create mode 100644 test/fixtures/grids/plain_2_2_6_4.json create mode 100644 test/fixtures/grids/plain_2_2_7_3.json create mode 100644 test/fixtures/grids/plain_2_2_7_4.json create mode 100644 test/fixtures/grids/plain_2_2_8_4.json create mode 100644 test/fixtures/grids/plain_2_2_9_4.json create mode 100644 test/fixtures/grids/plain_2_3_10_4.json create mode 100644 test/fixtures/grids/plain_2_3_11_4.json create mode 100644 test/fixtures/grids/plain_2_3_12_4.json create mode 100644 test/fixtures/grids/plain_2_3_14_4.json create mode 100644 test/fixtures/grids/plain_2_3_2_2.json create mode 100644 test/fixtures/grids/plain_2_3_2_3.json create mode 100644 test/fixtures/grids/plain_2_3_3_2.json create mode 100644 test/fixtures/grids/plain_2_3_3_3.json create mode 100644 test/fixtures/grids/plain_2_3_4_3.json create mode 100644 test/fixtures/grids/plain_2_3_5_4.json create mode 100644 test/fixtures/grids/plain_2_3_6_3.json create mode 100644 test/fixtures/grids/plain_2_3_6_4.json create mode 100644 test/fixtures/grids/plain_2_3_7_3.json create mode 100644 test/fixtures/grids/plain_2_3_7_4.json create mode 100644 test/fixtures/grids/plain_2_3_8_4.json create mode 100644 test/fixtures/grids/plain_2_3_9_4.json create mode 100644 test/fixtures/grids/plain_2_4_10_4.json create mode 100644 test/fixtures/grids/plain_2_4_11_4.json create mode 100644 test/fixtures/grids/plain_2_4_12_4.json create mode 100644 test/fixtures/grids/plain_2_4_13_4.json create mode 100644 test/fixtures/grids/plain_2_4_4_3.json create mode 100644 test/fixtures/grids/plain_2_4_4_4.json create mode 100644 test/fixtures/grids/plain_2_4_5_3.json create mode 100644 test/fixtures/grids/plain_2_4_5_4.json create mode 100644 test/fixtures/grids/plain_2_4_6_3.json create mode 100644 test/fixtures/grids/plain_2_4_6_4.json create mode 100644 test/fixtures/grids/plain_2_4_7_4.json create mode 100644 test/fixtures/grids/plain_2_4_8_4.json create mode 100644 test/fixtures/grids/plain_2_5_10_4.json create mode 100644 test/fixtures/grids/plain_2_5_11_4.json create mode 100644 test/fixtures/grids/plain_2_5_13_4.json create mode 100644 test/fixtures/grids/plain_2_5_2_3.json create mode 100644 test/fixtures/grids/plain_2_5_3_3.json create mode 100644 test/fixtures/grids/plain_2_5_5_3.json create mode 100644 test/fixtures/grids/plain_2_5_6_4.json create mode 100644 test/fixtures/grids/plain_2_5_7_3.json create mode 100644 test/fixtures/grids/plain_2_5_7_4.json create mode 100644 test/fixtures/grids/plain_2_5_8_4.json create mode 100644 test/fixtures/grids/plain_2_5_9_4.json create mode 100644 test/fixtures/grids/plain_2_6_10_4.json create mode 100644 test/fixtures/grids/plain_2_6_11_4.json create mode 100644 test/fixtures/grids/plain_2_6_12_4.json create mode 100644 test/fixtures/grids/plain_2_6_13_4.json create mode 100644 test/fixtures/grids/plain_2_6_14_4.json create mode 100644 test/fixtures/grids/plain_2_6_2_3.json create mode 100644 test/fixtures/grids/plain_2_6_4_4.json create mode 100644 test/fixtures/grids/plain_2_6_5_3.json create mode 100644 test/fixtures/grids/plain_2_6_6_4.json create mode 100644 test/fixtures/grids/plain_2_6_7_3.json create mode 100644 test/fixtures/grids/plain_2_6_7_4.json create mode 100644 test/fixtures/grids/plain_2_6_9_4.json create mode 100644 test/fixtures/grids/plain_2_7_10_4.json create mode 100644 test/fixtures/grids/plain_2_7_11_4.json create mode 100644 test/fixtures/grids/plain_2_7_12_4.json create mode 100644 test/fixtures/grids/plain_2_7_14_4.json create mode 100644 test/fixtures/grids/plain_2_7_2_3.json create mode 100644 test/fixtures/grids/plain_2_7_4_3.json create mode 100644 test/fixtures/grids/plain_2_7_4_4.json create mode 100644 test/fixtures/grids/plain_2_7_5_3.json create mode 100644 test/fixtures/grids/plain_2_7_5_4.json create mode 100644 test/fixtures/grids/plain_2_7_6_3.json create mode 100644 test/fixtures/grids/plain_2_7_6_4.json create mode 100644 test/fixtures/grids/plain_2_7_7_3.json create mode 100644 test/fixtures/grids/plain_2_7_8_4.json create mode 100644 test/fixtures/grids/plain_2_8_10_4.json create mode 100644 test/fixtures/grids/plain_2_8_11_4.json create mode 100644 test/fixtures/grids/plain_2_8_12_4.json create mode 100644 test/fixtures/grids/plain_2_8_13_4.json create mode 100644 test/fixtures/grids/plain_2_8_14_4.json create mode 100644 test/fixtures/grids/plain_2_8_6_4.json create mode 100644 test/fixtures/grids/plain_2_8_7_4.json create mode 100644 test/fixtures/grids/plain_2_8_8_4.json create mode 100644 test/fixtures/grids/plain_2_9_10_4.json create mode 100644 test/fixtures/grids/plain_2_9_12_4.json create mode 100644 test/fixtures/grids/plain_2_9_13_4.json create mode 100644 test/fixtures/grids/plain_2_9_14_4.json create mode 100644 test/fixtures/grids/plain_2_9_4_4.json create mode 100644 test/fixtures/grids/plain_2_9_5_4.json create mode 100644 test/fixtures/grids/plain_2_9_6_4.json create mode 100644 test/fixtures/grids/plain_2_9_7_4.json create mode 100644 test/fixtures/grids/plain_2_9_8_4.json create mode 100644 test/fixtures/grids/plain_2_9_9_4.json create mode 100644 test/fixtures/images/plain_1_0_0_1.png create mode 100644 test/fixtures/images/plain_1_0_11_4.png create mode 100644 test/fixtures/images/plain_1_0_12_4.png create mode 100644 test/fixtures/images/plain_1_0_13_4.png create mode 100644 test/fixtures/images/plain_1_0_14_4.png create mode 100644 test/fixtures/images/plain_1_0_15_4.png create mode 100644 test/fixtures/images/plain_1_0_1_1.png create mode 100644 test/fixtures/images/plain_1_0_1_2.png create mode 100644 test/fixtures/images/plain_1_0_2_2.png create mode 100644 test/fixtures/images/plain_1_0_3_2.png create mode 100644 test/fixtures/images/plain_1_0_3_3.png create mode 100644 test/fixtures/images/plain_1_0_3_4.png create mode 100644 test/fixtures/images/plain_1_0_4_3.png create mode 100644 test/fixtures/images/plain_1_0_4_4.png create mode 100644 test/fixtures/images/plain_1_0_5_4.png create mode 100644 test/fixtures/images/plain_1_0_6_3.png create mode 100644 test/fixtures/images/plain_1_0_7_3.png create mode 100644 test/fixtures/images/plain_1_0_7_4.png create mode 100644 test/fixtures/images/plain_1_0_8_4.png create mode 100644 test/fixtures/images/plain_1_0_9_4.png create mode 100644 test/fixtures/images/plain_1_10_10_4.png create mode 100644 test/fixtures/images/plain_1_10_11_4.png create mode 100644 test/fixtures/images/plain_1_10_12_4.png create mode 100644 test/fixtures/images/plain_1_10_13_4.png create mode 100644 test/fixtures/images/plain_1_10_14_4.png create mode 100644 test/fixtures/images/plain_1_10_15_4.png create mode 100644 test/fixtures/images/plain_1_10_4_4.png create mode 100644 test/fixtures/images/plain_1_10_5_4.png create mode 100644 test/fixtures/images/plain_1_10_6_4.png create mode 100644 test/fixtures/images/plain_1_10_8_4.png create mode 100644 test/fixtures/images/plain_1_11_10_4.png create mode 100644 test/fixtures/images/plain_1_11_11_4.png create mode 100644 test/fixtures/images/plain_1_11_12_4.png create mode 100644 test/fixtures/images/plain_1_11_13_4.png create mode 100644 test/fixtures/images/plain_1_11_15_4.png create mode 100644 test/fixtures/images/plain_1_11_4_4.png create mode 100644 test/fixtures/images/plain_1_11_6_4.png create mode 100644 test/fixtures/images/plain_1_11_7_4.png create mode 100644 test/fixtures/images/plain_1_11_8_4.png create mode 100644 test/fixtures/images/plain_1_11_9_4.png create mode 100644 test/fixtures/images/plain_1_12_10_4.png create mode 100644 test/fixtures/images/plain_1_12_11_4.png create mode 100644 test/fixtures/images/plain_1_12_12_4.png create mode 100644 test/fixtures/images/plain_1_12_14_4.png create mode 100644 test/fixtures/images/plain_1_12_15_4.png create mode 100644 test/fixtures/images/plain_1_12_5_4.png create mode 100644 test/fixtures/images/plain_1_12_6_4.png create mode 100644 test/fixtures/images/plain_1_12_8_4.png create mode 100644 test/fixtures/images/plain_1_12_9_4.png create mode 100644 test/fixtures/images/plain_1_13_10_4.png create mode 100644 test/fixtures/images/plain_1_13_11_4.png create mode 100644 test/fixtures/images/plain_1_13_12_4.png create mode 100644 test/fixtures/images/plain_1_13_14_4.png create mode 100644 test/fixtures/images/plain_1_13_15_4.png create mode 100644 test/fixtures/images/plain_1_13_3_4.png create mode 100644 test/fixtures/images/plain_1_13_5_4.png create mode 100644 test/fixtures/images/plain_1_13_7_4.png create mode 100644 test/fixtures/images/plain_1_13_8_4.png create mode 100644 test/fixtures/images/plain_1_13_9_4.png create mode 100644 test/fixtures/images/plain_1_14_10_4.png create mode 100644 test/fixtures/images/plain_1_14_11_4.png create mode 100644 test/fixtures/images/plain_1_14_12_4.png create mode 100644 test/fixtures/images/plain_1_14_14_4.png create mode 100644 test/fixtures/images/plain_1_14_15_4.png create mode 100644 test/fixtures/images/plain_1_14_3_4.png create mode 100644 test/fixtures/images/plain_1_14_4_4.png create mode 100644 test/fixtures/images/plain_1_14_5_4.png create mode 100644 test/fixtures/images/plain_1_14_6_4.png create mode 100644 test/fixtures/images/plain_1_14_8_4.png create mode 100644 test/fixtures/images/plain_1_15_10_4.png create mode 100644 test/fixtures/images/plain_1_15_11_4.png create mode 100644 test/fixtures/images/plain_1_15_12_4.png create mode 100644 test/fixtures/images/plain_1_15_13_4.png create mode 100644 test/fixtures/images/plain_1_15_15_4.png create mode 100644 test/fixtures/images/plain_1_15_3_4.png create mode 100644 test/fixtures/images/plain_1_15_4_4.png create mode 100644 test/fixtures/images/plain_1_15_5_4.png create mode 100644 test/fixtures/images/plain_1_15_7_4.png create mode 100644 test/fixtures/images/plain_1_15_8_4.png create mode 100644 test/fixtures/images/plain_1_1_0_1.png create mode 100644 test/fixtures/images/plain_1_1_0_2.png create mode 100644 test/fixtures/images/plain_1_1_10_4.png create mode 100644 test/fixtures/images/plain_1_1_11_4.png create mode 100644 test/fixtures/images/plain_1_1_12_4.png create mode 100644 test/fixtures/images/plain_1_1_14_4.png create mode 100644 test/fixtures/images/plain_1_1_1_1.png create mode 100644 test/fixtures/images/plain_1_1_1_2.png create mode 100644 test/fixtures/images/plain_1_1_1_3.png create mode 100644 test/fixtures/images/plain_1_1_2_2.png create mode 100644 test/fixtures/images/plain_1_1_2_3.png create mode 100644 test/fixtures/images/plain_1_1_3_2.png create mode 100644 test/fixtures/images/plain_1_1_3_4.png create mode 100644 test/fixtures/images/plain_1_1_4_3.png create mode 100644 test/fixtures/images/plain_1_1_4_4.png create mode 100644 test/fixtures/images/plain_1_1_5_3.png create mode 100644 test/fixtures/images/plain_1_1_5_4.png create mode 100644 test/fixtures/images/plain_1_1_6_3.png create mode 100644 test/fixtures/images/plain_1_1_6_4.png create mode 100644 test/fixtures/images/plain_1_1_7_3.png create mode 100644 test/fixtures/images/plain_1_1_8_4.png create mode 100644 test/fixtures/images/plain_1_1_9_4.png create mode 100644 test/fixtures/images/plain_1_2_0_2.png create mode 100644 test/fixtures/images/plain_1_2_10_4.png create mode 100644 test/fixtures/images/plain_1_2_11_4.png create mode 100644 test/fixtures/images/plain_1_2_12_4.png create mode 100644 test/fixtures/images/plain_1_2_13_4.png create mode 100644 test/fixtures/images/plain_1_2_14_4.png create mode 100644 test/fixtures/images/plain_1_2_1_2.png create mode 100644 test/fixtures/images/plain_1_2_1_3.png create mode 100644 test/fixtures/images/plain_1_2_2_2.png create mode 100644 test/fixtures/images/plain_1_2_2_3.png create mode 100644 test/fixtures/images/plain_1_2_3_4.png create mode 100644 test/fixtures/images/plain_1_2_4_3.png create mode 100644 test/fixtures/images/plain_1_2_4_4.png create mode 100644 test/fixtures/images/plain_1_2_5_3.png create mode 100644 test/fixtures/images/plain_1_2_5_4.png create mode 100644 test/fixtures/images/plain_1_2_6_3.png create mode 100644 test/fixtures/images/plain_1_2_6_4.png create mode 100644 test/fixtures/images/plain_1_2_7_3.png create mode 100644 test/fixtures/images/plain_1_2_8_4.png create mode 100644 test/fixtures/images/plain_1_2_9_4.png create mode 100644 test/fixtures/images/plain_1_3_0_2.png create mode 100644 test/fixtures/images/plain_1_3_10_4.png create mode 100644 test/fixtures/images/plain_1_3_11_4.png create mode 100644 test/fixtures/images/plain_1_3_13_4.png create mode 100644 test/fixtures/images/plain_1_3_14_4.png create mode 100644 test/fixtures/images/plain_1_3_15_4.png create mode 100644 test/fixtures/images/plain_1_3_1_2.png create mode 100644 test/fixtures/images/plain_1_3_1_3.png create mode 100644 test/fixtures/images/plain_1_3_2_3.png create mode 100644 test/fixtures/images/plain_1_3_3_2.png create mode 100644 test/fixtures/images/plain_1_3_3_3.png create mode 100644 test/fixtures/images/plain_1_3_3_4.png create mode 100644 test/fixtures/images/plain_1_3_4_3.png create mode 100644 test/fixtures/images/plain_1_3_4_4.png create mode 100644 test/fixtures/images/plain_1_3_5_4.png create mode 100644 test/fixtures/images/plain_1_3_6_3.png create mode 100644 test/fixtures/images/plain_1_3_6_4.png create mode 100644 test/fixtures/images/plain_1_3_7_3.png create mode 100644 test/fixtures/images/plain_1_3_7_4.png create mode 100644 test/fixtures/images/plain_1_3_8_4.png create mode 100644 test/fixtures/images/plain_1_3_9_4.png create mode 100644 test/fixtures/images/plain_1_4_10_4.png create mode 100644 test/fixtures/images/plain_1_4_11_4.png create mode 100644 test/fixtures/images/plain_1_4_12_4.png create mode 100644 test/fixtures/images/plain_1_4_13_4.png create mode 100644 test/fixtures/images/plain_1_4_15_4.png create mode 100644 test/fixtures/images/plain_1_4_1_3.png create mode 100644 test/fixtures/images/plain_1_4_2_3.png create mode 100644 test/fixtures/images/plain_1_4_3_3.png create mode 100644 test/fixtures/images/plain_1_4_3_4.png create mode 100644 test/fixtures/images/plain_1_4_4_3.png create mode 100644 test/fixtures/images/plain_1_4_4_4.png create mode 100644 test/fixtures/images/plain_1_4_5_3.png create mode 100644 test/fixtures/images/plain_1_4_6_3.png create mode 100644 test/fixtures/images/plain_1_4_6_4.png create mode 100644 test/fixtures/images/plain_1_4_7_3.png create mode 100644 test/fixtures/images/plain_1_4_7_4.png create mode 100644 test/fixtures/images/plain_1_4_8_4.png create mode 100644 test/fixtures/images/plain_1_5_12_4.png create mode 100644 test/fixtures/images/plain_1_5_14_4.png create mode 100644 test/fixtures/images/plain_1_5_15_4.png create mode 100644 test/fixtures/images/plain_1_5_1_3.png create mode 100644 test/fixtures/images/plain_1_5_2_3.png create mode 100644 test/fixtures/images/plain_1_5_3_3.png create mode 100644 test/fixtures/images/plain_1_5_3_4.png create mode 100644 test/fixtures/images/plain_1_5_4_3.png create mode 100644 test/fixtures/images/plain_1_5_5_4.png create mode 100644 test/fixtures/images/plain_1_5_6_3.png create mode 100644 test/fixtures/images/plain_1_5_6_4.png create mode 100644 test/fixtures/images/plain_1_5_7_3.png create mode 100644 test/fixtures/images/plain_1_5_7_4.png create mode 100644 test/fixtures/images/plain_1_6_10_4.png create mode 100644 test/fixtures/images/plain_1_6_11_4.png create mode 100644 test/fixtures/images/plain_1_6_12_4.png create mode 100644 test/fixtures/images/plain_1_6_14_4.png create mode 100644 test/fixtures/images/plain_1_6_15_4.png create mode 100644 test/fixtures/images/plain_1_6_1_3.png create mode 100644 test/fixtures/images/plain_1_6_2_3.png create mode 100644 test/fixtures/images/plain_1_6_3_3.png create mode 100644 test/fixtures/images/plain_1_6_3_4.png create mode 100644 test/fixtures/images/plain_1_6_4_4.png create mode 100644 test/fixtures/images/plain_1_6_5_3.png create mode 100644 test/fixtures/images/plain_1_6_5_4.png create mode 100644 test/fixtures/images/plain_1_6_6_3.png create mode 100644 test/fixtures/images/plain_1_6_7_4.png create mode 100644 test/fixtures/images/plain_1_6_8_4.png create mode 100644 test/fixtures/images/plain_1_6_9_4.png create mode 100644 test/fixtures/images/plain_1_7_11_4.png create mode 100644 test/fixtures/images/plain_1_7_12_4.png create mode 100644 test/fixtures/images/plain_1_7_14_4.png create mode 100644 test/fixtures/images/plain_1_7_15_4.png create mode 100644 test/fixtures/images/plain_1_7_1_3.png create mode 100644 test/fixtures/images/plain_1_7_2_3.png create mode 100644 test/fixtures/images/plain_1_7_3_3.png create mode 100644 test/fixtures/images/plain_1_7_3_4.png create mode 100644 test/fixtures/images/plain_1_7_4_4.png create mode 100644 test/fixtures/images/plain_1_7_5_3.png create mode 100644 test/fixtures/images/plain_1_7_5_4.png create mode 100644 test/fixtures/images/plain_1_7_6_3.png create mode 100644 test/fixtures/images/plain_1_7_6_4.png create mode 100644 test/fixtures/images/plain_1_7_7_3.png create mode 100644 test/fixtures/images/plain_1_7_8_4.png create mode 100644 test/fixtures/images/plain_1_7_9_4.png create mode 100644 test/fixtures/images/plain_1_8_10_4.png create mode 100644 test/fixtures/images/plain_1_8_12_4.png create mode 100644 test/fixtures/images/plain_1_8_13_4.png create mode 100644 test/fixtures/images/plain_1_8_14_4.png create mode 100644 test/fixtures/images/plain_1_8_15_4.png create mode 100644 test/fixtures/images/plain_1_8_3_4.png create mode 100644 test/fixtures/images/plain_1_8_4_4.png create mode 100644 test/fixtures/images/plain_1_8_5_4.png create mode 100644 test/fixtures/images/plain_1_8_6_4.png create mode 100644 test/fixtures/images/plain_1_8_7_4.png create mode 100644 test/fixtures/images/plain_1_8_8_4.png create mode 100644 test/fixtures/images/plain_1_8_9_4.png create mode 100644 test/fixtures/images/plain_1_9_10_4.png create mode 100644 test/fixtures/images/plain_1_9_11_4.png create mode 100644 test/fixtures/images/plain_1_9_12_4.png create mode 100644 test/fixtures/images/plain_1_9_13_4.png create mode 100644 test/fixtures/images/plain_1_9_14_4.png create mode 100644 test/fixtures/images/plain_1_9_3_4.png create mode 100644 test/fixtures/images/plain_1_9_5_4.png create mode 100644 test/fixtures/images/plain_1_9_6_4.png create mode 100644 test/fixtures/images/plain_1_9_7_4.png create mode 100644 test/fixtures/images/plain_1_9_9_4.png diff --git a/test/fixtures/grids/plain_2_0_0_0.json b/test/fixtures/grids/plain_2_0_0_0.json new file mode 100644 index 0000000..9573582 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_0_0.json @@ -0,0 +1 @@ +{"grid":[" "," "," !!!! "," #### !!!!!! "," #####!!!!!!!!! "," #####!!!!!!!!!! $$$$ $$$ "," #####!!!!!!!!!!! %%% $$$$ $ $$ "," #######!!!!!!!!! %%%%% $$$ $ $$$ "," ########!!!!!!!!!! %%%%% $$$$ "," #########!!!!!!!!!! %%% $$ $$$$$$ "," #########!!!!!!!!!! % % $$$ $$$$$$$ $$$$ "," ######### !!!!!!!! % $$ $$$$$$$ $$$ "," ########## !!!!!!!! $$ $$$$$$$$$$$ $$ ","$ && ########### !!!!!!! % ''' $$$$$$$$$$$$$$$$$$$$ $","$ &&&&&############## !!!!!!! '('$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$&&&&&###############!!!!!! ) ((($$$$$$$$$$$$$$$$$$$$$$$$$$$","$$&&&&&###############!!!! ))) '((($$$$$$$$$$$$$$$$$$$$$$$$$$$"," &&&&&&############## !!! )))* ''((+$$$$$$$$$$$$$$$$$$$$$$$$$$$"," &&&&&&&&####### #### !! *,'((($$$$$$$$$$$$$$$$$$$$$$$$$$$ "," && &&############# ,,'((($$$$$$$$$$$$$$$$$$$$$$ $$ "," &&& &############## ,,,-($.$$$$$$$$$$$$$$$$$$$$$ $$$& ","&& ##&&&&&&####### ,,,-./////$$$000$$$$$$$$$$$$ $$ &"," &&&&&&&&&#&&1# 22345////$06000077777778$$$$ "," &&&&&&&&&&&& 999::55//;$6666008777778<$$$$ "," &&&&&&&&&& = 999>::;;;;?@@66A88888888B CC "," &&&&&&&&& = 99D>EEE;;FG?@@HHI8888888BCC "," J&&&&&& 9KKLD>EEEMNNN?HHHHOOII8888CC "," & JJJ& P&P KKKQDRRESSSNNTHHHIIOI8U8VWC "," && JJJJPXYZ [KKQ]RRRESSS^^^_ IIII`aUU b c "," JJddef g [hhQiijjSSSS^^^ II IaUU bb k "," lmnnnno ppiqjjrSSSsss II taUUbbbu "," v w wwnnnox yzj{|rS}}ss ttttttt "," ww~~~xxxxxx ||}€€ ttttttttt "," ‚ ~~~xxxxxx ƒƒ€€ „ tttt…ttt†† ","‡ˆ ‚ ~~xxxxxx ‰ƒƒŠ€‹Œ  †Ž "," ‚ ~‘‘xxx ’ƒŠŠ“ŒŒ”•  –ŽŽ"," —‘‘‘xx ’’˜Š‹ŒŒ  – ","™ —š››x ’’œœ  "," —š››   ™™"," ——šš  ™™","™ ——š  ™™™"," ——š ž ž ™™ "," —— Ÿ ž ™™ "," ———   ¡  ","   "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","GRL","CAN","RUS","SJM","USA","NOR","SWE","ISL","FRO","FIN","GBR","NLD","POL","UKR","KAZ","SPM","FRA","CHE","SVN","SRB","UZB","MNG","CHN","ESP","ITA","TUR","PRK","PRT","TUN","IRN","TKM","TJK","KOR","JPN","DZA","LBY","SYR","IRQ","PAK","IND","MEX","ESH","MAR","EGY","SAU","NPL","CUB","MRT","NER","SDN","ARE","VNM","HKG","TWN","JAM","HTI","VIR","CPV","MLI","YEM","OMN","MMR","THA","PHL","UMI","NIC","COL","ANT","GLP","SEN","BFA","NGA","GUM","CRI","PAN","VEN","SUR","SLE","TGO","CAF","SOM","IDN","PLW","KIR","ECU","BRA","LBR","CIV","STP","GAB","UGA","PER","COD","TZA","PNG","PYF","ZMB","IOT","TLS","SLB","WLF","WSM","AGO","ZWE","MOZ","MDG","AUS","VUT","FJI","TON","PRY","NAM","MWI","REU","MUS","NCL","CHL","BWA","NZL","ARG","URY","LSO","ZAF","ATF","FLK","SGS","HMD"],"data":{"AGO":{"AREA":124670,"FIPS":"AO","ISO2":"AO","ISO3":"AGO","LAT":-12.296,"LON":17.544,"NAME":"Angola","POP2005":16095214,"REGION":2,"SUBREGION":17,"UN":24},"ANT":{"AREA":80,"FIPS":"NT","ISO2":"AN","ISO3":"ANT","LAT":12.123,"LON":-68.87,"NAME":"Netherlands Antilles","POP2005":186392,"REGION":19,"SUBREGION":29,"UN":530},"ARE":{"AREA":8360,"FIPS":"AE","ISO2":"AE","ISO3":"ARE","LAT":23.549,"LON":54.163,"NAME":"Untied Arab Emirates","POP2005":4104291,"REGION":142,"SUBREGION":145,"UN":784},"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"CAF":{"AREA":62298,"FIPS":"CT","ISO2":"CF","ISO3":"CAF","LAT":6.571,"LON":20.483,"NAME":"Central African Republic","POP2005":4191429,"REGION":2,"SUBREGION":17,"UN":140},"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"CHE":{"AREA":4000,"FIPS":"SZ","ISO2":"CH","ISO3":"CHE","LAT":46.861,"LON":7.908,"NAME":"Switzerland","POP2005":7424389,"REGION":150,"SUBREGION":155,"UN":756},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"CIV":{"AREA":31800,"FIPS":"IV","ISO2":"CI","ISO3":"CIV","LAT":7.632,"LON":-5.556,"NAME":"Cote d'Ivoire","POP2005":18584701,"REGION":2,"SUBREGION":11,"UN":384},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COL":{"AREA":103870,"FIPS":"CO","ISO2":"CO","ISO3":"COL","LAT":3.9,"LON":-73.076,"NAME":"Colombia","POP2005":4494579,"REGION":19,"SUBREGION":5,"UN":170},"CPV":{"AREA":403,"FIPS":"CV","ISO2":"CV","ISO3":"CPV","LAT":15.071,"LON":-23.634,"NAME":"Cape Verde","POP2005":506807,"REGION":2,"SUBREGION":11,"UN":132},"CRI":{"AREA":5106,"FIPS":"CS","ISO2":"CR","ISO3":"CRI","LAT":9.971,"LON":-83.946,"NAME":"Costa Rica","POP2005":4327228,"REGION":19,"SUBREGION":13,"UN":188},"CUB":{"AREA":10982,"FIPS":"CU","ISO2":"CU","ISO3":"CUB","LAT":21.297,"LON":-77.781,"NAME":"Cuba","POP2005":11259905,"REGION":19,"SUBREGION":29,"UN":192},"DZA":{"AREA":238174,"FIPS":"AG","ISO2":"DZ","ISO3":"DZA","LAT":28.163,"LON":2.632,"NAME":"Algeria","POP2005":32854159,"REGION":2,"SUBREGION":15,"UN":12},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"EGY":{"AREA":99545,"FIPS":"EG","ISO2":"EG","ISO3":"EGY","LAT":26.494,"LON":29.872,"NAME":"Egypt","POP2005":72849793,"REGION":2,"SUBREGION":15,"UN":818},"ESH":{"AREA":0,"FIPS":"WI","ISO2":"EH","ISO3":"ESH","LAT":24.554,"LON":-13.706,"NAME":"Western Sahara","POP2005":440428,"REGION":2,"SUBREGION":15,"UN":732},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"FLK":{"AREA":1217,"FIPS":"FK","ISO2":"FK","ISO3":"FLK","LAT":-51.665,"LON":-58.694,"NAME":"Falkland Islands (Malvinas)","POP2005":2975,"REGION":19,"SUBREGION":5,"UN":238},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"FRO":{"AREA":0,"FIPS":"FO","ISO2":"FO","ISO3":"FRO","LAT":62.05,"LON":-6.864,"NAME":"Faroe Islands","POP2005":48205,"REGION":150,"SUBREGION":154,"UN":234},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"GLP":{"AREA":169,"FIPS":"GP","ISO2":"GP","ISO3":"GLP","LAT":16.286,"LON":-61.441,"NAME":"Guadeloupe","POP2005":438403,"REGION":19,"SUBREGION":29,"UN":312},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304},"GUM":{"AREA":55,"FIPS":"GQ","ISO2":"GU","ISO3":"GUM","LAT":13.385,"LON":144.707,"NAME":"Guam","POP2005":16857,"REGION":9,"SUBREGION":57,"UN":316},"HKG":{"AREA":0,"FIPS":"HK","ISO2":"HK","ISO3":"HKG","LAT":22.423,"LON":114.129,"NAME":"Hong Kong","POP2005":7057418,"REGION":142,"SUBREGION":30,"UN":344},"HMD":{"AREA":0,"FIPS":"HM","ISO2":"HM","ISO3":"HMD","LAT":-53.111,"LON":73.507,"NAME":"Heard Island and McDonald Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":334},"HTI":{"AREA":2756,"FIPS":"HA","ISO2":"HT","ISO3":"HTI","LAT":19.142,"LON":-72.278,"NAME":"Haiti","POP2005":9296291,"REGION":19,"SUBREGION":29,"UN":332},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"IOT":{"AREA":0,"FIPS":"IO","ISO2":"IO","ISO3":"IOT","LAT":-7.335,"LON":72.416,"NAME":"British Indian Ocean Territory","POP2005":0,"REGION":0,"SUBREGION":0,"UN":86},"IRN":{"AREA":163620,"FIPS":"IR","ISO2":"IR","ISO3":"IRN","LAT":32.565,"LON":54.301,"NAME":"Iran (Islamic Republic of)","POP2005":69420607,"REGION":142,"SUBREGION":34,"UN":364},"IRQ":{"AREA":43737,"FIPS":"IZ","ISO2":"IQ","ISO3":"IRQ","LAT":33.048,"LON":43.772,"NAME":"Iraq","POP2005":27995984,"REGION":142,"SUBREGION":145,"UN":368},"ISL":{"AREA":10025,"FIPS":"IC","ISO2":"IS","ISO3":"ISL","LAT":64.764,"LON":-18.48,"NAME":"Iceland","POP2005":295732,"REGION":150,"SUBREGION":154,"UN":352},"ITA":{"AREA":29411,"FIPS":"IT","ISO2":"IT","ISO3":"ITA","LAT":44.931,"LON":10.44,"NAME":"Italy","POP2005":5864636,"REGION":150,"SUBREGION":39,"UN":380},"JAM":{"AREA":1083,"FIPS":"JM","ISO2":"JM","ISO3":"JAM","LAT":18.151,"LON":-77.32,"NAME":"Jamaica","POP2005":2682469,"REGION":19,"SUBREGION":29,"UN":388},"JPN":{"AREA":36450,"FIPS":"JA","ISO2":"JP","ISO3":"JPN","LAT":36.491,"LON":139.068,"NAME":"Japan","POP2005":12789674,"REGION":142,"SUBREGION":30,"UN":392},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"KOR":{"AREA":9873,"FIPS":"KS","ISO2":"KR","ISO3":"KOR","LAT":36.504,"LON":128.103,"NAME":"Korea, Republic of","POP2005":47869837,"REGION":142,"SUBREGION":30,"UN":410},"LBR":{"AREA":9632,"FIPS":"LI","ISO2":"LR","ISO3":"LBR","LAT":6.682,"LON":-9.657,"NAME":"Liberia","POP2005":3441796,"REGION":2,"SUBREGION":11,"UN":430},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"LSO":{"AREA":3035,"FIPS":"LT","ISO2":"LS","ISO3":"LSO","LAT":-29.581,"LON":28.243,"NAME":"Lesotho","POP2005":1980831,"REGION":2,"SUBREGION":18,"UN":426},"MAR":{"AREA":44630,"FIPS":"MO","ISO2":"MA","ISO3":"MAR","LAT":32.706,"LON":-5.758,"NAME":"Morocco","POP2005":30494991,"REGION":2,"SUBREGION":15,"UN":504},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"MMR":{"AREA":65755,"FIPS":"BM","ISO2":"MM","ISO3":"MMR","LAT":21.718,"LON":96.041,"NAME":"Burma","POP2005":47967266,"REGION":142,"SUBREGION":35,"UN":104},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"MOZ":{"AREA":78409,"FIPS":"MZ","ISO2":"MZ","ISO3":"MOZ","LAT":-14.422,"LON":37.923,"NAME":"Mozambique","POP2005":20532675,"REGION":2,"SUBREGION":14,"UN":508},"MRT":{"AREA":102522,"FIPS":"MR","ISO2":"MR","ISO3":"MRT","LAT":20.26,"LON":-10.332,"NAME":"Mauritania","POP2005":2963105,"REGION":2,"SUBREGION":11,"UN":478},"MUS":{"AREA":203,"FIPS":"MP","ISO2":"MU","ISO3":"MUS","LAT":-20.255,"LON":57.583,"NAME":"Mauritius","POP2005":1241173,"REGION":2,"SUBREGION":14,"UN":480},"MWI":{"AREA":9408,"FIPS":"MI","ISO2":"MW","ISO3":"MWI","LAT":-13.4,"LON":33.808,"NAME":"Malawi","POP2005":13226091,"REGION":2,"SUBREGION":14,"UN":454},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"NCL":{"AREA":1828,"FIPS":"NC","ISO2":"NC","ISO3":"NCL","LAT":-21.359,"LON":165.447,"NAME":"New Caledonia","POP2005":234185,"REGION":9,"SUBREGION":54,"UN":540},"NER":{"AREA":126670,"FIPS":"NG","ISO2":"NE","ISO3":"NER","LAT":17.426,"LON":9.398,"NAME":"Niger","POP2005":1326419,"REGION":2,"SUBREGION":11,"UN":562},"NGA":{"AREA":91077,"FIPS":"NI","ISO2":"NG","ISO3":"NGA","LAT":9.594,"LON":8.105,"NAME":"Nigeria","POP2005":141356083,"REGION":2,"SUBREGION":11,"UN":566},"NIC":{"AREA":12140,"FIPS":"NU","ISO2":"NI","ISO3":"NIC","LAT":12.84,"LON":-85.034,"NAME":"Nicaragua","POP2005":5462539,"REGION":19,"SUBREGION":13,"UN":558},"NLD":{"AREA":3388,"FIPS":"NL","ISO2":"NL","ISO3":"NLD","LAT":52.077,"LON":5.389,"NAME":"Netherlands","POP2005":1632769,"REGION":150,"SUBREGION":155,"UN":528},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"NPL":{"AREA":14300,"FIPS":"NP","ISO2":"NP","ISO3":"NPL","LAT":28.253,"LON":83.939,"NAME":"Nepal","POP2005":27093656,"REGION":142,"SUBREGION":34,"UN":524},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554},"OMN":{"AREA":30950,"FIPS":"MU","ISO2":"OM","ISO3":"OMN","LAT":21.656,"LON":57.407,"NAME":"Oman","POP2005":2507042,"REGION":142,"SUBREGION":145,"UN":512},"PAK":{"AREA":77088,"FIPS":"PK","ISO2":"PK","ISO3":"PAK","LAT":29.967,"LON":69.386,"NAME":"Pakistan","POP2005":158080591,"REGION":142,"SUBREGION":34,"UN":586},"PAN":{"AREA":7443,"FIPS":"PM","ISO2":"PA","ISO3":"PAN","LAT":8.384,"LON":-80.92,"NAME":"Panama","POP2005":3231502,"REGION":19,"SUBREGION":13,"UN":591},"PER":{"AREA":128000,"FIPS":"PE","ISO2":"PE","ISO3":"PER","LAT":-9.326,"LON":-75.552,"NAME":"Peru","POP2005":27274266,"REGION":19,"SUBREGION":5,"UN":604},"PHL":{"AREA":29817,"FIPS":"RP","ISO2":"PH","ISO3":"PHL","LAT":11.118,"LON":122.466,"NAME":"Philippines","POP2005":84566163,"REGION":142,"SUBREGION":35,"UN":608},"PLW":{"AREA":0,"FIPS":"PS","ISO2":"PW","ISO3":"PLW","LAT":7.501,"LON":134.57,"NAME":"Palau","POP2005":20127,"REGION":9,"SUBREGION":57,"UN":585},"PNG":{"AREA":45286,"FIPS":"PP","ISO2":"PG","ISO3":"PNG","LAT":-5.949,"LON":143.459,"NAME":"Papua New Guinea","POP2005":6069715,"REGION":9,"SUBREGION":54,"UN":598},"POL":{"AREA":30629,"FIPS":"PL","ISO2":"PL","ISO3":"POL","LAT":52.125,"LON":19.401,"NAME":"Poland","POP2005":38195558,"REGION":150,"SUBREGION":151,"UN":616},"PRK":{"AREA":12041,"FIPS":"KN","ISO2":"KP","ISO3":"PRK","LAT":39.778,"LON":126.451,"NAME":"Korea, Democratic People's Republic of","POP2005":23615611,"REGION":142,"SUBREGION":30,"UN":408},"PRT":{"AREA":9150,"FIPS":"PO","ISO2":"PT","ISO3":"PRT","LAT":40.309,"LON":-8.058,"NAME":"Portugal","POP2005":10528226,"REGION":150,"SUBREGION":39,"UN":620},"PRY":{"AREA":39730,"FIPS":"PA","ISO2":"PY","ISO3":"PRY","LAT":-23.236,"LON":-58.391,"NAME":"Paraguay","POP2005":5904342,"REGION":19,"SUBREGION":5,"UN":600},"PYF":{"AREA":366,"FIPS":"FP","ISO2":"PF","ISO3":"PYF","LAT":-17.626,"LON":-149.462,"NAME":"French Polynesia","POP2005":255632,"REGION":9,"SUBREGION":61,"UN":258},"REU":{"AREA":250,"FIPS":"RE","ISO2":"RE","ISO3":"REU","LAT":-21.122,"LON":55.538,"NAME":"Reunion","POP2005":785159,"REGION":2,"SUBREGION":14,"UN":638},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"SEN":{"AREA":19253,"FIPS":"SG","ISO2":"SN","ISO3":"SEN","LAT":15.013,"LON":-14.881,"NAME":"Senegal","POP2005":1177034,"REGION":2,"SUBREGION":11,"UN":686},"SGS":{"AREA":0,"FIPS":"SX","ISO2":"GS","ISO3":"SGS","LAT":-54.209,"LON":-36.891,"NAME":"South Georgia South Sandwich Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":239},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744},"SLB":{"AREA":2799,"FIPS":"BP","ISO2":"SB","ISO3":"SLB","LAT":-9.611,"LON":160.109,"NAME":"Solomon Islands","POP2005":472419,"REGION":9,"SUBREGION":54,"UN":90},"SLE":{"AREA":7162,"FIPS":"SL","ISO2":"SL","ISO3":"SLE","LAT":8.56,"LON":-11.792,"NAME":"Sierra Leone","POP2005":5586403,"REGION":2,"SUBREGION":11,"UN":694},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"SPM":{"AREA":0,"FIPS":"SB","ISO2":"PM","ISO3":"SPM","LAT":47.042,"LON":-56.325,"NAME":"Saint Pierre and Miquelon","POP2005":6346,"REGION":19,"SUBREGION":21,"UN":666},"SRB":{"AREA":0,"FIPS":"RB","ISO2":"RS","ISO3":"SRB","LAT":44.032,"LON":20.806,"NAME":"Serbia","POP2005":9863026,"REGION":150,"SUBREGION":39,"UN":688},"STP":{"AREA":96,"FIPS":"TP","ISO2":"ST","ISO3":"STP","LAT":0.201,"LON":6.629,"NAME":"Sao Tome and Principe","POP2005":152622,"REGION":2,"SUBREGION":17,"UN":678},"SUR":{"AREA":15600,"FIPS":"NS","ISO2":"SR","ISO3":"SUR","LAT":4.127,"LON":-55.912,"NAME":"Suriname","POP2005":452468,"REGION":19,"SUBREGION":5,"UN":740},"SVN":{"AREA":2014,"FIPS":"SI","ISO2":"SI","ISO3":"SVN","LAT":46.124,"LON":14.827,"NAME":"Slovenia","POP2005":1999425,"REGION":150,"SUBREGION":39,"UN":705},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752},"SYR":{"AREA":18378,"FIPS":"SY","ISO2":"SY","ISO3":"SYR","LAT":35.013,"LON":38.506,"NAME":"Syrian Arab Republic","POP2005":18893881,"REGION":142,"SUBREGION":145,"UN":760},"TGO":{"AREA":5439,"FIPS":"TO","ISO2":"TG","ISO3":"TGO","LAT":8.799,"LON":1.081,"NAME":"Togo","POP2005":6238572,"REGION":2,"SUBREGION":11,"UN":768},"THA":{"AREA":51089,"FIPS":"TH","ISO2":"TH","ISO3":"THA","LAT":15.7,"LON":100.844,"NAME":"Thailand","POP2005":63002911,"REGION":142,"SUBREGION":35,"UN":764},"TJK":{"AREA":13996,"FIPS":"TI","ISO2":"TJ","ISO3":"TJK","LAT":38.665,"LON":69.42,"NAME":"Tajikistan","POP2005":6550213,"REGION":142,"SUBREGION":143,"UN":762},"TKM":{"AREA":46993,"FIPS":"TX","ISO2":"TM","ISO3":"TKM","LAT":39.122,"LON":59.384,"NAME":"Turkmenistan","POP2005":4833266,"REGION":142,"SUBREGION":143,"UN":795},"TLS":{"AREA":1487,"FIPS":"TT","ISO2":"TL","ISO3":"TLS","LAT":-8.822,"LON":125.878,"NAME":"Timor-Leste","POP2005":1067285,"REGION":142,"SUBREGION":35,"UN":626},"TON":{"AREA":72,"FIPS":"TN","ISO2":"TO","ISO3":"TON","LAT":-21.202,"LON":-175.185,"NAME":"Tonga","POP2005":99361,"REGION":9,"SUBREGION":61,"UN":776},"TUN":{"AREA":15536,"FIPS":"TS","ISO2":"TN","ISO3":"TUN","LAT":35.383,"LON":9.596,"NAME":"Tunisia","POP2005":10104685,"REGION":2,"SUBREGION":15,"UN":788},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792},"TWN":{"AREA":0,"FIPS":"TW","ISO2":"TW","ISO3":"TWN","LAT":23.754,"LON":120.946,"NAME":"Taiwan","POP2005":0,"REGION":0,"SUBREGION":0,"UN":158},"TZA":{"AREA":88359,"FIPS":"TZ","ISO2":"TZ","ISO3":"TZA","LAT":-6.27,"LON":34.823,"NAME":"United Republic of Tanzania","POP2005":38477873,"REGION":2,"SUBREGION":14,"UN":834},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"UKR":{"AREA":57935,"FIPS":"UP","ISO2":"UA","ISO3":"UKR","LAT":49.016,"LON":31.388,"NAME":"Ukraine","POP2005":46917544,"REGION":150,"SUBREGION":151,"UN":804},"UMI":{"AREA":0,"FIPS":"","ISO2":"UM","ISO3":"UMI","LAT":-0.385,"LON":-160.027,"NAME":"United States Minor Outlying Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":581},"URY":{"AREA":17502,"FIPS":"UY","ISO2":"UY","ISO3":"URY","LAT":-32.8,"LON":-56.012,"NAME":"Uruguay","POP2005":3325727,"REGION":19,"SUBREGION":5,"UN":858},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860},"VEN":{"AREA":88205,"FIPS":"VE","ISO2":"VE","ISO3":"VEN","LAT":7.125,"LON":-66.166,"NAME":"Venezuela","POP2005":26725573,"REGION":19,"SUBREGION":5,"UN":862},"VIR":{"AREA":35,"FIPS":"VQ","ISO2":"VI","ISO3":"VIR","LAT":17.741,"LON":-64.785,"NAME":"United States Virgin Islands","POP2005":111408,"REGION":19,"SUBREGION":29,"UN":850},"VNM":{"AREA":32549,"FIPS":"VM","ISO2":"VN","ISO3":"VNM","LAT":21.491,"LON":105.314,"NAME":"Viet Nam","POP2005":85028643,"REGION":142,"SUBREGION":35,"UN":704},"VUT":{"AREA":1219,"FIPS":"NH","ISO2":"VU","ISO3":"VUT","LAT":-15.376,"LON":166.899,"NAME":"Vanuatu","POP2005":215366,"REGION":9,"SUBREGION":54,"UN":548},"WLF":{"AREA":14,"FIPS":"WF","ISO2":"WF","ISO3":"WLF","LAT":-14.289,"LON":-178.131,"NAME":"Wallis and Futuna Islands","POP2005":15079,"REGION":9,"SUBREGION":61,"UN":876},"WSM":{"AREA":283,"FIPS":"WS","ISO2":"WS","ISO3":"WSM","LAT":-13.652,"LON":-172.414,"NAME":"Samoa","POP2005":183845,"REGION":9,"SUBREGION":61,"UN":882},"YEM":{"AREA":52797,"FIPS":"YM","ISO2":"YE","ISO3":"YEM","LAT":15.807,"LON":48.355,"NAME":"Yemen","POP2005":21095679,"REGION":142,"SUBREGION":145,"UN":887},"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710},"ZMB":{"AREA":74339,"FIPS":"ZA","ISO2":"ZM","ISO3":"ZMB","LAT":-14.614,"LON":26.32,"NAME":"Zambia","POP2005":11478317,"REGION":2,"SUBREGION":14,"UN":894},"ZWE":{"AREA":38685,"FIPS":"ZI","ISO2":"ZW","ISO3":"ZWE","LAT":-19,"LON":29.872,"NAME":"Zimbabwe","POP2005":13119679,"REGION":2,"SUBREGION":14,"UN":716}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_0_1.json b/test/fixtures/grids/plain_2_0_0_1.json new file mode 100644 index 0000000..22ad39d --- /dev/null +++ b/test/fixtures/grids/plain_2_0_0_1.json @@ -0,0 +1 @@ +{"grid":[" !! !####$$$$$$$$$$ "," % #####$$$$$$$$$$$$ "," ###$$$$$$$$$$$$$$ "," & #####$$$$$$$$$$$$ "," '( ####$$$$$$$$$$$ ","' ) & ####**$$$$$$$$$ ","+ ,- & ##**.$$$$$$$$ "," , / 0*...$$$$$$ "," 1 000....$$$$$ "," 00222..$$$ ","3 00222..$$ "," 0022244$$ "," 00222444 "," 0022244 "," 0022222 "," 002222 5 "," 00222 "," 3 0022 "," 0022 "," 0022 "," 002 "," 000 66 "," 0002 7 "," 0002 77 "," 0 "," 7 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ECU","PER","BRA","KIR","PYF","WLF","WSM","ASM","BOL","FJI","TON","NIU","PRY","COK","CHL","PCN","ARG","NZL","URY","SHN","FLK","SGS"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"ASM":{"AREA":20,"FIPS":"AQ","ISO2":"AS","ISO3":"ASM","LAT":-14.318,"LON":-170.73,"NAME":"American Samoa","POP2005":64051,"REGION":9,"SUBREGION":61,"UN":16},"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"COK":{"AREA":24,"FIPS":"CW","ISO2":"CK","ISO3":"COK","LAT":-21.219,"LON":-159.782,"NAME":"Cook Islands","POP2005":13984,"REGION":9,"SUBREGION":61,"UN":184},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"FLK":{"AREA":1217,"FIPS":"FK","ISO2":"FK","ISO3":"FLK","LAT":-51.665,"LON":-58.694,"NAME":"Falkland Islands (Malvinas)","POP2005":2975,"REGION":19,"SUBREGION":5,"UN":238},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"NIU":{"AREA":26,"FIPS":"NE","ISO2":"NU","ISO3":"NIU","LAT":-19.052,"LON":-169.869,"NAME":"Niue","POP2005":1632,"REGION":9,"SUBREGION":61,"UN":570},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554},"PCN":{"AREA":0,"FIPS":"PC","ISO2":"PN","ISO3":"PCN","LAT":-24.366,"LON":-128.316,"NAME":"Pitcairn Islands","POP2005":5,"REGION":9,"SUBREGION":61,"UN":612},"PER":{"AREA":128000,"FIPS":"PE","ISO2":"PE","ISO3":"PER","LAT":-9.326,"LON":-75.552,"NAME":"Peru","POP2005":27274266,"REGION":19,"SUBREGION":5,"UN":604},"PRY":{"AREA":39730,"FIPS":"PA","ISO2":"PY","ISO3":"PRY","LAT":-23.236,"LON":-58.391,"NAME":"Paraguay","POP2005":5904342,"REGION":19,"SUBREGION":5,"UN":600},"PYF":{"AREA":366,"FIPS":"FP","ISO2":"PF","ISO3":"PYF","LAT":-17.626,"LON":-149.462,"NAME":"French Polynesia","POP2005":255632,"REGION":9,"SUBREGION":61,"UN":258},"SGS":{"AREA":0,"FIPS":"SX","ISO2":"GS","ISO3":"SGS","LAT":-54.209,"LON":-36.891,"NAME":"South Georgia South Sandwich Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":239},"SHN":{"AREA":0,"FIPS":"SH","ISO2":"SH","ISO3":"SHN","LAT":-15.953,"LON":-5.71,"NAME":"Saint Helena","POP2005":6399,"REGION":2,"SUBREGION":11,"UN":654},"TON":{"AREA":72,"FIPS":"TN","ISO2":"TO","ISO3":"TON","LAT":-21.202,"LON":-175.185,"NAME":"Tonga","POP2005":99361,"REGION":9,"SUBREGION":61,"UN":776},"URY":{"AREA":17502,"FIPS":"UY","ISO2":"UY","ISO3":"URY","LAT":-32.8,"LON":-56.012,"NAME":"Uruguay","POP2005":3325727,"REGION":19,"SUBREGION":5,"UN":858},"WLF":{"AREA":14,"FIPS":"WF","ISO2":"WF","ISO3":"WLF","LAT":-14.289,"LON":-178.131,"NAME":"Wallis and Futuna Islands","POP2005":15079,"REGION":9,"SUBREGION":61,"UN":876},"WSM":{"AREA":283,"FIPS":"WS","ISO2":"WS","ISO3":"WSM","LAT":-13.652,"LON":-172.414,"NAME":"Samoa","POP2005":183845,"REGION":9,"SUBREGION":61,"UN":882}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_10_4.json b/test/fixtures/grids/plain_2_0_10_4.json new file mode 100644 index 0000000..7e0b653 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!! "," ! !!!!!!!!! "," !!!!!!!!! !! "," !!!!!!!! !!!!! "," !!!!!!!! ! !! "," !!!!!!! "," !!! !!! "," !!! "," !!!!!!! "," !!!! "," !! !!!! "," !!!!!! "," !!!!! "," !! !! "," !!! ! "," ! ! "," !!! !! ! "," !! !!!!!!!!! "," !!!!!!!!!!! !! "," ! !!!!!!! "," ! ! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","USA"],"data":{"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_11_4.json b/test/fixtures/grids/plain_2_0_11_4.json new file mode 100644 index 0000000..81b185c --- /dev/null +++ b/test/fixtures/grids/plain_2_0_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!#######!!!!#############"," !!!!!!!!!!!!######!!!!!#############"," !!!!!!!##########!##!#############"," !! !!!!!!!###########################"," !! !!! !!!#############################"," ! !!!! !###############################"," !! !!!!!!###############################"," !! !! !!!!!!!!!#############################"," !!!!!!!!! !!!!!!!!!!!!!!###########################"," !!!!!!!!!! !!!!!!!!!!!!!!###########################","!!!!!!!!!!! !!!!!!!!!!!!!!###########################","!!!!!!!!!!!! !!!!!!!!!!!!!!!##########################","!!!!!!!!!!!!!! !!!!!!!!!!!!!!!###############!##########","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!#############!############","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!##!!!###!!############","!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###########","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########","!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########","!!!!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!!!!!!!!!!!##!!###########","!!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!###############","!!!!!!!!!!!!!!!!!!!!!!!##!#######!!!!!!!!!!!##!!!###############","!!!!!!!!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!#####################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!#####################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################","!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!#######################","!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!#!#######################","!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!####!######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######!!#####################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######!!####################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####!!!!####!##############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####!!#######","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####!!!!#####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###","!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####","!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!#######","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!#######!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########!!!"],"keys":["RUS","","USA"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_12_4.json b/test/fixtures/grids/plain_2_0_12_4.json new file mode 100644 index 0000000..b0212e0 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_12_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","!!!!! ","!!!!!! !! ","!!!!!!! !! ","!!!!!!!! ","!!!!!!!! ","!!!!!!! #","!!! ## ##"," #######"," ########"," #########"," ##########"," # ###########"," ##############"," ###############"," ###############"," ################"," ################"," ################"," #################"," #################"," ##################"," ###################","!! #####################","!!! #########################","!!!! #########################","!!!!! #########################","!!!!!!! ##########################","!!!!!!! ###########################","!!!!!!!!! #########################","!!!!!!!!!! ########################","!!!!!!!!!!!! #######################","!!!!!!!!!!!!! ######################","!!!!!!!!!!!!!! ####################","!!!!!!!!!!!!!! ###################","!!!!!!!!!!!!!!! ###################","!!!!!!!!!!!!!!! ##################","!!!!!!!!!!!!!!!!!!!! ##################","!!!!!!!!!!!!!!!!!!!!!!!! #################","!!!!!!!!!!!!!!! !!!!!!!!! ###############","!!!!!!!!!!!!!!! !!!!!!!!! ###############","!!!!!!!!!!!!!!!!!!!!!!!!!! ##### ##############"],"keys":["","RUS","USA"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_13_4.json b/test/fixtures/grids/plain_2_0_13_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_14_4.json b/test/fixtures/grids/plain_2_0_14_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_1_1.json b/test/fixtures/grids/plain_2_0_1_1.json new file mode 100644 index 0000000..ebac01b --- /dev/null +++ b/test/fixtures/grids/plain_2_0_1_1.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," !!!!!! "," #### !!!!!!!!! "," ######## !!!!!!!!!!! "," ########## !!!!!!!!!!!!! "," ##########!!!!!!!!!!!!!!!!! "," ###########!!!!!!!!!!!!!!!!!! "," ###########!!!!!!!!!!!!!!!!!!! "," ###########!!!!!!!!!!!!!!!!!!! "," ###########!!!!!!!!!!!!!!!!!!!! "," ########### !!!!!!!!!!!!!!!!!! "," ## ######### !!!!!!!!!!!!!!!!!! "," # ############!!!!!!!!!!!!!!!!!!!! "," ###############!!!!!!!!!!!!!!!!!!!! "," ### ############!!!!!!!!!!!!!!!!!!!! "," ###### ######## !!!!!!!!!!!!!!!!!!!! "," ################# !!!!!!!!!!!!!!!!!!!! "," ################ !!!!!!!!!!!!!!!!!!! "," ############## !!!!!!!!!!!!!!! "," ###### ######## !!!!!!!!!!!!!!! "," ##### ############ !!!!!!!!!!!!!! "," ################### !!!!!!!!!!!!!! ","$ #################### !!!!!!!!!!!!! ","$$ %%% # #################### !!!!!!!!!!!!! && "," %%%%%%%% ##### ################### !!!!!!!!!!!!! ","$ %%%%%%%%%%########################### !!!!!!!!!!!! ","$$ %%%%%%%%%%############################ !!!!!!!!!!! ","$$$$ %%%%%%%%%############################# !!!!!!!!! ' ","$$$$%%%%%%%%%%##################### ####### !!!!!!!! ''''' ","$$$ %%%%%%%%%%##################### ###### !!!!! ''''' "," %% %%%%%%%%%####################### #### !!!!! '''' "," %%%%%%%%%%################## ######## !!!! ( "," % %%%%%%%%%%%################ ###### !!! ( )"," %%%%%%%%%%%%%############## ####### !! ))"," %%%% %%%############### ######## )))"," % %%%% %%%################ ######## )))"," %%%% %%########################## *)))"," %% ############################# *)))","%%% ############################ **))"," ##%%%%%%%%%%%############## )))"," %%%%%%%%%%%%%%%#####%###+## ,,"," %%%%%%%%%%%%%%%%###%%%##+## ,"," %%%%%%%%%%%%%%%%%%%%%%## ----"," %%%%%%%%%%%%%%%%%%%%% ----"," %%%%%%%%%%%%%%%%%%%% .---"," %%%%%%%%%%%%%%%%%% ... .---"," %%%%%%%%%%%%%%%%%% --/"," %%%%%%%%%%%%%%%% . ////"," 0%%%%%%%%%%%%% ///1"," 00000%%%%%%% %% --22311"," 00000%% %%44 222331"," % 000000 555544 2223366"," %% 0000 000555789 2223366"," % 0000000 :779;< == >33366"," 0000?@@ A = >>>33BB"," C@@@ DEF G >>66BB"," @HHHEEEEEE IJJ6BB"," HHHDEEEEEKK JJLMM"," N DDDEEEEKKO LLMP"," N Q QQQDDEERKKOS "],"keys":["","GRL","CAN","RUS","USA","SJM","ISL","FRO","GBR","IRL","SPM","FRA","ESP","PRT","MAR","MEX","DZA","ESH","MRT","BHS","CUB","MLI","HTI","TCA","DOM","JAM","VIR","VGB","CPV","SEN","HND","NIC","GLP","BFA","SLV","COL","VEN","ANT","VCT","PAN","GIN","SLE","SUR","LBR","CIV","KIR","GUF","GHA","ECU","GUY","BRA"],"data":{"ANT":{"AREA":80,"FIPS":"NT","ISO2":"AN","ISO3":"ANT","LAT":12.123,"LON":-68.87,"NAME":"Netherlands Antilles","POP2005":186392,"REGION":19,"SUBREGION":29,"UN":530},"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"BHS":{"AREA":1001,"FIPS":"BF","ISO2":"BS","ISO3":"BHS","LAT":24.628,"LON":-78.014,"NAME":"Bahamas","POP2005":323295,"REGION":19,"SUBREGION":29,"UN":44},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"CIV":{"AREA":31800,"FIPS":"IV","ISO2":"CI","ISO3":"CIV","LAT":7.632,"LON":-5.556,"NAME":"Cote d'Ivoire","POP2005":18584701,"REGION":2,"SUBREGION":11,"UN":384},"COL":{"AREA":103870,"FIPS":"CO","ISO2":"CO","ISO3":"COL","LAT":3.9,"LON":-73.076,"NAME":"Colombia","POP2005":4494579,"REGION":19,"SUBREGION":5,"UN":170},"CPV":{"AREA":403,"FIPS":"CV","ISO2":"CV","ISO3":"CPV","LAT":15.071,"LON":-23.634,"NAME":"Cape Verde","POP2005":506807,"REGION":2,"SUBREGION":11,"UN":132},"CUB":{"AREA":10982,"FIPS":"CU","ISO2":"CU","ISO3":"CUB","LAT":21.297,"LON":-77.781,"NAME":"Cuba","POP2005":11259905,"REGION":19,"SUBREGION":29,"UN":192},"DOM":{"AREA":4838,"FIPS":"DR","ISO2":"DO","ISO3":"DOM","LAT":19.015,"LON":-70.729,"NAME":"Dominican Republic","POP2005":9469601,"REGION":19,"SUBREGION":29,"UN":214},"DZA":{"AREA":238174,"FIPS":"AG","ISO2":"DZ","ISO3":"DZA","LAT":28.163,"LON":2.632,"NAME":"Algeria","POP2005":32854159,"REGION":2,"SUBREGION":15,"UN":12},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"ESH":{"AREA":0,"FIPS":"WI","ISO2":"EH","ISO3":"ESH","LAT":24.554,"LON":-13.706,"NAME":"Western Sahara","POP2005":440428,"REGION":2,"SUBREGION":15,"UN":732},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"FRO":{"AREA":0,"FIPS":"FO","ISO2":"FO","ISO3":"FRO","LAT":62.05,"LON":-6.864,"NAME":"Faroe Islands","POP2005":48205,"REGION":150,"SUBREGION":154,"UN":234},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"GHA":{"AREA":22754,"FIPS":"GH","ISO2":"GH","ISO3":"GHA","LAT":7.96,"LON":-1.207,"NAME":"Ghana","POP2005":2253501,"REGION":2,"SUBREGION":11,"UN":288},"GIN":{"AREA":24572,"FIPS":"GV","ISO2":"GN","ISO3":"GIN","LAT":10.439,"LON":-10.942,"NAME":"Guinea","POP2005":9002656,"REGION":2,"SUBREGION":11,"UN":324},"GLP":{"AREA":169,"FIPS":"GP","ISO2":"GP","ISO3":"GLP","LAT":16.286,"LON":-61.441,"NAME":"Guadeloupe","POP2005":438403,"REGION":19,"SUBREGION":29,"UN":312},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304},"GUF":{"AREA":8815,"FIPS":"FG","ISO2":"GF","ISO3":"GUF","LAT":3.924,"LON":-53.241,"NAME":"French Guiana","POP2005":192099,"REGION":19,"SUBREGION":5,"UN":254},"GUY":{"AREA":19685,"FIPS":"GY","ISO2":"GY","ISO3":"GUY","LAT":4.792,"LON":-58.974,"NAME":"Guyana","POP2005":739472,"REGION":19,"SUBREGION":5,"UN":328},"HND":{"AREA":11189,"FIPS":"HO","ISO2":"HN","ISO3":"HND","LAT":14.819,"LON":-86.863,"NAME":"Honduras","POP2005":683411,"REGION":19,"SUBREGION":13,"UN":340},"HTI":{"AREA":2756,"FIPS":"HA","ISO2":"HT","ISO3":"HTI","LAT":19.142,"LON":-72.278,"NAME":"Haiti","POP2005":9296291,"REGION":19,"SUBREGION":29,"UN":332},"IRL":{"AREA":6889,"FIPS":"EI","ISO2":"IE","ISO3":"IRL","LAT":53.177,"LON":-8.152,"NAME":"Ireland","POP2005":4143294,"REGION":150,"SUBREGION":154,"UN":372},"ISL":{"AREA":10025,"FIPS":"IC","ISO2":"IS","ISO3":"ISL","LAT":64.764,"LON":-18.48,"NAME":"Iceland","POP2005":295732,"REGION":150,"SUBREGION":154,"UN":352},"JAM":{"AREA":1083,"FIPS":"JM","ISO2":"JM","ISO3":"JAM","LAT":18.151,"LON":-77.32,"NAME":"Jamaica","POP2005":2682469,"REGION":19,"SUBREGION":29,"UN":388},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"LBR":{"AREA":9632,"FIPS":"LI","ISO2":"LR","ISO3":"LBR","LAT":6.682,"LON":-9.657,"NAME":"Liberia","POP2005":3441796,"REGION":2,"SUBREGION":11,"UN":430},"MAR":{"AREA":44630,"FIPS":"MO","ISO2":"MA","ISO3":"MAR","LAT":32.706,"LON":-5.758,"NAME":"Morocco","POP2005":30494991,"REGION":2,"SUBREGION":15,"UN":504},"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"MRT":{"AREA":102522,"FIPS":"MR","ISO2":"MR","ISO3":"MRT","LAT":20.26,"LON":-10.332,"NAME":"Mauritania","POP2005":2963105,"REGION":2,"SUBREGION":11,"UN":478},"NIC":{"AREA":12140,"FIPS":"NU","ISO2":"NI","ISO3":"NIC","LAT":12.84,"LON":-85.034,"NAME":"Nicaragua","POP2005":5462539,"REGION":19,"SUBREGION":13,"UN":558},"PAN":{"AREA":7443,"FIPS":"PM","ISO2":"PA","ISO3":"PAN","LAT":8.384,"LON":-80.92,"NAME":"Panama","POP2005":3231502,"REGION":19,"SUBREGION":13,"UN":591},"PRT":{"AREA":9150,"FIPS":"PO","ISO2":"PT","ISO3":"PRT","LAT":40.309,"LON":-8.058,"NAME":"Portugal","POP2005":10528226,"REGION":150,"SUBREGION":39,"UN":620},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SEN":{"AREA":19253,"FIPS":"SG","ISO2":"SN","ISO3":"SEN","LAT":15.013,"LON":-14.881,"NAME":"Senegal","POP2005":1177034,"REGION":2,"SUBREGION":11,"UN":686},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744},"SLE":{"AREA":7162,"FIPS":"SL","ISO2":"SL","ISO3":"SLE","LAT":8.56,"LON":-11.792,"NAME":"Sierra Leone","POP2005":5586403,"REGION":2,"SUBREGION":11,"UN":694},"SLV":{"AREA":2072,"FIPS":"ES","ISO2":"SV","ISO3":"SLV","LAT":13.736,"LON":-88.866,"NAME":"El Salvador","POP2005":6668356,"REGION":19,"SUBREGION":13,"UN":222},"SPM":{"AREA":0,"FIPS":"SB","ISO2":"PM","ISO3":"SPM","LAT":47.042,"LON":-56.325,"NAME":"Saint Pierre and Miquelon","POP2005":6346,"REGION":19,"SUBREGION":21,"UN":666},"SUR":{"AREA":15600,"FIPS":"NS","ISO2":"SR","ISO3":"SUR","LAT":4.127,"LON":-55.912,"NAME":"Suriname","POP2005":452468,"REGION":19,"SUBREGION":5,"UN":740},"TCA":{"AREA":0,"FIPS":"TK","ISO2":"TC","ISO3":"TCA","LAT":21.902,"LON":-71.95,"NAME":"Turks and Caicos Islands","POP2005":24459,"REGION":19,"SUBREGION":29,"UN":796},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840},"VCT":{"AREA":39,"FIPS":"VC","ISO2":"VC","ISO3":"VCT","LAT":13.248,"LON":-61.194,"NAME":"Saint Vincent and the Grenadines","POP2005":119137,"REGION":19,"SUBREGION":29,"UN":670},"VEN":{"AREA":88205,"FIPS":"VE","ISO2":"VE","ISO3":"VEN","LAT":7.125,"LON":-66.166,"NAME":"Venezuela","POP2005":26725573,"REGION":19,"SUBREGION":5,"UN":862},"VGB":{"AREA":15,"FIPS":"VI","ISO2":"VG","ISO3":"VGB","LAT":18.483,"LON":-64.39,"NAME":"British Virgin Islands","POP2005":22016,"REGION":19,"SUBREGION":29,"UN":92},"VIR":{"AREA":35,"FIPS":"VQ","ISO2":"VI","ISO3":"VIR","LAT":17.741,"LON":-64.785,"NAME":"United States Virgin Islands","POP2005":111408,"REGION":19,"SUBREGION":29,"UN":850}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_1_2.json b/test/fixtures/grids/plain_2_0_1_2.json new file mode 100644 index 0000000..6a71be3 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_1_2.json @@ -0,0 +1 @@ +{"grid":[" !!"," # "," # "," # "," "," $ "," $$ "," $ "," # "," % && "," % &&' ","( $ $ ","(( $$ ","(( )) * "," )) ++ "," ) + $ "," $ "," $ , "," "," "," $ - "," . "," "," "," "," "," "," "," "," "," "," "," "," "," . "," . "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ECU","KIR","PYF","WLF","WSM","ASM","FJI","TON","NIU","COK","PCN","CHL","NZL"],"data":{"ASM":{"AREA":20,"FIPS":"AQ","ISO2":"AS","ISO3":"ASM","LAT":-14.318,"LON":-170.73,"NAME":"American Samoa","POP2005":64051,"REGION":9,"SUBREGION":61,"UN":16},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"COK":{"AREA":24,"FIPS":"CW","ISO2":"CK","ISO3":"COK","LAT":-21.219,"LON":-159.782,"NAME":"Cook Islands","POP2005":13984,"REGION":9,"SUBREGION":61,"UN":184},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"NIU":{"AREA":26,"FIPS":"NE","ISO2":"NU","ISO3":"NIU","LAT":-19.052,"LON":-169.869,"NAME":"Niue","POP2005":1632,"REGION":9,"SUBREGION":61,"UN":570},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554},"PCN":{"AREA":0,"FIPS":"PC","ISO2":"PN","ISO3":"PCN","LAT":-24.366,"LON":-128.316,"NAME":"Pitcairn Islands","POP2005":5,"REGION":9,"SUBREGION":61,"UN":612},"PYF":{"AREA":366,"FIPS":"FP","ISO2":"PF","ISO3":"PYF","LAT":-17.626,"LON":-149.462,"NAME":"French Polynesia","POP2005":255632,"REGION":9,"SUBREGION":61,"UN":258},"TON":{"AREA":72,"FIPS":"TN","ISO2":"TO","ISO3":"TON","LAT":-21.202,"LON":-175.185,"NAME":"Tonga","POP2005":99361,"REGION":9,"SUBREGION":61,"UN":776},"WLF":{"AREA":14,"FIPS":"WF","ISO2":"WF","ISO3":"WLF","LAT":-14.289,"LON":-178.131,"NAME":"Wallis and Futuna Islands","POP2005":15079,"REGION":9,"SUBREGION":61,"UN":876},"WSM":{"AREA":283,"FIPS":"WS","ISO2":"WS","ISO3":"WSM","LAT":-13.652,"LON":-172.414,"NAME":"Samoa","POP2005":183845,"REGION":9,"SUBREGION":61,"UN":882}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_2_2.json b/test/fixtures/grids/plain_2_0_2_2.json new file mode 100644 index 0000000..e2d8622 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_2_2.json @@ -0,0 +1 @@ +{"grid":[" !###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," ####################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," ! !!!###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!! !!!###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!###!!!!################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!###!!##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!","!!!!!!!!!###################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!","!!!!##!!!#####################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!","!!!!!!!!################!#####$#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!","!!!!!!!!!!!!##########!!!!!!#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!","!!!!!!!!!!!!########!!!!!!!!!#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!","!!!!!!!!!!!!!!!#####!!!!!!!!!!####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!","!!!!!!##!!!!!!######!!!!!!!!!!!####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!####!##!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!####!!!!!!!!!!!!!!!!!####$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!####!#!!!!!!!!!!!!!!!!!!###$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!###!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!###!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","######!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$$$$$$$$$$$$$$$$$$$$$$$$$$$$","#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$#####################$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%###########","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!%%%%%%%##%#####!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%%%####!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%%%##!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%%%!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%%%!!!!!","!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%!%%%%%%%!!!!!","!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%!!!!%","!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!%%%%%%%%!!!%","!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%&","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(("],"keys":["RUS","","USA","CAN","MEX","GTM","KIR","ECU"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"GTM":{"AREA":10843,"FIPS":"GT","ISO2":"GT","ISO3":"GTM","LAT":15.256,"LON":-90.398,"NAME":"Guatemala","POP2005":12709564,"REGION":19,"SUBREGION":13,"UN":320},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_2_3.json b/test/fixtures/grids/plain_2_0_2_3.json new file mode 100644 index 0000000..50f2087 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_2_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," !! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","NZL"],"data":{"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_3_2.json b/test/fixtures/grids/plain_2_0_3_2.json new file mode 100644 index 0000000..a214d36 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_3_2.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!"," !!"," !! !"," !!!!"," !!!!"," !!!!!"," !!!!!"," ! !!!!!"," !! !!!!!"," !! !!!!!"," !!!!!"," !!! !!!!!"," !!!!! !!!!"," !! !!!!!!! !!!"," !!!! !!!!!!!!!!!"," !!!!! !!!!!!!! !!"," !!!!! !!!!!!! "," !!!!!! !! !! !!! !"," !!!! !!! !! !!! !"," !!!!!! ! ! !!!! !"," !!!!!!! !! !!!!!!!!!!!"," !!!!!!!! !!! !!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!! !!"," !!!!!!!!!!!! !!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!"," !!!!!!!!!!! !!!!!!!!"," !!!! !!!! !!!!!!"," !!!!!! !! !!!!"," !!!!!!! !! !!!!!!!!"," !!!!!!!! !!! !!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! !!!!!!! !","## !!!!!!!!!!!!!!!! !!!!!! !","#### $$ !!!!!!!!!!!!!! !!!!! !","## $$$$$$ ! !!!!!!!!!!!! ! !!!! "," $$$$$$$$$$$$$ !!! ! !!!!!!!!!!!!! !!!! "," $$$$$$$$$$$$$$$$ !!!!!!!!!! !!!!!!!!!!!!! !!!!! "," $$$$$$$$$$$$$$$$$!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","# $$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","### $$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#### $$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##### $$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","####### $$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","CAN","RUS","USA"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_3_3.json b/test/fixtures/grids/plain_2_0_3_3.json new file mode 100644 index 0000000..ac052b0 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_3_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," ! "," ! "," ! "," ! "," ! "," "," "," "," # "," $ ## "," # # "," ! # "," # "," ! "," "," % "," % && "," % &&'' "," "," ( # # ",") # # ",")) ## # ","))) ### "," )) ( * ","))) (( + ** "," ((( * "," ( ** "," ) ( * "," ( * # "," # # "," # #"," # "," "," "," "," "," "," # "," "," "," ,, "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","KIR","PYF","TKL","WLF","WSM","ASM","TON","FJI","COK","NIU","NZL"],"data":{"ASM":{"AREA":20,"FIPS":"AQ","ISO2":"AS","ISO3":"ASM","LAT":-14.318,"LON":-170.73,"NAME":"American Samoa","POP2005":64051,"REGION":9,"SUBREGION":61,"UN":16},"COK":{"AREA":24,"FIPS":"CW","ISO2":"CK","ISO3":"COK","LAT":-21.219,"LON":-159.782,"NAME":"Cook Islands","POP2005":13984,"REGION":9,"SUBREGION":61,"UN":184},"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"NIU":{"AREA":26,"FIPS":"NE","ISO2":"NU","ISO3":"NIU","LAT":-19.052,"LON":-169.869,"NAME":"Niue","POP2005":1632,"REGION":9,"SUBREGION":61,"UN":570},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554},"PYF":{"AREA":366,"FIPS":"FP","ISO2":"PF","ISO3":"PYF","LAT":-17.626,"LON":-149.462,"NAME":"French Polynesia","POP2005":255632,"REGION":9,"SUBREGION":61,"UN":258},"TKL":{"AREA":1,"FIPS":"TL","ISO2":"TK","ISO3":"TKL","LAT":-9.193,"LON":-171.853,"NAME":"Tokelau","POP2005":1401,"REGION":9,"SUBREGION":61,"UN":772},"TON":{"AREA":72,"FIPS":"TN","ISO2":"TO","ISO3":"TON","LAT":-21.202,"LON":-175.185,"NAME":"Tonga","POP2005":99361,"REGION":9,"SUBREGION":61,"UN":776},"WLF":{"AREA":14,"FIPS":"WF","ISO2":"WF","ISO3":"WLF","LAT":-14.289,"LON":-178.131,"NAME":"Wallis and Futuna Islands","POP2005":15079,"REGION":9,"SUBREGION":61,"UN":876},"WSM":{"AREA":283,"FIPS":"WS","ISO2":"WS","ISO3":"WSM","LAT":-13.652,"LON":-172.414,"NAME":"Samoa","POP2005":183845,"REGION":9,"SUBREGION":61,"UN":882}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_4_3.json b/test/fixtures/grids/plain_2_0_4_3.json new file mode 100644 index 0000000..a9c9508 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_4_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," "," "," "," !! "," !!!! "," !!! "," !!! "," !! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," # "," # "," "," "," ## "," "," "],"keys":["","USA","KIR"],"data":{"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_4_4.json b/test/fixtures/grids/plain_2_0_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_5_3.json b/test/fixtures/grids/plain_2_0_5_3.json new file mode 100644 index 0000000..19507de --- /dev/null +++ b/test/fixtures/grids/plain_2_0_5_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!####!###############################$$$$$$$$"," !!!######################################$$$$$$$$"," ! ########################################$$$$$$$$"," ! !!########################################$$$$$$$$"," !!!! !!!!!!######################################$$$$$$$$","!!!!! !!!!!!######################################$$$$$$$$","!!!!!!! !!!!!!!!#####################################$$$$$$$$","!!!!!!!! !!!!!!!!!!#!##!##############################$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!#############################$$$$$$$$","!!!!!!!!!!!####!!!!!!!!!################################$$$$$$$$","!!!!!!!!!!!######!!!!!##################################$$$$$$$$","!!!!!!!!!!!!!###!!!!!###################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!###################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!!####################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!!####################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!#####################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!#####################################$$$$$$$$","!!!!!!!!!!!!!!!!!!!!####################################$$$$$$$$","!!!!!!!!!##!!!!!!!!!####################################$$$$$$$$","!!!!!!!!!###!!!!!!#########################################$$$$$","!!!!!!!!!!!!!!!!!######################!#######!!!#########$$$$$","!!!!!!!!!!!!!!!!!!##!!######################!##!!!#!!!######$$##","!!!!!!!!!!!!!!!!!!!!!!!!!#############!####!!!!!!!!!!!!!!#######","!!!!!!!!!!!!!!!!!!!!!!!!!#############!#!!!!!!!!!!!!!!!!!!######","!!!!!!!!!!!!!!!!!!!!!!!!!###############!!!!!!!!!!!!!!!!!!!#####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############!!!!!!!!!!!!!!!!!!!####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########!!!!!!!!!!!!!!!!!!!!!###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########!!!!!!!!!!!!!!!!!!!!!!##","!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!####!####!!!!!!!!!!!!!!!!!!!!!!!##","!!!!!!!!!!!!!!#!!!!!!!!!!!!!#####!!!##!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!!!!!!!!!!!!!!!!######!!###!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!!!!!!!!!!!!!!######!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!#####!!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!####!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!######!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!#######!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!#!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["RUS","","USA","CAN"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_5_4.json b/test/fixtures/grids/plain_2_0_5_4.json new file mode 100644 index 0000000..ae9d89c --- /dev/null +++ b/test/fixtures/grids/plain_2_0_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," !!! "," !! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","NZL"],"data":{"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_6_3.json b/test/fixtures/grids/plain_2_0_6_3.json new file mode 100644 index 0000000..dc4e174 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_6_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","!!! ","!!!! !! ## ","!!!! #### ","!!!! # ######### "," ############ "," ################## "," ######################## "," ############################## "," ################################ "," #################################$$$ $$"," #################################$$$$ $$","! ###################################$$$$$$$$","!! #####################################$$$$$$$$","!!!! #####################################$$$$$$$$","!!!!! ######################################$$$$$$$$","!!!!!! ####################################$$$$$$$$","!!!!!!! ###################################$$$$$$$$","!!!!!!!! ##################################$$$$$$$$","!!!!!!!!!! #################################$$$$$$$$","!!!!!!!!!!!!! #################################$$$$$$$$","!!!!!!!!!!!!! ###################################$$$$$$$$"],"keys":["","RUS","USA","CAN"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_6_4.json b/test/fixtures/grids/plain_2_0_6_4.json new file mode 100644 index 0000000..909c81a --- /dev/null +++ b/test/fixtures/grids/plain_2_0_6_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","NZL"],"data":{"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_7_3.json b/test/fixtures/grids/plain_2_0_7_3.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_7_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_8_4.json b/test/fixtures/grids/plain_2_0_8_4.json new file mode 100644 index 0000000..855fdc5 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!! ! "," !!!"," !"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," # "," "," # "," # "," "," "," "," "," #"," "," "," $ "," "," $ "],"keys":["","USA","KIR","UMI"],"data":{"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"UMI":{"AREA":0,"FIPS":"","ISO2":"UM","ISO3":"UMI","LAT":-0.385,"LON":-160.027,"NAME":"United States Minor Outlying Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":581},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_0_9_4.json b/test/fixtures/grids/plain_2_0_9_4.json new file mode 100644 index 0000000..fe3aa51 --- /dev/null +++ b/test/fixtures/grids/plain_2_0_9_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," "," "," "," "," "," "," # "," "," "," # "," "," "," "," "," "," "," "," "," ### "],"keys":["","UMI","USA"],"data":{"UMI":{"AREA":0,"FIPS":"","ISO2":"UM","ISO3":"UMI","LAT":-0.385,"LON":-160.027,"NAME":"United States Minor Outlying Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":581},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_10_4.json b/test/fixtures/grids/plain_2_10_10_4.json new file mode 100644 index 0000000..78a1301 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," !!"," !!!!!!"," !!!!!!"," !!!!!!!!!!!!"," ! !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!"," !!!!!!!! !!!!!!!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !! ! !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! ! !!!!!!! !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," #########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ###########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ##########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," #########!!!!!!!!!!!!!!!!!$$$$$!!!!!!!!!!!!!!!!!!!!!!!!"," ##########!!!!!!!!!!!!!!!$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!"," #######!!!!!!!!!!!!!!!!!$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!"," ########!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!"," ########!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!"," ########!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!"," ########!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!"," #########!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$!$$$$!$$$!!!!!!"," #########!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!"," #########!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!"," ###########!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!"," ############!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!"," ############!!!%%%!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!","& ###########!%%%%%%!!!$$$$$$%%%%%$$$$$$$$$$$$$$$$$$!!!!","&&& ##########%%##%%%%!!$$$$%%%%%%%$$$$$$$$$$$$$$$$$$$$!!","&&&&' ''#########%%##%%%%%!$$$$%%%%%%%$$$$$$$$$$$$$$$$$$$$!!","&&&&&' '''#########%%##%%%%%%$$$$%%%%%%%$$$$$$$$$$$$$$$$$$$$!!","((&&&'' ''''#########%####%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$"],"keys":["RUS","KAZ","","UZB","TKM","GEO","AZE","ARM"],"data":{"ARM":{"AREA":2820,"FIPS":"AM","ISO2":"AM","ISO3":"ARM","LAT":40.534,"LON":44.563,"NAME":"Armenia","POP2005":3017661,"REGION":142,"SUBREGION":145,"UN":51},"AZE":{"AREA":8260,"FIPS":"AJ","ISO2":"AZ","ISO3":"AZE","LAT":40.43,"LON":47.395,"NAME":"Azerbaijan","POP2005":8352021,"REGION":142,"SUBREGION":145,"UN":31},"GEO":{"AREA":6949,"FIPS":"GG","ISO2":"GE","ISO3":"GEO","LAT":42.176,"LON":43.518,"NAME":"Georgia","POP2005":4473409,"REGION":142,"SUBREGION":145,"UN":268},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"TKM":{"AREA":46993,"FIPS":"TX","ISO2":"TM","ISO3":"TKM","LAT":39.122,"LON":59.384,"NAME":"Turkmenistan","POP2005":4833266,"REGION":142,"SUBREGION":143,"UN":795},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_11_4.json b/test/fixtures/grids/plain_2_10_11_4.json new file mode 100644 index 0000000..21e64fb --- /dev/null +++ b/test/fixtures/grids/plain_2_10_11_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_13_4.json b/test/fixtures/grids/plain_2_10_13_4.json new file mode 100644 index 0000000..7808298 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !"," !!!"," !!!!"," !!!!"," !!!!!"," !!!!!"," !!!!!!!"," !!!!!!!!!"," !!!!!!!!!!"," !!!! !!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_4_4.json b/test/fixtures/grids/plain_2_10_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_5_4.json b/test/fixtures/grids/plain_2_10_5_4.json new file mode 100644 index 0000000..8e7d184 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !! "," !!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ATF"],"data":{"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_6_4.json b/test/fixtures/grids/plain_2_10_6_4.json new file mode 100644 index 0000000..d47d80e --- /dev/null +++ b/test/fixtures/grids/plain_2_10_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["MDG",""],"data":{"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_7_4.json b/test/fixtures/grids/plain_2_10_7_4.json new file mode 100644 index 0000000..b4cd7e4 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_7_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," !! "," ! "," "," "," "," "," "," "," ! "," "," "," "," "," "," !! "," ! "," "," # "," "," "," "," "," $$ "," $$$$ ","% $$$ ","% $$$$$$ "," $$$$$$$ "," $$$$$$$ "," $$$$$$$$ "," $$$$$$$$ "," $$$$$$$$$$ "," $$$$$$$$$$$ "," $$$$$$$$$$$$$ ","$$$$$$$$$$$$$$$$ ","$$$$$$$$$$$$$$ ","$$$$$$$$$$$$$$ ","$$$$$$$$$$$$$$$ ","$$$$$$$$$$$$$$ ","$$$$$$$$$$$$$ ","$$$$$$$$$$$$$ ","$$$$$$$$$$$$$ ","$$$$$$$$$$$$$ ","$$$$$$$$$$$$ ","$$$$$$$$$$$$ ","$$$$$$$$$$$$ ","$$$$$$$$$$$ # ","$$$$$$$$$$$ ## ","$$$$$$$$$$$ ## ","$$$$$$$$$$$ && ","$$$$$$$$$$ && ","$$$$$$$$$$ && ","$$$$$$$$$$ "],"keys":["","SYC","MUS","MDG","MYT","REU"],"data":{"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MUS":{"AREA":203,"FIPS":"MP","ISO2":"MU","ISO3":"MUS","LAT":-20.255,"LON":57.583,"NAME":"Mauritius","POP2005":1241173,"REGION":2,"SUBREGION":14,"UN":480},"MYT":{"AREA":0,"FIPS":"MF","ISO2":"YT","ISO3":"MYT","LAT":-12.777,"LON":45.155,"NAME":"Mayotte","POP2005":0,"REGION":2,"SUBREGION":14,"UN":175},"REU":{"AREA":250,"FIPS":"RE","ISO2":"RE","ISO3":"REU","LAT":-21.122,"LON":55.538,"NAME":"Reunion","POP2005":785159,"REGION":2,"SUBREGION":14,"UN":638},"SYC":{"AREA":46,"FIPS":"SE","ISO2":"SC","ISO3":"SYC","LAT":-4.647,"LON":55.474,"NAME":"Seychelles","POP2005":85532,"REGION":2,"SUBREGION":14,"UN":690}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_10_8_4.json b/test/fixtures/grids/plain_2_10_8_4.json new file mode 100644 index 0000000..2544cc1 --- /dev/null +++ b/test/fixtures/grids/plain_2_10_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!######################"," !!!!!!!!!!!#######################"," !!!!!!!!!!########################"," !!!!!!!!!!########################"," !!!!!!!!!!!########################"," !!!!!!!!#!!########################"," !!!!!!!!!###########################"," !!!!!!!!!!!###########################"," $ !!!!!!!!!!!!!!###########################"," $$$$$$!!!!!!!!!!!!!!!!###########################"," $$$$$$$$$$!!!!!!!!!!!!!##############################"," $$$$$$$$$$$$$!!!!!!!!!!!###############################"," $$$$$$$$$$$$$!!!!!!!!!!!###############################"," $$$$$$$$$$$$$$$!!!!!!!!!################################","$$ $$$$$$$$$$$$$$$$!!!!!!!##################################","$$$$ $$$$$$$$$$$$$$$$$$!!#!####################################","$$$$ $$$$$$$$$$$$$$$$$$#########################################","$$$$$$$$$$$$$$$$$$$$$###########################################","$$$$$$$$$$$$$$$$$$$$$###########################################","$$$$$$$$$$$$$$$$$$$$$###########################################","$$$$$$$$$$$$$$$$$$$#############################################","$$$$$$$$$$$$$$$$################################################","$$$$$$$$$$$$####################################################","$$$$$$$$$$$$####################################################","$$$$$$$$########################################################","$$$$$$##########################################################","$$##############################################################","$######################$$$$#####################################","####################$##$$$$#####################################","###############%%%##$#$$########################################","##############%%%%##############################################","######%%#%%%%%%%%%##############################################","#%%##%%%%%%%%%%%%%##############################################","%%%%%%%%%%%%%%%%%%%#############################################","%%%%%%%%%%%%%%%%%%%#############################################","%%%%%%%%%%%%%%%%%###############################################","%%%%%%%%%%%%%%%%%###############################################","%%%%%%%%%%%%%%%%%###############################################","%%%%%%%%%%%%%%%%################################################","%%%%%%%%%%%%%%%%################################################","&&%%%%%%%%%%%%%#################################################","&&&&&%%%%%%%%%##################################################","&&&&&&%%%%%%%%##################################################","&&&&&%%%%%%%%%##################################################","&&&&%%%%%%%%%###################################################","&&&%%%%%%%%%####################################################","&&%%%%%%%%%%####################################################","&%%%%%%%%%%%####################################################","%%%%%%%%%%%#####################################################","%%%%%%%%%%######################################################","%%%%%%%%%%######################################################","%%%%%%%%%#######################################################","%%%%%%%%########################################################","%%%%%%%#########################################################","%%%%%%##########################################################","%%%%%###########################################################","%%%%############################################################","%%%#############################################################","%%##############################################################","################################################################","################################################################","################################################################","################################################################","################################################################"],"keys":["SAU","OMN","","YEM","SOM","ETH"],"data":{"ETH":{"AREA":100000,"FIPS":"ET","ISO2":"ET","ISO3":"ETH","LAT":8.626,"LON":39.616,"NAME":"Ethiopia","POP2005":78985857,"REGION":2,"SUBREGION":14,"UN":231},"OMN":{"AREA":30950,"FIPS":"MU","ISO2":"OM","ISO3":"OMN","LAT":21.656,"LON":57.407,"NAME":"Oman","POP2005":2507042,"REGION":142,"SUBREGION":145,"UN":512},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"YEM":{"AREA":52797,"FIPS":"YM","ISO2":"YE","ISO3":"YEM","LAT":15.807,"LON":48.355,"NAME":"Yemen","POP2005":21095679,"REGION":142,"SUBREGION":145,"UN":887}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_10_4.json b/test/fixtures/grids/plain_2_11_10_4.json new file mode 100644 index 0000000..23318c9 --- /dev/null +++ b/test/fixtures/grids/plain_2_11_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," !!!! ! "," !!!!!!! ","!!!!!!!!!! ","!!!!!!!!!! ","!!!!!!!!! ","!!!!!!!!!! ! ","!!!!!!!!!!!!! ! !! ","!!!!!!!!!!!!!!!! !!!!!! ","!!!!!!!!!!!!!!!! ! !!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ######","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$#######","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$######","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$#####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$##","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!!!$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!%%!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!%%%%%%%%%%%%%%!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!&&%%%%%!!%%%%%%%%%%%%%%%!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!&&&&%%%%%%%%%%%%%%%%%%%%%%%%!!$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!&&&%%%%%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!&&&&%%&%%%%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!&&&&&&%&&%%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&!&&&&&&&&&&&&%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"],"keys":["RUS","KAZ","MNG","CHN","KGZ","UZB"],"data":{"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"KGZ":{"AREA":19180,"FIPS":"KG","ISO2":"KG","ISO3":"KGZ","LAT":41.465,"LON":74.555,"NAME":"Kyrgyzstan","POP2005":5203547,"REGION":142,"SUBREGION":143,"UN":417},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_11_4.json b/test/fixtures/grids/plain_2_11_11_4.json new file mode 100644 index 0000000..2a4deea --- /dev/null +++ b/test/fixtures/grids/plain_2_11_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["RUS",""],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_12_4.json b/test/fixtures/grids/plain_2_11_12_4.json new file mode 100644 index 0000000..7a1f3a9 --- /dev/null +++ b/test/fixtures/grids/plain_2_11_12_4.json @@ -0,0 +1 @@ +{"grid":[" !!! ! !!!!!!!!!"," !!!!!!!!!!!!"," !! !!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!! ! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! !!! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !!!! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!! !! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!! !!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!!!!!!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","! !!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_13_4.json b/test/fixtures/grids/plain_2_11_13_4.json new file mode 100644 index 0000000..205ea9e --- /dev/null +++ b/test/fixtures/grids/plain_2_11_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," ! "," ! "," !!!"," !! "," ! !","!! ! ","!!!! ","!!!! ","!!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!! ","!!! ","!! "," "," "," !!!!!! "," !!! !! "," "," "," "," !! !!!"," !! !!!!"," !!!! !!!!!"," !!! !!!!!"," !! !!!!!!!!!"," ! !!!!!!!!!"," !!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !! !!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!! !! !!!!!!!!!!"," !!!!!!! !!!!!!!!!!"],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_14_4.json b/test/fixtures/grids/plain_2_11_14_4.json new file mode 100644 index 0000000..83f9c2a --- /dev/null +++ b/test/fixtures/grids/plain_2_11_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !"," !"," "," "," !!!! "," !!!!! "," !!!!! "," !!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !!!! "," !!!!! "," !!! "," "," "," "," "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_5_4.json b/test/fixtures/grids/plain_2_11_5_4.json new file mode 100644 index 0000000..85839cd --- /dev/null +++ b/test/fixtures/grids/plain_2_11_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !!! "," !!!!!! "," !!!!!! "," !!!!!! "," !!!!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ## "," ## "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ATF","HMD"],"data":{"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"HMD":{"AREA":0,"FIPS":"HM","ISO2":"HM","ISO3":"HMD","LAT":-53.111,"LON":73.507,"NAME":"Heard Island and McDonald Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":334}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_8_4.json b/test/fixtures/grids/plain_2_11_8_4.json new file mode 100644 index 0000000..1a3e144 --- /dev/null +++ b/test/fixtures/grids/plain_2_11_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," ! !!!!!!!!!!!!! "," ! !!!!!!!!!!!!! "," !! !!!!!!!!!!!!! "," ! !!!!!!!!!!!!! "," !!!!!!!!!!!! "," ! !!!!!!!!!! $$ "," !!!!!!!!! $$$$ "," !!!!!!!!!$$$$$ "," !!!!!! $$$$$ "," !!!!! $$$$$ "," ! !!!! $$$$$$ "," $$$$$$$ "," $$$$$$$ "," $$$$$$ "," %% $$$$$$ "," $$$$$$ "," %% $$$$$ "," % $$ "," "," "," % "," "," % % "," % "," "," % "," "," %% "," % "," "," "," "," "," % "],"keys":["","IND","BGD","LKA","MDV"],"data":{"BGD":{"AREA":13017,"FIPS":"BG","ISO2":"BD","ISO3":"BGD","LAT":24.218,"LON":89.941,"NAME":"Bangladesh","POP2005":15328112,"REGION":142,"SUBREGION":34,"UN":50},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"LKA":{"AREA":6463,"FIPS":"CE","ISO2":"LK","ISO3":"LKA","LAT":7.612,"LON":80.704,"NAME":"Sri Lanka","POP2005":19120763,"REGION":142,"SUBREGION":34,"UN":144},"MDV":{"AREA":30,"FIPS":"MV","ISO2":"MV","ISO3":"MDV","LAT":3.548,"LON":72.92,"NAME":"Maldives","POP2005":295297,"REGION":142,"SUBREGION":34,"UN":462}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_11_9_4.json b/test/fixtures/grids/plain_2_11_9_4.json new file mode 100644 index 0000000..0cc059a --- /dev/null +++ b/test/fixtures/grids/plain_2_11_9_4.json @@ -0,0 +1 @@ +{"grid":[" ! ##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," % ##########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %% ######$$###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%# #######$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%%%%#%%%%#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%&&%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%%&&&%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," %%%%%&&&&&%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","%%%&%%&&&&&%%%%''''''''$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&%%'''''''''''$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&''''''''''''''$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&'''''''''''''''$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&''''''''''''''''$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&'''''''''''''''''''($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&''''''''''''''''''(($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&''''''''''''''''''((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&'''''''''''''''''(((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&''''''''''(((''((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&''&'''''''''''((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&''''''''''''''((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&''''''''''''(((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&''''''''''''((((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&'''''''''''''''(((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&''''''''''''''''(((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&'''''''''''''''''''((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&''''''''''''''''''((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&''''''''''''''''''''(((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''''''((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''''''((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''''''(((((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$$","''''''''''''''''''''(((((((((((((((((($$$$$$$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''''((((((((((((((((((())))$$$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''''(((((((((((((((((()))))))$$$$$$$$$$$$$$$$$$$$","'''''''''''''''''((((((((((((((((((()))))))))$$$$$$$$$$$$$$$$$$$","'''''''''''''''''((((((((((((((((((())))))))))))$$$$$$$$$$$$$$$$","''''''''''''''''((((((((((((((((((()))))))))))))$$$$$$$$$$$$$$$$","'''''''''''''''(((((((((((((((((((())))))))))))))))$$$$$$$$$$$$$","''''''''''''''(((((((((((((((((((((()))))))))))))))$$$$$$$$$$$$*","'''''''''''''(((((((((((((((((((((((((())))))))))))))))$$$$(($**","'''''''''''''((((((((((((((((((((((((((()))))))))))))))))))((***","''''''''((((((((((((((((((((((((((((((((((())))))))))))))))((***","'''''''((((((((((((((((((((((((((((((((((((()))()))))))))))((***","''''''(((((((((((((((((((((((((((((((((((((((((()))))))))))((((*","''''''''((((((((((((((((((((((((((((((((((((((((((())))))))(((((","''''''''((((((((((((((((((((((((((((((((((((((((((((((())))(((((","''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((+(((","'''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((++(","''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((((+(","''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((++++","'''''''''''((((((((((((((((((((((((((((((((((((((((((((((((+++++","'''''''''''((((((((((((((((((((((((((((((((((((((((((((((((((+++","''''((''(((((((((((((((((((((((((((((((((((((((((((((((((((((+++","''(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+++",",,(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((+++",",,,(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((++",",,,,(((((((((((((((((((((((((((((((((((((((((((((((((((((((((+++",",,,,((((((((((((((((((((((((((((((((((((((((((((((((((((((((((++",",,,,((((((((((((((((((((((((((((((((((((((((((((((((((((((((((++"],"keys":["UZB","KAZ","KGZ","CHN","TJK","AFG","PAK","IND","NPL","BTN","BGD",""],"data":{"AFG":{"AREA":65209,"FIPS":"AF","ISO2":"AF","ISO3":"AFG","LAT":33.677,"LON":65.216,"NAME":"Afghanistan","POP2005":25067407,"REGION":142,"SUBREGION":34,"UN":4},"BGD":{"AREA":13017,"FIPS":"BG","ISO2":"BD","ISO3":"BGD","LAT":24.218,"LON":89.941,"NAME":"Bangladesh","POP2005":15328112,"REGION":142,"SUBREGION":34,"UN":50},"BTN":{"AREA":4700,"FIPS":"BT","ISO2":"BT","ISO3":"BTN","LAT":27.415,"LON":90.429,"NAME":"Bhutan","POP2005":637013,"REGION":142,"SUBREGION":34,"UN":64},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"KGZ":{"AREA":19180,"FIPS":"KG","ISO2":"KG","ISO3":"KGZ","LAT":41.465,"LON":74.555,"NAME":"Kyrgyzstan","POP2005":5203547,"REGION":142,"SUBREGION":143,"UN":417},"NPL":{"AREA":14300,"FIPS":"NP","ISO2":"NP","ISO3":"NPL","LAT":28.253,"LON":83.939,"NAME":"Nepal","POP2005":27093656,"REGION":142,"SUBREGION":34,"UN":524},"PAK":{"AREA":77088,"FIPS":"PK","ISO2":"PK","ISO3":"PAK","LAT":29.967,"LON":69.386,"NAME":"Pakistan","POP2005":158080591,"REGION":142,"SUBREGION":34,"UN":586},"TJK":{"AREA":13996,"FIPS":"TI","ISO2":"TJ","ISO3":"TJK","LAT":38.665,"LON":69.42,"NAME":"Tajikistan","POP2005":6550213,"REGION":142,"SUBREGION":143,"UN":762},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_10_4.json b/test/fixtures/grids/plain_2_12_10_4.json new file mode 100644 index 0000000..7ea2690 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!! "," !!!!!!!! !!!!!!!!!!! "," !!!!!!!!! !!!!!!!!!!!!! !!!!!! "," !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","##########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","############!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","#############!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","###############!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#","################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#","################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####","#################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####","##################!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####","################################!!!!!!!!!!!!!!!!!!!!!!!!########","##################################!!!!!!!!!!!!!!################","#####################################!!!!!!!!!##################","#########################################!!!####################","################################################################","################################################################"],"keys":["RUS","MNG","CHN"],"data":{"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_11_4.json b/test/fixtures/grids/plain_2_12_11_4.json new file mode 100644 index 0000000..21e64fb --- /dev/null +++ b/test/fixtures/grids/plain_2_12_11_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_12_4.json b/test/fixtures/grids/plain_2_12_12_4.json new file mode 100644 index 0000000..a684bf6 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_12_4.json @@ -0,0 +1 @@ +{"grid":[" ! !!"," ! !!!"," !! !"," !!! "," ! !!! !! "," !!!!! "," !!!!! "," !!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["RUS",""],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_13_4.json b/test/fixtures/grids/plain_2_12_13_4.json new file mode 100644 index 0000000..e618e61 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_13_4.json @@ -0,0 +1 @@ +{"grid":[" !! !!!!!!!!!!!!!!! !!!!!! !! "," !! !!!!!!!!!!!!!!!! !!!!!!!!! "," !!!!!!!!!!!!! !!!!!!!!!!! "," !!!!!!!!!! !!!!!!!!!!!! "," !!!!!!!! !!!!!!!!!!!!! "," !!!!!! !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! !! "," ! !!!!!!!!!!!!! !!! "," ! !!!!!!!! ! !!!!!! "," !!!!!! !!!!! "," !!!!! ! "," !!! "," "," "," !!! "," !! !!!!!! "," ! !!!!!!!!!! "," !!!!!!!!!!! ! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! !! "," !!!!!!!!!!!!!! !!! "," !! !!!!!!!!!!!! ! ","! !!! !!!!!!!!!!!!!!! "," !!!!! !!!!!!!!!!!!!!!!!!! "," !!!! !!!!!!!!!!!!!!!!!!!! "," ! !!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!! "," !!!!!! !! !!!!!!!!!!!!!!!!!! !!!!!!!!!!!! "," ! !!!!!! !! !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!"," !! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_14_4.json b/test/fixtures/grids/plain_2_12_14_4.json new file mode 100644 index 0000000..5323ba2 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!! ","!!!! !!!! ","!!!!! !!!!! ","!!!!! !!!!!!!! ","!!!! !!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!! !!!! "," !!!! !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!! !!!! "," !!!!!!!! !!!!!!!!!!!!!!!!! "," !!!!!!!! !!!!!!!!!!!!!!!!! "," !!!!!! !!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!! !!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!!!!! "," !!!! !!!!!!!!!!!!!!!!!! !!!! "," !!!!!!!!!!!!!!!! !!!!!! "," !!!!!!!!!!!!!!!! !!!!!! "," !!!!!!!!!!!!!!!! !!!!!! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_4_4.json b/test/fixtures/grids/plain_2_12_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_6_4.json b/test/fixtures/grids/plain_2_12_6_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_6_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_7_4.json b/test/fixtures/grids/plain_2_12_7_4.json new file mode 100644 index 0000000..5c7eeb5 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!! !!!!!!!!!!!!!!!! !!!!!!!!!!"," !! !!!!!!!!!!! !! !!!!!!!!!!"," !! !!!!!!!!!!!! !!!!!!!!!!"," !! !!!!!!!!!!!!! !!!!!!!!!!"," !!! !!!!!!!!!!!! !!! ! !!!!!!!!"," !!! !!!!!!!!!!!!!!!! !!!!!!!!"," ! !!!!!!!!!!!!!!!!! !!!!!!!"," !! !!!!!!!!!!!!!!!!! !! !!!!!!!"," !! !!!!!!!!!!!!!!!!!!!! !!!!!!!"," ! !!!!!!!!!!!!!! !! !!"," !!!!!!!!!!!! ! "," ! !!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!! "," !!!!!!!! "," !! !!!!!! "," !!!!!!! !! "," !!!!!!!! "," !!!!!!!!!!! !!!! "," !!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!"," !!!!!!"," "," "," "," "," "," # "," # "," "," "," "," $ "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","IDN","CXR","CCK"],"data":{"CCK":{"AREA":1,"FIPS":"CK","ISO2":"CC","ISO3":"CCK","LAT":-12.173,"LON":96.839,"NAME":"Cocos (Keeling) Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":166},"CXR":{"AREA":0,"FIPS":"KT","ISO2":"CX","ISO3":"CXR","LAT":-10.444,"LON":105.704,"NAME":"Christmas Island","POP2005":0,"REGION":0,"SUBREGION":0,"UN":162},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_8_4.json b/test/fixtures/grids/plain_2_12_8_4.json new file mode 100644 index 0000000..22fd386 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_8_4.json @@ -0,0 +1 @@ +{"grid":[" !! #####################$$$$$%%&&&&&&&&&&&&&&&&$$$$$$$$$$$$$","!!!!! ######################$$%%$%%%&&&&&&&&&&&&&&&&$!$$$$$$$$$!","!!!!! #######################%%%%%%%&&&&&&&&&&&&&&&!!!$$$$$!!!!!","!!!!!!######################%%%%%%%%%&&&&&&&&&&&&&&!!!!$$$$!!!!!","!!!!!!!####################'''%%%%%%%%%%&&&&&&&&!!!!!!!!$$$!!!!!","!!!!!!!##################''''''%%%%%%%%%%&&&&&&&!!&!!!!$$$$$!!!!","!!!!!!!!##############''''''''%%%%%%%%%&&&&&&&!!!!!!!!$$$$$$!!!!","!!!!!!!!!#############'''''''''''%%%%%%&&&&&&!!!!!!!!$$$$$$$!!!!","!!!!!!!!!############''''''''''''%%%%%%&&&&&&!!!!!!!$$$$$$$!!!!!","!!!!!!!!!############''''''''''''%%%%%%%%&&&&!!!!!!!$$$$$$$!!!!!","!!!!!!!!!!!!########''''''''''''%%%%%'''%%&&&&!!!!!!!$$$$$!!!!!!","!!!!!!!!!!!!#########'''''''''''%''''''''%%&&&&!!!!!!!!$$!!!!!!!","!!!!!!!!!!!!#########'''''''''''''''''''''%%&&&!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!##########'''''''''''''''''''''%%&&&!!!!!!!!!!!!!!!!","!!!!!!!!!!!!###########''''''''''''''''''''%%&&&&!!!!!!!!!!!!!!!","!!!!!!!!!!!!############''''''''''''''''''%%%%%&&&!!!!!!!!!!!!!!","!!!!!!!!!!!########!####'''''''''''''''''''%%%%&&&&&!!!!!!!!!!!!","!!!!!!!!!!!#######!!!###''''''''''''''''''''%%%%&&&&&!!!!!!!!!!!","!!!!!!!!!!!!#####!!!!###'''''''''''''''''''''%%%&&&&&!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!##''''''''''''''''''''''%%%%&&&&&!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!#''''''''''''''''''''''%%%%&&&&&!!!!!!!!!!","!!!!!!!!!!#!!!!!!!!!!!#''''''''''''''''''''''%%%%&&&&&&!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!##'''''''''''''''''''''%%%%&&&&&&!!!!!!!!!","!!!!!!!!!#!!!!!!!!!!!!##''''''''''''''((((''%%(((&&&&&&!!!!!!!!!","!!!!!!!!)!!!!!!!!!!!!!###''''''''''''((((((((((((&&&&&&!!!!!!!!!","!!!!!!!!)!!!)!!!!!!!!!!###''''''''''(((((((((((((&&&&&&!!!!!!!!!","!!!!!!!))!!!!!!!!!!!!!!##''''!''''''(((((((((((((&&&&&&&!!!!!!!!","!!!!!!!))!!!!!!!!!!!!!####'''!'''''''((((((((((((&&&&&&&!!!!!!!!","!!!!!!!))!)!!!!!!!!!!!####'''!!!!''''(((((((((((&&&&&&&!!!!!!!!!","!!!!!!!))!!!!!!!!!!!!#####'''!!!!!'''(((((((((&&&&&&&&&!!!!!!!!!","!!!!!!))!!!!!!!!!!!!!#####''!!!!!!!''(((((((&&&&&&&&&&&!!!!!!!!!","!!!!!!!)!!!!!!!!!!!!!!!###''!!!!!!!!(((((((((&&&&&&&&&&!!!!!!!!!","!!!!!!))!!!!!!!!!!!!!!###'''!!!!!!!!!(((((&&&&&&&&&&&!!!!!!!!!!!","!!!!!!))!!!!!!!!!!!!!!##'''!!!!!!!!!!((((&&&&&&&&&&&!&!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!##'''!!!!!!!!!!!!&&&&&&&&&&&!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!##'''!'!!!!!!!!!!&!!&&&&&&!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!'''''''!!!!!!!!!!!!!&&&&&&!!!!!!!!!!!!!!!!","!!!!!!!)!!!!!!!!!!!!!!'''''''!!!!!!!!!&!!!&&&&&!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!''''''!!!!!!!!!!!!!&&&!!&!!!!!!!!!!!!!!!!","!!!!!!!!!!)!!!!!!!!!!!!'''''''!!!!!!!!!!!&&&!!!&!!!!!!!!!!!!!!!!","!!!!!!!!))!!!!!!!!!!!!!'''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!))!!!!!!!!!!!!'''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!)!!!!!!!!!!!!!!'''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!))!!!!!!!!!!!!!!'''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!))!!!!!!!!!!!!!!!'''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!***'''''*!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!+++!!!!!!!!!!!!**'''***!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!++++!+!!!!!!!!**********!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!+++++++++!!!!!!*********!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!++++++++!!!!!!**********!!!!!!!!!!!!+!!!!!!!!!!!!","!!!!!!!!!!!!!!!!++++++++!!!!!!*********!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!++++++++!!!!!*********!!!!!!!!!!!!++!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!+++++++++!!!*********!!!!!!!!!!!!++!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!+++++++++!!!********!!!!!!!+!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!+!!!+++++++++!!!*******!*!!!+++!!!+!!+!!!!!!!***","!!!!!!!!!!!!!!!!+++!!+++++++++!!*********!!!!!+!!!!!!++!!!!!****","!!!!!!!!!!!!!!!!!++!++++++++++++++*******!!!!!!!!!!!!!!!!!!!****","!!!!!!!!!!!!!!!!!!+!+!!+++++++++++!******!!!!!!!!!!!!!++**!*****","!!!!!!!!!!!!!!!!!!!!++!+++++++++++++**,,*!!!!!!!!!!!!!+++******+","!!!!!!!!!!!!!!!!!!!!+++!++++++++++++++++++!!!!!!!!!!!+++++**+*++","!!!!!!!!!!!!!!!!!!!!+++!!++++++++++++++++++!!!!!!+!!!+++++++++++","!!!!!!!!!!!!!!!!!!!!!++!!++++++++++++++!+!!!!!!!!!!!!+++++++++++","!!!!!!!!!!!!!!!!!!!!!!!+++++++++++++++++++!!!!!!!!!!!+++++++++++"],"keys":["BGD","","MMR","CHN","LAO","VNM","THA","KHM","IND","MYS","IDN","SGP"],"data":{"BGD":{"AREA":13017,"FIPS":"BG","ISO2":"BD","ISO3":"BGD","LAT":24.218,"LON":89.941,"NAME":"Bangladesh","POP2005":15328112,"REGION":142,"SUBREGION":34,"UN":50},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"KHM":{"AREA":17652,"FIPS":"CB","ISO2":"KH","ISO3":"KHM","LAT":12.714,"LON":104.564,"NAME":"Cambodia","POP2005":13955507,"REGION":142,"SUBREGION":35,"UN":116},"LAO":{"AREA":23080,"FIPS":"LA","ISO2":"LA","ISO3":"LAO","LAT":19.905,"LON":102.471,"NAME":"Lao People's Democratic Republic","POP2005":566391,"REGION":142,"SUBREGION":35,"UN":418},"MMR":{"AREA":65755,"FIPS":"BM","ISO2":"MM","ISO3":"MMR","LAT":21.718,"LON":96.041,"NAME":"Burma","POP2005":47967266,"REGION":142,"SUBREGION":35,"UN":104},"MYS":{"AREA":32855,"FIPS":"MY","ISO2":"MY","ISO3":"MYS","LAT":4.201,"LON":102.195,"NAME":"Malaysia","POP2005":25652985,"REGION":142,"SUBREGION":35,"UN":458},"SGP":{"AREA":67,"FIPS":"SN","ISO2":"SG","ISO3":"SGP","LAT":1.351,"LON":103.808,"NAME":"Singapore","POP2005":4327468,"REGION":142,"SUBREGION":35,"UN":702},"THA":{"AREA":51089,"FIPS":"TH","ISO2":"TH","ISO3":"THA","LAT":15.7,"LON":100.844,"NAME":"Thailand","POP2005":63002911,"REGION":142,"SUBREGION":35,"UN":764},"VNM":{"AREA":32549,"FIPS":"VM","ISO2":"VN","ISO3":"VNM","LAT":21.491,"LON":105.314,"NAME":"Viet Nam","POP2005":85028643,"REGION":142,"SUBREGION":35,"UN":704}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_12_9_4.json b/test/fixtures/grids/plain_2_12_9_4.json new file mode 100644 index 0000000..16feaa0 --- /dev/null +++ b/test/fixtures/grids/plain_2_12_9_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! !!!! "," !!!!!!!! "," !!!!!!!!!! ","# !!!!!!!!!!!!! ","##### !!!!!!!!!!!!!! ","####!!!!!!!!!!!!!!!!!$$ ","####!!!!!!!!!!!!!!!!$$$ ","#####!!!!!!!!!!!!!!!!$$$ ","!!!!!!!!!!!!!!!!!$$$$$$$ ","!!!!!!!!!!!!!!!!$$$$$$$$ ","!!!!!!!!!!!!!!!$$$$$$$$$ ","!!!!!!!!!!!!!!!$$$$$$$$$ ","!!!!!!!!!!!!!!!$$$$$$$$ ","!!!!!!!!!!!!!!$$$$$$$$ ","%%%%!%!!!!!!!!$$$$$$$ ","%%%%%%!!!!!!!!$$$$$$$ ","%%%%%!!!!!!!!$$$$$$$$ ","%%%!!!!!!!!!!$$$$$$$$ ","%%%!!!!!!!$!$$$$$$$$$ $$ ","%%%!!!!!!!$$$$$$$$$$$$$$$ && ","%%%!!!!!!!$$$$$$$$$$$$$$$ &&&&&& ","%%%%%%!!!$$$$$$$$$$$$$$$$$ &&&&&&&&&&&&& ","%%%%%%%!!!$$$$$$$$$$$$$$$$ '&&&&&&&&&&&&&& ","%%%%(%%!!!$$$$$$$$$$$$$$$$ ''&&&&&&&&&&&&&&& "],"keys":["CHN","IND","BTN","MMR","BGD","VNM","LAO",""],"data":{"BGD":{"AREA":13017,"FIPS":"BG","ISO2":"BD","ISO3":"BGD","LAT":24.218,"LON":89.941,"NAME":"Bangladesh","POP2005":15328112,"REGION":142,"SUBREGION":34,"UN":50},"BTN":{"AREA":4700,"FIPS":"BT","ISO2":"BT","ISO3":"BTN","LAT":27.415,"LON":90.429,"NAME":"Bhutan","POP2005":637013,"REGION":142,"SUBREGION":34,"UN":64},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"LAO":{"AREA":23080,"FIPS":"LA","ISO2":"LA","ISO3":"LAO","LAT":19.905,"LON":102.471,"NAME":"Lao People's Democratic Republic","POP2005":566391,"REGION":142,"SUBREGION":35,"UN":418},"MMR":{"AREA":65755,"FIPS":"BM","ISO2":"MM","ISO3":"MMR","LAT":21.718,"LON":96.041,"NAME":"Burma","POP2005":47967266,"REGION":142,"SUBREGION":35,"UN":104},"VNM":{"AREA":32549,"FIPS":"VM","ISO2":"VN","ISO3":"VNM","LAT":21.491,"LON":105.314,"NAME":"Viet Nam","POP2005":85028643,"REGION":142,"SUBREGION":35,"UN":704}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_12_4.json b/test/fixtures/grids/plain_2_13_12_4.json new file mode 100644 index 0000000..193c1f1 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_12_4.json @@ -0,0 +1 @@ +{"grid":[" ! !! "," ! !! ","!!! !!! ","!!! !!!!!!! !!!!!!! ","!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! !","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_13_4.json b/test/fixtures/grids/plain_2_13_13_4.json new file mode 100644 index 0000000..e1e8d6f --- /dev/null +++ b/test/fixtures/grids/plain_2_13_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","! ","! ","! ! ","!!! ","! ","!!! ","!!! ","!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!!! ","!!! ","!! ","!! ","! "," "," "," ","!! ","!!! ","!!! !! ","!!! !! ","!! ","! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_14_4.json b/test/fixtures/grids/plain_2_13_14_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_4_4.json b/test/fixtures/grids/plain_2_13_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_5_4.json b/test/fixtures/grids/plain_2_13_5_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_6_4.json b/test/fixtures/grids/plain_2_13_6_4.json new file mode 100644 index 0000000..1918647 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!! !!!"," !!!!!!!!!!!!!!!!!!!!!!!!! !!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!! !!"," !!!!!!!!!!!!!!!!!!!!!!!!!! !!"," !!!!!!!!!!!!!! ! ! "," !!!!!!!!!!!!! "," !!!!!!!!! "," !!!!!!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","AUS"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_7_4.json b/test/fixtures/grids/plain_2_13_7_4.json new file mode 100644 index 0000000..765d06a --- /dev/null +++ b/test/fixtures/grids/plain_2_13_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!! !!! !!!!!!!!!!!!! !! ! !! !!!!!!"," !!!!! !!!! ! !!!!!!!!! !!!!!! !!!!"," !!!! !! !!!!!!!!! !!!! ! "," !!!!! !!!!!!!!!! !!!!! ! ! "," !!!!!!! ! !!!!! !!!! ! !!"," !!!!!! !!! !!!!!!!! !!!! !"," !!!!!! !!! !!!!!!! !!!!!!!!!!!!!!!! !"," !!!!! !!!!!!!!!! !!!!!!!! !!!!! !"," !!!!!! ! !!!!!!!!! ! !!! "," !!!!!! !!!!!!!!! !!!! ","!!!!! !!!!!! ! !!!!!!! ! !!! !!!! ","!!!!! !! !!!!!!!!! !! !!!!!!!!!! !!!!!!!!!!! !!! ! ","!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!! !!!! !!!! !!! ","!!!!!!!!! !!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!","!!!!!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!! !!! "," !!!!!!!!!!!!!!!!!!! ! !!!!! !! !!!!!!!!!!!!!!!!!!!!!!!! !! ","!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!! !!! ","!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! "," ! !!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!!!!!! !!!!!! !!!!!!!!"," !!!!!!!!!!!!!!!!!!! ! !!!!!!!!!!! ! !!!!!!!!! !!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! !! !!!!!!!!!"," ! !! !!! !!### ! !!!! !!!!!!!!!!"," ! ########!!!!!!!!!!!!!!!!!!!!!","!!!!! ! ! !!!!!! ######!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!! !!!!!!!!!!## ####!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!! !! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!$!!!!$$$!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$!!$$$$$$!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$!!!!!!$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$!!!!$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$!!$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!!!!$$!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!$$!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","!!!!$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"],"keys":["IDN","","TLS","AUS"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"TLS":{"AREA":1487,"FIPS":"TT","ISO2":"TL","ISO3":"TLS","LAT":-8.822,"LON":125.878,"NAME":"Timor-Leste","POP2005":1067285,"REGION":142,"SUBREGION":35,"UN":626}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_8_4.json b/test/fixtures/grids/plain_2_13_8_4.json new file mode 100644 index 0000000..e946446 --- /dev/null +++ b/test/fixtures/grids/plain_2_13_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!! !!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!#####!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!#####!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!##########!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!#############!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!############!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!###########!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!#####!!####!##!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!##!######!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!###!#!##!!#######!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!##!!!#####!#####!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!##!!!!!!###########!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!##!!!#!############!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!###!!#!############!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!####!!!!!############!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!###!!!!!!!!###########!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!##!!!!!!!!!!#######!###!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!####!!!!!!!!!!####!!#!###!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!###!!!!!!!!!!!!!##!!!######!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!##!!!!!!!!!!!!!!###########!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!##!!!!!!!!!!!!!!############!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!##!!!!!!!!!!!!!#############!!!!!!!!!!!!!!!!!!!!!!$!","!!!!!!!!!!!!!!!!!!!!!!!!!!!##############!!!!!!!!!!!!!!!!!!!!!$!","!!!!!!!!!!!!%%!!##!!!!!!!!##!#!!#########!!!!!!!!!!!!!!!!!!!!$$!","!!!!!!!!!!!%%%%!##!!!!!!!!##!!!!########!!!!!!!!!!!!!!!!!!!!!$!!","!!!!!!!!!!%%%%%!!!!!!!#!!!##!!!!#######!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!%%%%%%%%!!!!!!#####!!!!!!######!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!%%%%%%%%%%!!!!!###!!!!!!!!####!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!%%%%%%%%%%%%%!###!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!$!!!!!!!","!!!!!!&%%%%%%%%%%%%%###!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!%&%%%%%%%%%%%%!#!!!!!!!!!!!!!!!!'!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!%%%%%%'''''%%%%!!!!!!!!!!!!!!!!!!!!!!'!!!!!!!!!!!!!!!!!!!!!!!","!!!%%%%%''''''''!!!!!!!!!!!!!!!!!!!!!!!!'!!!!!!!!!!!!!!!!!!!!!!!","!!%%%%%%''''''''!!!!!!!!!!!!!!!!!!!!!''!'!!!!!!!!!!!!!!!!!!!!!!!","!%%%%%%%''''''''!!!!!!!!!!!!!!!!!!!!!''!!!!!!!!!!!!!!!!!!!!!!!!!","%%%%%%%''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","%%%%%%%'''''''''!!!!!!!!!!!!!!!!!!!!'!!!!!!!''!!!!!!!!!!!!!!!!!!","%%%%%%''''''''''!'!!!!!!!!!!!!!!!!!!'!!!!!!''''!!!!!!!!!!!!!!!!!","%%%%%%''''''''''!!!!!!!!!!!!!!!!!!!!!!!!!!''''!!!!!!!!!!!!!!!!!!","'''''''''''''''''!!!!!!!!!!!!!!!!!'''!!!!!'''''!!!!!!!!!!!!!!!!!","'''''''''''''''''''!!!''''''!!!!!''''!!!!!'''''!!!!!!!!!!!!!!!!!","'''''''''''''''''''!!'''''''''''''''!!!!!!''''!!!!!!!!!!!!!!!!!!","'''''''''''''''!!!!!'''''''''''''''!!!!!!!''''!!!!!!!!!!!!!!!!!!","'''''''''''''''!!!!!''!!!!!!!!'''!!!!!!!!!''!'''!!!!!!!!!!!!!!!!"],"keys":["CHN","","PHL","PLW","MYS","BRN","IDN"],"data":{"BRN":{"AREA":527,"FIPS":"BX","ISO2":"BN","ISO3":"BRN","LAT":4.468,"LON":114.591,"NAME":"Brunei Darussalam","POP2005":373831,"REGION":142,"SUBREGION":35,"UN":96},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"MYS":{"AREA":32855,"FIPS":"MY","ISO2":"MY","ISO3":"MYS","LAT":4.201,"LON":102.195,"NAME":"Malaysia","POP2005":25652985,"REGION":142,"SUBREGION":35,"UN":458},"PHL":{"AREA":29817,"FIPS":"RP","ISO2":"PH","ISO3":"PHL","LAT":11.118,"LON":122.466,"NAME":"Philippines","POP2005":84566163,"REGION":142,"SUBREGION":35,"UN":608},"PLW":{"AREA":0,"FIPS":"PS","ISO2":"PW","ISO3":"PLW","LAT":7.501,"LON":134.57,"NAME":"Palau","POP2005":20127,"REGION":9,"SUBREGION":57,"UN":585}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_13_9_4.json b/test/fixtures/grids/plain_2_13_9_4.json new file mode 100644 index 0000000..2a4208c --- /dev/null +++ b/test/fixtures/grids/plain_2_13_9_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!##############"," ## !!!!!!!!!!!!!################"," #### !!!!!!!!!!!!!#################"," ## !!!!!!!!!!!!!##################"," #### !!!!!!!!!!!####################"," #### ####!!!!!!!!!#####################"," ###### ########!!!!!!!!####################"," # ####### #######!!!!!!!!!!###################"," ######### #########!!!!!!!!!$$##################"," ###################!!!!!!$$$$$##################"," ###############!!!!!!$$$$$$$#################"," ### #########$!!!!$$$$$$$$#################"," ## ########!##$$$$$$$$$####$###########"," ###########$$$$$$$$################"," #########$$$$$$$$$$$###############"," #########$$$$$$$$$$$###############"," ##############$$$$$$$$$$#########%%####"," ###############$$$$$$$$$$#########%%####"," ##################$$$$$$$$$#########%#####"," ##################$$$$$$$$$$########%%%%%%%"," ##################$$$$$$$$$$#######%%%%%%%%"," ##################$$$$$$$$$$#######%%%%%%%%%"," #################$$$$$$$$$%%#####%%%%%%%%%%"," ###############$$$$$$###%%###%%%%%%%%%%%%"," #################$######%####%%%%%%%%%%%%"," #########################%%#%%%%%%%%%%%%%"," ###############$$$######%%%%%%%%%%%%%%%#"," ##############$$$$#####%%%%%%%%%%%%%#%##"," ######################%%%%%%%%%%%%%#####"," ####################%%%%%%%%%%%#%%#####"," #######################%%%%%%#########"," ######################%%%%%%#########"," #####################%%%%%%##########"," #####################%#%%%%##########"," #######################%%%###########"," ########################%%###########"," # ######################%%###########"," #####################%%%###########"," ####################%##############"," ####################%%##############"," #####################################"," #####################################"," #####################################"," #####################%%%##############"," #####################%%%##############"," ######################%#################"," #####################%%#################"," ######################%##################"," ######################%###################"," #####################%%###################"," &##################%##%####################"," ######################%#########%##########"," ###########################################"," ####&&#####################################"," ###&&&&#########%###########################"," #####&&&&######%##%###########################"," &#####&&&&&##%#%%%###################%##########"," ######&&&&&#####################################"," #####&&&&&&######################################"," #####&&&&&&&######################################"," ########&&&&&######################################"," ##########&&&&#######################################"," ''' ###############&&&#######################################"," (''##################&#&######################################"],"keys":["CHN","PRK","","KOR","JPN","TWN","HKG","MAC"],"data":{"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"HKG":{"AREA":0,"FIPS":"HK","ISO2":"HK","ISO3":"HKG","LAT":22.423,"LON":114.129,"NAME":"Hong Kong","POP2005":7057418,"REGION":142,"SUBREGION":30,"UN":344},"JPN":{"AREA":36450,"FIPS":"JA","ISO2":"JP","ISO3":"JPN","LAT":36.491,"LON":139.068,"NAME":"Japan","POP2005":12789674,"REGION":142,"SUBREGION":30,"UN":392},"KOR":{"AREA":9873,"FIPS":"KS","ISO2":"KR","ISO3":"KOR","LAT":36.504,"LON":128.103,"NAME":"Korea, Republic of","POP2005":47869837,"REGION":142,"SUBREGION":30,"UN":410},"MAC":{"AREA":0,"FIPS":"MC","ISO2":"MO","ISO3":"MAC","LAT":22.2,"LON":113.545,"NAME":"Macau","POP2005":47309,"REGION":142,"SUBREGION":30,"UN":446},"PRK":{"AREA":12041,"FIPS":"KN","ISO2":"KP","ISO3":"PRK","LAT":39.778,"LON":126.451,"NAME":"Korea, Democratic People's Republic of","POP2005":23615611,"REGION":142,"SUBREGION":30,"UN":408},"TWN":{"AREA":0,"FIPS":"TW","ISO2":"TW","ISO3":"TWN","LAT":23.754,"LON":120.946,"NAME":"Taiwan","POP2005":0,"REGION":0,"SUBREGION":0,"UN":158}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_11_4.json b/test/fixtures/grids/plain_2_14_11_4.json new file mode 100644 index 0000000..ed3d521 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_11_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !"," !!"," !!"," !!!"," !!!!"," !!!!"," !!!!!"," !!!!!!!"," !!!!!!!"," !!!!!!!!"," !!!!!!!!!"," ! !!!!!!!!"," !! !!!!!"," !!!!! ! ! !!!!!! !!!!!"," !!!!!!!!!! !!!!!!! !!! ! !!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "],"keys":["RUS",""],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_12_4.json b/test/fixtures/grids/plain_2_14_12_4.json new file mode 100644 index 0000000..a5b3cf6 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_12_4.json @@ -0,0 +1 @@ +{"grid":[" !! !!!! "," ! !!!!!!! "," !!!!!!! "," !!!!!!!! "," !!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!! "," !! "," "," "," !!!! "," !!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! !!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," ! !!!!!!!!!!!!!!!! !!!!!!!!!!!!! "," ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_13_4.json b/test/fixtures/grids/plain_2_14_13_4.json new file mode 100644 index 0000000..c1eaf9b --- /dev/null +++ b/test/fixtures/grids/plain_2_14_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," "," "," "," ! "," !!! "," !!! "," "," "," "," "," !! !! "," !!!! !!!! !! "," !!!!!! !!!!! "," !!!!!!!! !!!!! "," ! !!!!!!!! !!!!!! !!! "," !! !!!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!!!!! "," !!! !!!!!!!!!!!!!!!!!!!!!!!!! ! "," !!! !!!!!!!!!!!!!!!!!!!!!!!!! !! "," !! !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!! "," !!!!!!!!!!!!!!!!!! !!!!!!!!!! "," !!!!! !! !! !!!!!!!! "," !!!! !!!! "," !! "," "," "," "," ! !!!! "," !! !!!! "," !!! !!!! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_14_4.json b/test/fixtures/grids/plain_2_14_14_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_4_4.json b/test/fixtures/grids/plain_2_14_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_6_4.json b/test/fixtures/grids/plain_2_14_6_4.json new file mode 100644 index 0000000..afd3ed3 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!!","! ! !!!!!!!!!!!!!!!!!!","!!!!! !! !!!!!!!!!!!!!!!!!!!","!!!! !!!!!!!!!!!!!!!!!!!!","!!!! !! !!!!!!!!!!!!!!!!!!!!","!!!! !!!! !!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["AUS",""],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_7_4.json b/test/fixtures/grids/plain_2_14_7_4.json new file mode 100644 index 0000000..2c785f7 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_7_4.json @@ -0,0 +1 @@ +{"grid":[" "," !! "," !!! "," !! # # ","!!!!!!!!!! # ## "," !!!!!!!!!!! #### "," !!!!!!!!!!!!!! ### # ## "," !!!!!!!!!!!!!!!!# #### # "," !!!!!!!!!!!!!!!!#### ####### ","!!!!!!!!!!!!!!!!!!####### ###### # ","!!!!!!!!!!!!!!!!!!########## ## ","!!!!!!!!!!!!!!!!!!########### ######## ","!!!!!!!!!!!!!!!!!!############ # ###### # "," !!!!!!!!!!!!!!!!############## ## ##### "," !!!!!!!!!!!!!############# # ## ##### ## "," !!!!!!!!!!!############### ############### ### "," !!!!!!!!!!############################# ## "," !!!!!!!!!################### ####### ### "," !!!!!!!!#################### ###$$ "," !!!!!!!!################### ###$$$ "," !!!!!!!!################# $$ $$$"," !!!!!!!!!!################## $ $ $"," !!!!!!!!!!!#################### $$$"," !!!!!!!!!!!####### ####### $$$"," ! !!!!####### ####### # $"," !!!###### ######### # ### "," !##### ######## ### ## "," ############ "," % ############ "," % ########## "," %% #### ## "," % %%% "," %% %%% #### "," %%% %%%% ## ","%%%%%% %%%%% ","%%%%%% %%%%%% ","%%%%% %%%%%%% ","%%%%% %%%%%%% ","%%%% %%%%%%% ","%%%%%% %%%%%%% ","%%%%%% %%%%%%% %% ","%%% % %%%%%%%%%% ","%%% %%%%%%%%%%%% ","%%% %%%%%%%%%%%% ","%%%%%% %%%%%%%%%%%% ","%%%%%%% %%%%%%%%%%%% ","%%%%%%%% %%%%%%%%%%%%% ","%%%%%%%%% %%% %%%%%%%%%%%%%% ","%%%%%%%%%%%%% %%%%%%%%%%%%%%%% ","%%%%%%%%%%%%% %%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % "],"keys":["","IDN","PNG","SLB","AUS"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"PNG":{"AREA":45286,"FIPS":"PP","ISO2":"PG","ISO3":"PNG","LAT":-5.949,"LON":143.459,"NAME":"Papua New Guinea","POP2005":6069715,"REGION":9,"SUBREGION":54,"UN":598},"SLB":{"AREA":2799,"FIPS":"BP","ISO2":"SB","ISO3":"SLB","LAT":-9.611,"LON":160.109,"NAME":"Solomon Islands","POP2005":472419,"REGION":9,"SUBREGION":54,"UN":90}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_8_4.json b/test/fixtures/grids/plain_2_14_8_4.json new file mode 100644 index 0000000..5bf80c0 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_8_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," ! "," ! "," ! "," "," "," ! "," "," ! "," "," ! "," ! "," ! "," ! "," "," "," "," ! "," !! "," "," !! "," ## "," ## "," "," "," "," "," "," "," "," "," "," "," $$ "," "," "," $ "," "," "," $ $ $$ "," $ "," $ $ "," "," "," "," $ "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","MNP","GUM","FSM"],"data":{"FSM":{"AREA":70,"FIPS":"FM","ISO2":"FM","ISO3":"FSM","LAT":6.883,"LON":158.235,"NAME":"Micronesia, Federated States of","POP2005":110058,"REGION":9,"SUBREGION":57,"UN":583},"GUM":{"AREA":55,"FIPS":"GQ","ISO2":"GU","ISO3":"GUM","LAT":13.385,"LON":144.707,"NAME":"Guam","POP2005":16857,"REGION":9,"SUBREGION":57,"UN":316},"MNP":{"AREA":0,"FIPS":"CQ","ISO2":"MP","ISO3":"MNP","LAT":15.005,"LON":145.623,"NAME":"Northern Mariana Islands","POP2005":80258,"REGION":9,"SUBREGION":57,"UN":580}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_14_9_4.json b/test/fixtures/grids/plain_2_14_9_4.json new file mode 100644 index 0000000..d5540e0 --- /dev/null +++ b/test/fixtures/grids/plain_2_14_9_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!! "," !!!!!! "," !!!!!! "," !!!!!!! "," !!!!!!! "," !!!!!!! "," !!!!!!! "," !!!!!!! "," !!!!!!! "," ! !!!!!!! "," !! !!!!!! "," !!!!!!!!! "," !! !!!!!!!! "," !!! !!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!! ","! !!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!! !!! ","!!!!!!!!!!!!! ","!!!!!!! ! ","!!!!!! ! ","!!!! ! ","!!! "," ! "," ! "," "," "," "," ! "," "," "," "," ! "," "," "," "," "," "," "," "," "," ! "," ! "," ! ! "," ! "," ! "," "," "," "," ! "," "," !! "," ! "," "," "," "," "," "," "," "],"keys":["","JPN"],"data":{"JPN":{"AREA":36450,"FIPS":"JA","ISO2":"JP","ISO3":"JPN","LAT":36.491,"LON":139.068,"NAME":"Japan","POP2005":12789674,"REGION":142,"SUBREGION":30,"UN":392}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_10_4.json b/test/fixtures/grids/plain_2_15_10_4.json new file mode 100644 index 0000000..bd941c8 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####!#!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!#!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!#!!##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!###!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["RUS","","USA"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_11_4.json b/test/fixtures/grids/plain_2_15_11_4.json new file mode 100644 index 0000000..4475bbc --- /dev/null +++ b/test/fixtures/grids/plain_2_15_11_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," !"," !!"," !! !!!"," !!!!"," !!!!"," !!!!"," !!!"," !!!"," !!!"," !!!"," !!"," !"," !"," !"," !"," ! !"," ! !!!!!! !!"," !! !!!!!!!!!!!"," !! !!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!","! !!! !!!!!!!!!!!!!!!!!","!!!!!!! ! ! !!!!!!!!!!!!!!!!!!","!!!!!! !!!! !!!!!!!!!!!!!!!!!!!","!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!","!!!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!","!!!!!!! !!!! !!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!! ! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!! !! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!! ! ! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["RUS",""],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_13_4.json b/test/fixtures/grids/plain_2_15_13_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_4_4.json b/test/fixtures/grids/plain_2_15_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_5_4.json b/test/fixtures/grids/plain_2_15_5_4.json new file mode 100644 index 0000000..838e163 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_5_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!! !! "," !!!!!!!!! "," !!!!!!!! "," !!!!!!!!! "," !!!!!!!! "," !!!!!!!!!! "," !!!!!!!!!! "," !!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!! "," !!!!!!! "," !!!!!!! "," !!! "," !!! "," "," ! "," "," ! "," "," "," "," "," "," "," ! "," "," "," !! "," !! "," !! "," "," "," "," "," "," "," !! "," !! "," "," "," "," "," "," "," "," "," ## "," ## "," "," "," "," "," "],"keys":["","NZL","AUS"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_6_4.json b/test/fixtures/grids/plain_2_15_6_4.json new file mode 100644 index 0000000..3acb625 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!! "," !!!! "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," # "," "," "," "," "," "," "," "," $ "," "," "," "," "," "," "," "," "," % "," %% "," %%% "," %%%% "," %%%%% "," %%%%% "," %%%% "," %%%%%% "," %%%%%% "," %%%%%% "," %%%%% "," %%%%% "," %%%%%% %%% "," %%%%%%%%%%% "," %%%%%%%%%%%% "," %%%%%%%%%%%% "," %%%%%%%%%%%% "," %%%%%%%%%%%%% "," %%%%%%%%%%%%% "," %%%%%%%%%% "," %%%%%%%%% "," %%%%%%% "," %%%%% "," %%% % %%%%% "," %%%% % %%%%% "],"keys":["","NCL","NFK","AUS","NZL"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"NCL":{"AREA":1828,"FIPS":"NC","ISO2":"NC","ISO3":"NCL","LAT":-21.359,"LON":165.447,"NAME":"New Caledonia","POP2005":234185,"REGION":9,"SUBREGION":54,"UN":540},"NFK":{"AREA":0,"FIPS":"NF","ISO2":"NF","ISO3":"NFK","LAT":-29.037,"LON":167.953,"NAME":"Norfolk Island","POP2005":0,"REGION":9,"SUBREGION":53,"UN":574},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_7_4.json b/test/fixtures/grids/plain_2_15_7_4.json new file mode 100644 index 0000000..01e7772 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_7_4.json @@ -0,0 +1 @@ +{"grid":[" "," ! # "," # "," ## ## "," # # "," # "," "," # "," "," "," "," "," $ "," "," "," %% "," & "," & & "," "," ","% ","% %% ","% %%% & ","% %%% %% % ","%%% %% %%% & ","%%% % %%%% "," %%%%%%%% "," %%%%%%%% "," %%% % % "," %%%% "," %%%% %% "," % % "," %% % "," %% % "," "," ' "," "," ( "," (((( "," ( "," ( "," ( "," ((( ( "," ((( (( "," (((((( "," (( ( "," (((( ''"," ((( ''''"," (( '' '''''"," '' ' ' ''"," (( ''''' ' "," (( ''''''' "," ''''''' "," (( '' '"," (( '' "," ) (( '' '"," ) ) (( ( "," ) "," ))) (( "," ))) ) "," )))) ) )) "," )))) ))) "," )))) )) "," ))))) )) "],"keys":["","NRU","KIR","PNG","SLB","TUV","FJI","VUT","NCL"],"data":{"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"NCL":{"AREA":1828,"FIPS":"NC","ISO2":"NC","ISO3":"NCL","LAT":-21.359,"LON":165.447,"NAME":"New Caledonia","POP2005":234185,"REGION":9,"SUBREGION":54,"UN":540},"NRU":{"AREA":2,"FIPS":"NR","ISO2":"NR","ISO3":"NRU","LAT":-0.522,"LON":166.93,"NAME":"Nauru","POP2005":10111,"REGION":9,"SUBREGION":57,"UN":520},"PNG":{"AREA":45286,"FIPS":"PP","ISO2":"PG","ISO3":"PNG","LAT":-5.949,"LON":143.459,"NAME":"Papua New Guinea","POP2005":6069715,"REGION":9,"SUBREGION":54,"UN":598},"SLB":{"AREA":2799,"FIPS":"BP","ISO2":"SB","ISO3":"SLB","LAT":-9.611,"LON":160.109,"NAME":"Solomon Islands","POP2005":472419,"REGION":9,"SUBREGION":54,"UN":90},"TUV":{"AREA":3,"FIPS":"TV","ISO2":"TV","ISO3":"TUV","LAT":-8.514,"LON":179.219,"NAME":"Tuvalu","POP2005":10441,"REGION":9,"SUBREGION":61,"UN":798},"VUT":{"AREA":1219,"FIPS":"NH","ISO2":"VU","ISO3":"VUT","LAT":-15.376,"LON":166.899,"NAME":"Vanuatu","POP2005":215366,"REGION":9,"SUBREGION":54,"UN":548}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_8_4.json b/test/fixtures/grids/plain_2_15_8_4.json new file mode 100644 index 0000000..c273620 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_8_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," ! "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," # "," "," "," "," "," "," "," "," # "," # "," # "," "," # "," "," ## "," "," # "," # "," "," # "," ## "," ## # "," $$ "," "," "," # "," $ "," "," "," "," "," "," % "," % "," "," "," %%% "," %% "," %% "," % "," % "," %% "],"keys":["","UMI","MHL","FSM","KIR"],"data":{"FSM":{"AREA":70,"FIPS":"FM","ISO2":"FM","ISO3":"FSM","LAT":6.883,"LON":158.235,"NAME":"Micronesia, Federated States of","POP2005":110058,"REGION":9,"SUBREGION":57,"UN":583},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"MHL":{"AREA":0,"FIPS":"RM","ISO2":"MH","ISO3":"MHL","LAT":7.595,"LON":168.963,"NAME":"Marshall Islands","POP2005":5672,"REGION":9,"SUBREGION":57,"UN":584},"UMI":{"AREA":0,"FIPS":"","ISO2":"UM","ISO3":"UMI","LAT":-0.385,"LON":-160.027,"NAME":"United States Minor Outlying Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":581}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_15_9_4.json b/test/fixtures/grids/plain_2_15_9_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_15_9_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_0_1.json b/test/fixtures/grids/plain_2_1_0_1.json new file mode 100644 index 0000000..f39bce6 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_0_1.json @@ -0,0 +1 @@ +{"grid":[" !!!####$$$%&& ''''''''''''''''' (( ) "," !!#####%%%%% ''''''''''''''''((((( "," ######*%%%% + '''''''','''''((( (-- "," ...#*#**%%% / '''',,000''((((---- "," ...*****%%1234 00000 0 ( -- 5 "," ...***66711444 000000000 5 8"," 999*666671 444 0000000000 : 55 88"," 9999;6661 444 <= 00000000000000 ::5 "," 999;;661 444 000000000000000 : "," 999;;>>1 44 000000000000000 "," 999?@@> 000000000000000 "," ???@@? 000000000000000 "," ????? 000000 00000000 "," ?? 00 000000 AA "," B 00000 AAA"," 00 AAA"," 00 AAA "," 00 AAA "," ? BB AA "," B A "," BB AA A"," A A "," C "," 0 "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","GAB","COD","UGA","TZA","SOM","IDN","PNG","KIR","ZMB","IOT","TLS","SLB","AGO","SYC","AUS","MOZ","COM","MYT","MDG","VUT","ZWE","MWI","FJI","NAM","NCL","BWA","REU","MUS","SWZ","ZAF","LSO","NZL","ATF","HMD"],"data":{"AGO":{"AREA":124670,"FIPS":"AO","ISO2":"AO","ISO3":"AGO","LAT":-12.296,"LON":17.544,"NAME":"Angola","POP2005":16095214,"REGION":2,"SUBREGION":17,"UN":24},"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COM":{"AREA":223,"FIPS":"CN","ISO2":"KM","ISO3":"COM","LAT":-11.758,"LON":43.337,"NAME":"Comoros","POP2005":797902,"REGION":2,"SUBREGION":14,"UN":174},"FJI":{"AREA":1827,"FIPS":"FJ","ISO2":"FJ","ISO3":"FJI","LAT":-17.819,"LON":177.974,"NAME":"Fiji","POP2005":828046,"REGION":9,"SUBREGION":54,"UN":242},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"HMD":{"AREA":0,"FIPS":"HM","ISO2":"HM","ISO3":"HMD","LAT":-53.111,"LON":73.507,"NAME":"Heard Island and McDonald Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":334},"IDN":{"AREA":181157,"FIPS":"ID","ISO2":"ID","ISO3":"IDN","LAT":-0.976,"LON":114.252,"NAME":"Indonesia","POP2005":226063044,"REGION":142,"SUBREGION":35,"UN":360},"IOT":{"AREA":0,"FIPS":"IO","ISO2":"IO","ISO3":"IOT","LAT":-7.335,"LON":72.416,"NAME":"British Indian Ocean Territory","POP2005":0,"REGION":0,"SUBREGION":0,"UN":86},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"LSO":{"AREA":3035,"FIPS":"LT","ISO2":"LS","ISO3":"LSO","LAT":-29.581,"LON":28.243,"NAME":"Lesotho","POP2005":1980831,"REGION":2,"SUBREGION":18,"UN":426},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MOZ":{"AREA":78409,"FIPS":"MZ","ISO2":"MZ","ISO3":"MOZ","LAT":-14.422,"LON":37.923,"NAME":"Mozambique","POP2005":20532675,"REGION":2,"SUBREGION":14,"UN":508},"MUS":{"AREA":203,"FIPS":"MP","ISO2":"MU","ISO3":"MUS","LAT":-20.255,"LON":57.583,"NAME":"Mauritius","POP2005":1241173,"REGION":2,"SUBREGION":14,"UN":480},"MWI":{"AREA":9408,"FIPS":"MI","ISO2":"MW","ISO3":"MWI","LAT":-13.4,"LON":33.808,"NAME":"Malawi","POP2005":13226091,"REGION":2,"SUBREGION":14,"UN":454},"MYT":{"AREA":0,"FIPS":"MF","ISO2":"YT","ISO3":"MYT","LAT":-12.777,"LON":45.155,"NAME":"Mayotte","POP2005":0,"REGION":2,"SUBREGION":14,"UN":175},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"NCL":{"AREA":1828,"FIPS":"NC","ISO2":"NC","ISO3":"NCL","LAT":-21.359,"LON":165.447,"NAME":"New Caledonia","POP2005":234185,"REGION":9,"SUBREGION":54,"UN":540},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554},"PNG":{"AREA":45286,"FIPS":"PP","ISO2":"PG","ISO3":"PNG","LAT":-5.949,"LON":143.459,"NAME":"Papua New Guinea","POP2005":6069715,"REGION":9,"SUBREGION":54,"UN":598},"REU":{"AREA":250,"FIPS":"RE","ISO2":"RE","ISO3":"REU","LAT":-21.122,"LON":55.538,"NAME":"Reunion","POP2005":785159,"REGION":2,"SUBREGION":14,"UN":638},"SLB":{"AREA":2799,"FIPS":"BP","ISO2":"SB","ISO3":"SLB","LAT":-9.611,"LON":160.109,"NAME":"Solomon Islands","POP2005":472419,"REGION":9,"SUBREGION":54,"UN":90},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"SWZ":{"AREA":1720,"FIPS":"WZ","ISO2":"SZ","ISO3":"SWZ","LAT":-26.562,"LON":31.497,"NAME":"Swaziland","POP2005":1124529,"REGION":2,"SUBREGION":18,"UN":748},"SYC":{"AREA":46,"FIPS":"SE","ISO2":"SC","ISO3":"SYC","LAT":-4.647,"LON":55.474,"NAME":"Seychelles","POP2005":85532,"REGION":2,"SUBREGION":14,"UN":690},"TLS":{"AREA":1487,"FIPS":"TT","ISO2":"TL","ISO3":"TLS","LAT":-8.822,"LON":125.878,"NAME":"Timor-Leste","POP2005":1067285,"REGION":142,"SUBREGION":35,"UN":626},"TZA":{"AREA":88359,"FIPS":"TZ","ISO2":"TZ","ISO3":"TZA","LAT":-6.27,"LON":34.823,"NAME":"United Republic of Tanzania","POP2005":38477873,"REGION":2,"SUBREGION":14,"UN":834},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"VUT":{"AREA":1219,"FIPS":"NH","ISO2":"VU","ISO3":"VUT","LAT":-15.376,"LON":166.899,"NAME":"Vanuatu","POP2005":215366,"REGION":9,"SUBREGION":54,"UN":548},"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710},"ZMB":{"AREA":74339,"FIPS":"ZA","ISO2":"ZM","ISO3":"ZMB","LAT":-14.614,"LON":26.32,"NAME":"Zambia","POP2005":11478317,"REGION":2,"SUBREGION":14,"UN":894},"ZWE":{"AREA":38685,"FIPS":"ZI","ISO2":"ZW","ISO3":"ZWE","LAT":-19,"LON":29.872,"NAME":"Zimbabwe","POP2005":13119679,"REGION":2,"SUBREGION":14,"UN":716}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_10_4.json b/test/fixtures/grids/plain_2_1_10_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_11_4.json b/test/fixtures/grids/plain_2_1_11_4.json new file mode 100644 index 0000000..3c621d0 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," # !!!!!!!!!!!!!!!!!"," # # !!!!!!!!!!!!!!!!!"," ## # !!!!!!!!!!!"," ## ###### !!!!!!!!!!!"," ## ####### ### !!!!!!!!!!"," # ### ####### ####### !!!!!! "," ### ######################### # !!!! "," ### ############################# !!! "," # ### ################################ !! "," #### #################################### "," # ####################################### "," ## ######################################## "," ## ######################################### "," ## ######################################## "," # ########################################## "," # ############################################ "," ### ############################################ "," ## ############################################ "," ## ############################################## "," ### ############################################### "," #### ################################################ "," ###### ################################################### "," ###### #################################################### "," ##### #################################################### ","################################################################","################################################################","##### ##########################################################"],"keys":["USA","CAN",""],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_12_4.json b/test/fixtures/grids/plain_2_1_12_4.json new file mode 100644 index 0000000..29d2667 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_12_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !!!!! ","!!!!!!!! ","!!!!!!!!! ","!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! !!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###### # ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###### ###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####### ###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######## ###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########## ###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############ ###","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################"],"keys":["","USA","CAN"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_13_4.json b/test/fixtures/grids/plain_2_1_13_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_1_1_1.json b/test/fixtures/grids/plain_2_1_1_1.json new file mode 100644 index 0000000..17c7565 --- /dev/null +++ b/test/fixtures/grids/plain_2_1_1_1.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," !!! "," !!!!!!! !!!! "," # !!!!!!!! ! !!! "," #### # !!!!!!!! !!! "," ####### # # !!!!!! !!!! "," ####### ! !!!!! "," ##### ## !!!!!! "," ###### ! !!!! "," ##### ! ! !!! "," ##### !! !!!!!!!! ! "," ## ## !!!! !!!!!!!! ! !!! "," !!!! !! !!!!!!!!!! !!!!! ! "," !!!! !!!!!!!!!!!!! !!!!!! "," # !!! !!!!!!!!!!!!!! !!! "," !!! !!!!!!!!!!!!!!!!!!!!!! !!! "," !!! !!!!!!!!!!!!!!!!!!!!!! !!!! "," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," $$$$ !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !"," $$$$!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," $$%$$!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $%%%%&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $%%%%&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $%%%%&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $%%%%&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $$%%%%&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $$$%%%&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $$$%%%'&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," $$%%%%'&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," $$%%%%((!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! "," ))%%%**!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! "," ++%%,!!*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! ","-..++,,,,//!!!!!!!!!!!!00!!!!!!!!!!!!!!!!!!!!!!!!!! !! 1 ","-..++,,,22222!!!!!!!!!00000!!!!!!!!!!!!!!!!3!!!!!!!! !! 1 1","456++,,22222222!!!0!0!0000000!!!!!!7!!!!!!!33!!!!!!! !! ","44889::22222222!!!0000000000000777777777777333!!!!!! ! ","4488;;<<=>2222!!!!00??000000000377777777777333!!!!! !! ","4499@A<<<==22!!!!00?????0000033337777777733333!!!BB!! ","CC 999D<!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111113333","6?!!!!!!::!!!9!!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","GAB","COD","UGA","KEN","SOM","RWA","TZA","COG","BDI","SYC","AGO","ZMB","IOT","MOZ","COM","MDG","MWI","MYT","ZWE","NAM","BWA","MUS","REU","ZAF","SWZ","LSO","ATF","HMD","BVT"],"data":{"AGO":{"AREA":124670,"FIPS":"AO","ISO2":"AO","ISO3":"AGO","LAT":-12.296,"LON":17.544,"NAME":"Angola","POP2005":16095214,"REGION":2,"SUBREGION":17,"UN":24},"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"BDI":{"AREA":2568,"FIPS":"BY","ISO2":"BI","ISO3":"BDI","LAT":-3.356,"LON":29.887,"NAME":"Burundi","POP2005":7858791,"REGION":2,"SUBREGION":14,"UN":108},"BVT":{"AREA":0,"FIPS":"BV","ISO2":"BV","ISO3":"BVT","LAT":-54.422,"LON":3.412,"NAME":"Bouvet Island","POP2005":0,"REGION":0,"SUBREGION":0,"UN":74},"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COG":{"AREA":34150,"FIPS":"CF","ISO2":"CG","ISO3":"COG","LAT":-0.055,"LON":15.986,"NAME":"Congo","POP2005":3609851,"REGION":2,"SUBREGION":17,"UN":178},"COM":{"AREA":223,"FIPS":"CN","ISO2":"KM","ISO3":"COM","LAT":-11.758,"LON":43.337,"NAME":"Comoros","POP2005":797902,"REGION":2,"SUBREGION":14,"UN":174},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"HMD":{"AREA":0,"FIPS":"HM","ISO2":"HM","ISO3":"HMD","LAT":-53.111,"LON":73.507,"NAME":"Heard Island and McDonald Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":334},"IOT":{"AREA":0,"FIPS":"IO","ISO2":"IO","ISO3":"IOT","LAT":-7.335,"LON":72.416,"NAME":"British Indian Ocean Territory","POP2005":0,"REGION":0,"SUBREGION":0,"UN":86},"KEN":{"AREA":56914,"FIPS":"KE","ISO2":"KE","ISO3":"KEN","LAT":0.53,"LON":37.858,"NAME":"Kenya","POP2005":35598952,"REGION":2,"SUBREGION":14,"UN":404},"LSO":{"AREA":3035,"FIPS":"LT","ISO2":"LS","ISO3":"LSO","LAT":-29.581,"LON":28.243,"NAME":"Lesotho","POP2005":1980831,"REGION":2,"SUBREGION":18,"UN":426},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MOZ":{"AREA":78409,"FIPS":"MZ","ISO2":"MZ","ISO3":"MOZ","LAT":-14.422,"LON":37.923,"NAME":"Mozambique","POP2005":20532675,"REGION":2,"SUBREGION":14,"UN":508},"MUS":{"AREA":203,"FIPS":"MP","ISO2":"MU","ISO3":"MUS","LAT":-20.255,"LON":57.583,"NAME":"Mauritius","POP2005":1241173,"REGION":2,"SUBREGION":14,"UN":480},"MWI":{"AREA":9408,"FIPS":"MI","ISO2":"MW","ISO3":"MWI","LAT":-13.4,"LON":33.808,"NAME":"Malawi","POP2005":13226091,"REGION":2,"SUBREGION":14,"UN":454},"MYT":{"AREA":0,"FIPS":"MF","ISO2":"YT","ISO3":"MYT","LAT":-12.777,"LON":45.155,"NAME":"Mayotte","POP2005":0,"REGION":2,"SUBREGION":14,"UN":175},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"REU":{"AREA":250,"FIPS":"RE","ISO2":"RE","ISO3":"REU","LAT":-21.122,"LON":55.538,"NAME":"Reunion","POP2005":785159,"REGION":2,"SUBREGION":14,"UN":638},"RWA":{"AREA":2467,"FIPS":"RW","ISO2":"RW","ISO3":"RWA","LAT":-1.998,"LON":29.917,"NAME":"Rwanda","POP2005":9233793,"REGION":2,"SUBREGION":14,"UN":646},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"SWZ":{"AREA":1720,"FIPS":"WZ","ISO2":"SZ","ISO3":"SWZ","LAT":-26.562,"LON":31.497,"NAME":"Swaziland","POP2005":1124529,"REGION":2,"SUBREGION":18,"UN":748},"SYC":{"AREA":46,"FIPS":"SE","ISO2":"SC","ISO3":"SYC","LAT":-4.647,"LON":55.474,"NAME":"Seychelles","POP2005":85532,"REGION":2,"SUBREGION":14,"UN":690},"TZA":{"AREA":88359,"FIPS":"TZ","ISO2":"TZ","ISO3":"TZA","LAT":-6.27,"LON":34.823,"NAME":"United Republic of Tanzania","POP2005":38477873,"REGION":2,"SUBREGION":14,"UN":834},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710},"ZMB":{"AREA":74339,"FIPS":"ZA","ISO2":"ZM","ISO3":"ZMB","LAT":-14.614,"LON":26.32,"NAME":"Zambia","POP2005":11478317,"REGION":2,"SUBREGION":14,"UN":894},"ZWE":{"AREA":38685,"FIPS":"ZI","ISO2":"ZW","ISO3":"ZWE","LAT":-19,"LON":29.872,"NAME":"Zimbabwe","POP2005":13119679,"REGION":2,"SUBREGION":14,"UN":716}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_2_2.json b/test/fixtures/grids/plain_2_2_2_2.json new file mode 100644 index 0000000..ece5400 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_2_2.json @@ -0,0 +1 @@ +{"grid":[" !!########$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!########$$$%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!####### $$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!#######$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!#######$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!#######$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!######$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!##### $$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!##### $$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!######&$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!######&$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!####### ''''%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!####### ''((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!))###### ((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))######(((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))#### *****%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," +)))## %%%***%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%"," +++++,,,,%%%**--%%%%%%%%%%%%%%%%%%%%%%%%%%%%.%%%%%%%%%%%%%%","/ 00+++++,,,,,,,*----%%%%%%%%%%%%%%%%%%%%%%%.....%%%%%%%%%%%%%%","// 000++++,,,,,,,-----%%%%%%%%%%%%%%%%%%%%%%%..........%%%%%%%%%","//000+++++,,,,,,111111111%%%%%%%%%%%%%%%%%%%...........%%%%%%%%%","/2000+++++,,,,,,1111111111%%%%%%%%%%%%%%%%%%............%%%%%%%%","33224+++++5,,,,,111111111111%%%%%%%...%%.%%%...............%%%%%","33324+++++556,,11111111111111%%%%%..........................%%%%","33333+++++5666611111111111111%%%%%............................77","3333888+9+:;66;<<11=111111111%%%%%%..........................>>7","333388889???;@@<<<<=1111111%%%%%%%%..........................>>>","333388899???;@@@<<<=11 111%%%%%%%%% ....AAA................>>>>>","333399999BBBC@@@@<<<<< 111%%%%%%%% ....AAAAA..............>>>>>>","33333999D9BBB@@@@<<<< %%%%%%% ...AAAAAAAA...........>>>>>>","EEE 99999BBF@@@GGH H I%%%%% .JJAAAAAAAA..AA.......>>>>>>","EEE 9 99999F@KKLHHHHHHHHHHHHHI%%%M JJAAJAAAAAAAAAANNNNN>>>>>>>","EEEE 99 99999KKLLHHHHHHHHHHHHHHOMMM JJJJJJJAAAAAAAANNN>>>>>>>>>","EEEE 99 999LLLLHHHHHHHHHHHHHHPPPM JJJJJJJAAAAAQQQQ>>>>>>>>>>>","EE 9999 LLLLHHHHHHHHHHHHHHPPP JJJJJJJAAAAQQQQQ>>>>>>>>>>"," RRRRSSS999 LLLLLHHHHHHHHHHHHHPPPPPPJPPJJJJJJAAQQQQQ>>>>>>>>>>","RRRRRSSS T LLLLLHHHHHHHUUUVVVPPPPPPPPPPJJJWWWWXXXXXX>>>>>>>>","RRRRRSSS LLLL YYYUUUUUVVVPPPPPPPPPPPJWWWWWXXXXXXZ>>>>>>>","RRRRRSSSS [UUUUVVVVPPPPPPPPPPPWWWWWXXXXZZZZ>>>>>>>","RRRRRSSSS]] ]]]] ^UUU_VVVVVPPPPPPPPPPWWWWWXXXXXZZZ>>>>>>>","RRRRRRSS]]]]] ]]]]``````^^_____VVVVPPPPPPPPPWWWXXXXXXXZZZZ>>>>>>","RRRRRRSS]]]]]]]]]]``````a_______VbbPPPPPPPPXXXXXXXXXXZZZZccc>>>>","RRRRRR]]]]]]]]]]]]``````___________ PPPPPPPXXXXXXXXXZZZZccccc>>d","RRRRRR]]]]]]]]]]]]``````____________PPPPPPPPXXXXXXXXZZZZZccccccZ","RRRRRR]]]]]]]]]]]]```````___________ePPfgPPXXXXXXXZZZZZZZZZZcccZ","RRRRRR]]]]]]]]]]]]``````` ___________ fffPPXXXXXXXXZZZZZZZZZZZZZ","RRRRRRR]hh]]]]]]]]````````__________ffffgg XXXXZZZZZZZZZZZZZ","RRRRRRhhhhh]]]]]]iiiiiiiiii__________fffggg ZZZZZZZZZZZZZZZZ","jjRRRhhhhhhhk]]]]iiiiiiiiii_____________ggg ZZZZZZZZZZZZZZZ","jjjhhhhhhhhhkkk]]iiiiiiiiii ____________gg ZZZZZZZZZZZ ","jjjhhhhhhhhhkkkkkiiiiiiiiiii _____llllgggg ZZZZZZZZZZ ","jjhhhhhhhhhkkkkkkiiiiiiiiiii _llllllllgg ZZZZZZZZZ ","hhhhhhhhhhhkkkkkiiiiiiiiiiimm llllllll ZZZZZZZ ","nhhhhhhhhhkkkkkiiiiiiiiiiioooolllllll ZZZZZ ","nnpppppppppkkkkiiiiiiiiiiioooollll ll ZZZZZ ","nnpppppppppkkkkiiiiiiiiiiiooooq qqqqll ZZZZ ","nrppppppppkkkkssiiiiiiiiioooooqqqqqqq ZZZZt ","uuppppppppkkksssiiiiiiiiioooooqqqqqqq ZZZt ","uupppppppvsssssssiiiiiiiioooooooqqqq ZZttt ","uupppppppvssssssssiiiiiiioooooooqqqq w ttt "," ppppvvvsssssssssiiiiixiyoyyqqqqq "," zzvvvssss{{{{{{{xxxxyyyyqqqqq "," |zz}}vs{{{{{{{{{xxxxyyyyqqqq w "," | }}}}}~{{{{{{{{{xxxxyyyyqqq w "],"keys":["","NOR","SWE","FIN","RUS","ALA","EST","LVA","DNK","LTU","DEU","POL","BLR","KAZ","GBR","NLD","UKR","BEL","FRA","LUX","CZE","SVK","MNG","CHE","ITA","AUT","HUN","ROU","MDA","CHN","SVN","SRB","UZB","HRV","BIH","SMR","ESP","MNE","BGR","TUR","GEO","TKM","MKD","GRC","AZE","KGZ","ARM","IRN","TJK","DZA","TUN","MLT","SYR","IRQ","AFG","PAK","CYP","IND","LBN","LBY","PSE","SAU","EGY","JOR","KWT","NPL","BTN","QAT","ARE","OMN","NER","SDN","MLI","TCD","YEM","ERI","BFA","ETH","NGA","SOM","BEN","CAF","LKA","TGO","CMR","MDV","UGA","KEN","GNQ","COD","STP","GAB","COG"],"data":{"AFG":{"AREA":65209,"FIPS":"AF","ISO2":"AF","ISO3":"AFG","LAT":33.677,"LON":65.216,"NAME":"Afghanistan","POP2005":25067407,"REGION":142,"SUBREGION":34,"UN":4},"ALA":{"AREA":0,"FIPS":"","ISO2":"AX","ISO3":"ALA","LAT":60.198,"LON":19.952,"NAME":"land Islands","POP2005":0,"REGION":150,"SUBREGION":154,"UN":248},"ARE":{"AREA":8360,"FIPS":"AE","ISO2":"AE","ISO3":"ARE","LAT":23.549,"LON":54.163,"NAME":"Untied Arab Emirates","POP2005":4104291,"REGION":142,"SUBREGION":145,"UN":784},"ARM":{"AREA":2820,"FIPS":"AM","ISO2":"AM","ISO3":"ARM","LAT":40.534,"LON":44.563,"NAME":"Armenia","POP2005":3017661,"REGION":142,"SUBREGION":145,"UN":51},"AUT":{"AREA":8245,"FIPS":"AU","ISO2":"AT","ISO3":"AUT","LAT":47.683,"LON":14.912,"NAME":"Austria","POP2005":8291979,"REGION":150,"SUBREGION":155,"UN":40},"AZE":{"AREA":8260,"FIPS":"AJ","ISO2":"AZ","ISO3":"AZE","LAT":40.43,"LON":47.395,"NAME":"Azerbaijan","POP2005":8352021,"REGION":142,"SUBREGION":145,"UN":31},"BEL":{"AREA":0,"FIPS":"BE","ISO2":"BE","ISO3":"BEL","LAT":50.643,"LON":4.664,"NAME":"Belgium","POP2005":10398049,"REGION":150,"SUBREGION":155,"UN":56},"BEN":{"AREA":11062,"FIPS":"BN","ISO2":"BJ","ISO3":"BEN","LAT":10.541,"LON":2.469,"NAME":"Benin","POP2005":8490301,"REGION":2,"SUBREGION":11,"UN":204},"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"BGR":{"AREA":11063,"FIPS":"BU","ISO2":"BG","ISO3":"BGR","LAT":42.761,"LON":25.231,"NAME":"Bulgaria","POP2005":7744591,"REGION":150,"SUBREGION":151,"UN":100},"BIH":{"AREA":5120,"FIPS":"BK","ISO2":"BA","ISO3":"BIH","LAT":44.169,"LON":17.786,"NAME":"Bosnia and Herzegovina","POP2005":3915238,"REGION":150,"SUBREGION":39,"UN":70},"BLR":{"AREA":20748,"FIPS":"BO","ISO2":"BY","ISO3":"BLR","LAT":53.54,"LON":28.047,"NAME":"Belarus","POP2005":9795287,"REGION":150,"SUBREGION":151,"UN":112},"BTN":{"AREA":4700,"FIPS":"BT","ISO2":"BT","ISO3":"BTN","LAT":27.415,"LON":90.429,"NAME":"Bhutan","POP2005":637013,"REGION":142,"SUBREGION":34,"UN":64},"CAF":{"AREA":62298,"FIPS":"CT","ISO2":"CF","ISO3":"CAF","LAT":6.571,"LON":20.483,"NAME":"Central African Republic","POP2005":4191429,"REGION":2,"SUBREGION":17,"UN":140},"CHE":{"AREA":4000,"FIPS":"SZ","ISO2":"CH","ISO3":"CHE","LAT":46.861,"LON":7.908,"NAME":"Switzerland","POP2005":7424389,"REGION":150,"SUBREGION":155,"UN":756},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"CMR":{"AREA":46540,"FIPS":"CM","ISO2":"CM","ISO3":"CMR","LAT":5.133,"LON":12.277,"NAME":"Cameroon","POP2005":17795149,"REGION":2,"SUBREGION":17,"UN":120},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COG":{"AREA":34150,"FIPS":"CF","ISO2":"CG","ISO3":"COG","LAT":-0.055,"LON":15.986,"NAME":"Congo","POP2005":3609851,"REGION":2,"SUBREGION":17,"UN":178},"CYP":{"AREA":924,"FIPS":"CY","ISO2":"CY","ISO3":"CYP","LAT":35.043,"LON":33.219,"NAME":"Cyprus","POP2005":836321,"REGION":142,"SUBREGION":145,"UN":196},"CZE":{"AREA":7727,"FIPS":"EZ","ISO2":"CZ","ISO3":"CZE","LAT":49.743,"LON":15.338,"NAME":"Czech Republic","POP2005":10191762,"REGION":150,"SUBREGION":151,"UN":203},"DEU":{"AREA":34895,"FIPS":"GM","ISO2":"DE","ISO3":"DEU","LAT":51.11,"LON":9.851,"NAME":"Germany","POP2005":82652369,"REGION":150,"SUBREGION":155,"UN":276},"DNK":{"AREA":4243,"FIPS":"DA","ISO2":"DK","ISO3":"DNK","LAT":56.058,"LON":9.264,"NAME":"Denmark","POP2005":5416945,"REGION":150,"SUBREGION":154,"UN":208},"DZA":{"AREA":238174,"FIPS":"AG","ISO2":"DZ","ISO3":"DZA","LAT":28.163,"LON":2.632,"NAME":"Algeria","POP2005":32854159,"REGION":2,"SUBREGION":15,"UN":12},"EGY":{"AREA":99545,"FIPS":"EG","ISO2":"EG","ISO3":"EGY","LAT":26.494,"LON":29.872,"NAME":"Egypt","POP2005":72849793,"REGION":2,"SUBREGION":15,"UN":818},"ERI":{"AREA":10100,"FIPS":"ER","ISO2":"ER","ISO3":"ERI","LAT":16.045,"LON":38.219,"NAME":"Eritrea","POP2005":4526722,"REGION":2,"SUBREGION":14,"UN":232},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"EST":{"AREA":4239,"FIPS":"EN","ISO2":"EE","ISO3":"EST","LAT":58.674,"LON":25.793,"NAME":"Estonia","POP2005":1344312,"REGION":150,"SUBREGION":154,"UN":233},"ETH":{"AREA":100000,"FIPS":"ET","ISO2":"ET","ISO3":"ETH","LAT":8.626,"LON":39.616,"NAME":"Ethiopia","POP2005":78985857,"REGION":2,"SUBREGION":14,"UN":231},"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"GEO":{"AREA":6949,"FIPS":"GG","ISO2":"GE","ISO3":"GEO","LAT":42.176,"LON":43.518,"NAME":"Georgia","POP2005":4473409,"REGION":142,"SUBREGION":145,"UN":268},"GNQ":{"AREA":2805,"FIPS":"EK","ISO2":"GQ","ISO3":"GNQ","LAT":1.607,"LON":10.488,"NAME":"Equatorial Guinea","POP2005":484098,"REGION":2,"SUBREGION":17,"UN":226},"GRC":{"AREA":12890,"FIPS":"GR","ISO2":"GR","ISO3":"GRC","LAT":39.666,"LON":21.766,"NAME":"Greece","POP2005":11099737,"REGION":150,"SUBREGION":39,"UN":300},"HRV":{"AREA":5592,"FIPS":"HR","ISO2":"HR","ISO3":"HRV","LAT":45.723,"LON":16.693,"NAME":"Croatia","POP2005":455149,"REGION":150,"SUBREGION":39,"UN":191},"HUN":{"AREA":9210,"FIPS":"HU","ISO2":"HU","ISO3":"HUN","LAT":47.07,"LON":19.134,"NAME":"Hungary","POP2005":10086387,"REGION":150,"SUBREGION":151,"UN":348},"IND":{"AREA":297319,"FIPS":"IN","ISO2":"IN","ISO3":"IND","LAT":22.881,"LON":79.619,"NAME":"India","POP2005":1134403141,"REGION":142,"SUBREGION":34,"UN":356},"IRN":{"AREA":163620,"FIPS":"IR","ISO2":"IR","ISO3":"IRN","LAT":32.565,"LON":54.301,"NAME":"Iran (Islamic Republic of)","POP2005":69420607,"REGION":142,"SUBREGION":34,"UN":364},"IRQ":{"AREA":43737,"FIPS":"IZ","ISO2":"IQ","ISO3":"IRQ","LAT":33.048,"LON":43.772,"NAME":"Iraq","POP2005":27995984,"REGION":142,"SUBREGION":145,"UN":368},"ITA":{"AREA":29411,"FIPS":"IT","ISO2":"IT","ISO3":"ITA","LAT":44.931,"LON":10.44,"NAME":"Italy","POP2005":5864636,"REGION":150,"SUBREGION":39,"UN":380},"JOR":{"AREA":8824,"FIPS":"JO","ISO2":"JO","ISO3":"JOR","LAT":30.703,"LON":36.319,"NAME":"Jordan","POP2005":5544066,"REGION":142,"SUBREGION":145,"UN":400},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"KEN":{"AREA":56914,"FIPS":"KE","ISO2":"KE","ISO3":"KEN","LAT":0.53,"LON":37.858,"NAME":"Kenya","POP2005":35598952,"REGION":2,"SUBREGION":14,"UN":404},"KGZ":{"AREA":19180,"FIPS":"KG","ISO2":"KG","ISO3":"KGZ","LAT":41.465,"LON":74.555,"NAME":"Kyrgyzstan","POP2005":5203547,"REGION":142,"SUBREGION":143,"UN":417},"KWT":{"AREA":1782,"FIPS":"KU","ISO2":"KW","ISO3":"KWT","LAT":29.476,"LON":47.376,"NAME":"Kuwait","POP2005":2700,"REGION":142,"SUBREGION":145,"UN":414},"LBN":{"AREA":1023,"FIPS":"LE","ISO2":"LB","ISO3":"LBN","LAT":33.92,"LON":35.888,"NAME":"Lebanon","POP2005":401074,"REGION":142,"SUBREGION":145,"UN":422},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"LKA":{"AREA":6463,"FIPS":"CE","ISO2":"LK","ISO3":"LKA","LAT":7.612,"LON":80.704,"NAME":"Sri Lanka","POP2005":19120763,"REGION":142,"SUBREGION":34,"UN":144},"LTU":{"AREA":6268,"FIPS":"LH","ISO2":"LT","ISO3":"LTU","LAT":55.336,"LON":23.897,"NAME":"Lithuania","POP2005":3425077,"REGION":150,"SUBREGION":154,"UN":440},"LUX":{"AREA":0,"FIPS":"LU","ISO2":"LU","ISO3":"LUX","LAT":49.771,"LON":6.088,"NAME":"Luxembourg","POP2005":456613,"REGION":150,"SUBREGION":155,"UN":442},"LVA":{"AREA":6205,"FIPS":"LG","ISO2":"LV","ISO3":"LVA","LAT":56.858,"LON":25.641,"NAME":"Latvia","POP2005":2301793,"REGION":150,"SUBREGION":154,"UN":428},"MDA":{"AREA":3288,"FIPS":"MD","ISO2":"MD","ISO3":"MDA","LAT":47.193,"LON":28.599,"NAME":"Republic of Moldova","POP2005":3876661,"REGION":150,"SUBREGION":151,"UN":498},"MDV":{"AREA":30,"FIPS":"MV","ISO2":"MV","ISO3":"MDV","LAT":3.548,"LON":72.92,"NAME":"Maldives","POP2005":295297,"REGION":142,"SUBREGION":34,"UN":462},"MKD":{"AREA":2543,"FIPS":"MK","ISO2":"MK","ISO3":"MKD","LAT":41.6,"LON":21.698,"NAME":"The former Yugoslav Republic of Macedonia","POP2005":2033655,"REGION":150,"SUBREGION":39,"UN":807},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"MLT":{"AREA":32,"FIPS":"MT","ISO2":"MT","ISO3":"MLT","LAT":35.89,"LON":14.442,"NAME":"Malta","POP2005":402617,"REGION":150,"SUBREGION":39,"UN":470},"MNE":{"AREA":0,"FIPS":"MJ","ISO2":"ME","ISO3":"MNE","LAT":42.792,"LON":19.254,"NAME":"Montenegro","POP2005":607969,"REGION":150,"SUBREGION":39,"UN":499},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"NER":{"AREA":126670,"FIPS":"NG","ISO2":"NE","ISO3":"NER","LAT":17.426,"LON":9.398,"NAME":"Niger","POP2005":1326419,"REGION":2,"SUBREGION":11,"UN":562},"NGA":{"AREA":91077,"FIPS":"NI","ISO2":"NG","ISO3":"NGA","LAT":9.594,"LON":8.105,"NAME":"Nigeria","POP2005":141356083,"REGION":2,"SUBREGION":11,"UN":566},"NLD":{"AREA":3388,"FIPS":"NL","ISO2":"NL","ISO3":"NLD","LAT":52.077,"LON":5.389,"NAME":"Netherlands","POP2005":1632769,"REGION":150,"SUBREGION":155,"UN":528},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"NPL":{"AREA":14300,"FIPS":"NP","ISO2":"NP","ISO3":"NPL","LAT":28.253,"LON":83.939,"NAME":"Nepal","POP2005":27093656,"REGION":142,"SUBREGION":34,"UN":524},"OMN":{"AREA":30950,"FIPS":"MU","ISO2":"OM","ISO3":"OMN","LAT":21.656,"LON":57.407,"NAME":"Oman","POP2005":2507042,"REGION":142,"SUBREGION":145,"UN":512},"PAK":{"AREA":77088,"FIPS":"PK","ISO2":"PK","ISO3":"PAK","LAT":29.967,"LON":69.386,"NAME":"Pakistan","POP2005":158080591,"REGION":142,"SUBREGION":34,"UN":586},"POL":{"AREA":30629,"FIPS":"PL","ISO2":"PL","ISO3":"POL","LAT":52.125,"LON":19.401,"NAME":"Poland","POP2005":38195558,"REGION":150,"SUBREGION":151,"UN":616},"PSE":{"AREA":0,"FIPS":"","ISO2":"PS","ISO3":"PSE","LAT":32.037,"LON":35.278,"NAME":"Palestine","POP2005":3762005,"REGION":142,"SUBREGION":145,"UN":275},"QAT":{"AREA":1100,"FIPS":"QA","ISO2":"QA","ISO3":"QAT","LAT":25.316,"LON":51.191,"NAME":"Qatar","POP2005":796186,"REGION":142,"SUBREGION":145,"UN":634},"ROU":{"AREA":22987,"FIPS":"RO","ISO2":"RO","ISO3":"ROU","LAT":45.844,"LON":24.969,"NAME":"Romania","POP2005":21627557,"REGION":150,"SUBREGION":151,"UN":642},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"SMR":{"AREA":0,"FIPS":"SM","ISO2":"SM","ISO3":"SMR","LAT":43.942,"LON":12.46,"NAME":"San Marino","POP2005":30214,"REGION":150,"SUBREGION":39,"UN":674},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"SRB":{"AREA":0,"FIPS":"RB","ISO2":"RS","ISO3":"SRB","LAT":44.032,"LON":20.806,"NAME":"Serbia","POP2005":9863026,"REGION":150,"SUBREGION":39,"UN":688},"STP":{"AREA":96,"FIPS":"TP","ISO2":"ST","ISO3":"STP","LAT":0.201,"LON":6.629,"NAME":"Sao Tome and Principe","POP2005":152622,"REGION":2,"SUBREGION":17,"UN":678},"SVK":{"AREA":4808,"FIPS":"LO","ISO2":"SK","ISO3":"SVK","LAT":48.707,"LON":19.491,"NAME":"Slovakia","POP2005":5386995,"REGION":150,"SUBREGION":151,"UN":703},"SVN":{"AREA":2014,"FIPS":"SI","ISO2":"SI","ISO3":"SVN","LAT":46.124,"LON":14.827,"NAME":"Slovenia","POP2005":1999425,"REGION":150,"SUBREGION":39,"UN":705},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752},"SYR":{"AREA":18378,"FIPS":"SY","ISO2":"SY","ISO3":"SYR","LAT":35.013,"LON":38.506,"NAME":"Syrian Arab Republic","POP2005":18893881,"REGION":142,"SUBREGION":145,"UN":760},"TCD":{"AREA":125920,"FIPS":"CD","ISO2":"TD","ISO3":"TCD","LAT":15.361,"LON":18.665,"NAME":"Chad","POP2005":10145609,"REGION":2,"SUBREGION":17,"UN":148},"TGO":{"AREA":5439,"FIPS":"TO","ISO2":"TG","ISO3":"TGO","LAT":8.799,"LON":1.081,"NAME":"Togo","POP2005":6238572,"REGION":2,"SUBREGION":11,"UN":768},"TJK":{"AREA":13996,"FIPS":"TI","ISO2":"TJ","ISO3":"TJK","LAT":38.665,"LON":69.42,"NAME":"Tajikistan","POP2005":6550213,"REGION":142,"SUBREGION":143,"UN":762},"TKM":{"AREA":46993,"FIPS":"TX","ISO2":"TM","ISO3":"TKM","LAT":39.122,"LON":59.384,"NAME":"Turkmenistan","POP2005":4833266,"REGION":142,"SUBREGION":143,"UN":795},"TUN":{"AREA":15536,"FIPS":"TS","ISO2":"TN","ISO3":"TUN","LAT":35.383,"LON":9.596,"NAME":"Tunisia","POP2005":10104685,"REGION":2,"SUBREGION":15,"UN":788},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"UKR":{"AREA":57935,"FIPS":"UP","ISO2":"UA","ISO3":"UKR","LAT":49.016,"LON":31.388,"NAME":"Ukraine","POP2005":46917544,"REGION":150,"SUBREGION":151,"UN":804},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860},"YEM":{"AREA":52797,"FIPS":"YM","ISO2":"YE","ISO3":"YEM","LAT":15.807,"LON":48.355,"NAME":"Yemen","POP2005":21095679,"REGION":142,"SUBREGION":145,"UN":887}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_2_3.json b/test/fixtures/grids/plain_2_2_2_3.json new file mode 100644 index 0000000..a88d626 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_2_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!############# "," !!!!########## "," !!!!############ "," !!!!############ "," !!!!!########### "," !!!!!!######### "," !!!!!!######### "," !!!!!!######## "," !!!!!!####### "," !!!!!!###### "," !!!!!!!###### "," !!!!!!!####### "," !!!!######### "," !!!!!!######### "," !!!!!!######### "," !!!!!######### "," !!!!!######## "," !!!!######## "," !!!!######## "," !!!!!!##### "," !!!!!!#### "," !!!!!!#### $$$$$ "," !!!!!!!!## $$$$$$ "," !!!!!!!!!! $$$$ "," !!!!!!!!!! "," !!!!!!!!!!# "," !!!!!!!!!# "," !!!!!!!!## "," !!!!!!!### "," !!!!!!!!##### "," !!!!!!!! "," !!!!! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","CHL","ARG","FLK"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"FLK":{"AREA":1217,"FIPS":"FK","ISO2":"FK","ISO3":"FLK","LAT":-51.665,"LON":-58.694,"NAME":"Falkland Islands (Malvinas)","POP2005":2975,"REGION":19,"SUBREGION":5,"UN":238}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_3_2.json b/test/fixtures/grids/plain_2_2_3_2.json new file mode 100644 index 0000000..153d33a --- /dev/null +++ b/test/fixtures/grids/plain_2_2_3_2.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !! !!! "," !!!!! "," !! !!!!!! !! !"," !! !!!!!!!!! !! "," ## !!!!!!!!!!!!!!! !! "," ##### !!!!!!!!!!!!!! "," ####### # !!! !!!!!! "," ######### ## # !!!! !!!! "," ############# ! !! "," ############ !! "," ############ "," ######### ### "," ######### #### "," ######### "," ######### "," ######### "," ######### ! "," #### ### !"," ### !! !"," ## ## !!! "," # !!!!!!! "," !!!!!!! !!! "," !!!!!!! ! !"," !!!!!! !! !!!"," !!!!! ! !!!!"," # !!!! ! !!!!!"," # !!!! !!!!!!"," !!!! !!!!!!!"," !!!! !! !! !!!!!!!!"," !!!! !!!!!!!!!!!!!!!"," !!! !!!! !!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!"," $$$$ !!!!! !!!!!!!!!!!!!!!!!"," $$$$$$$ !!!! !!!!!!!!!!!!!!!!!"," $$$$$$$$$$ !!!! !!!!!!!!!!!!!!!!!"," $$$$$$$$$!!! !!!!! !!!!!!!!!!!!!!!!!"," $$$$$$$$%!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!"," $$$$&&$$$%!!!!!!! ! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!"," $$$&&&&&$%%!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $$&&&&&&%%%!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!"," $$&&&&&&%%%!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," $&&&&&&&&%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","RUS","SJM","NOR","FIN","SWE"],"data":{"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_3_3.json b/test/fixtures/grids/plain_2_2_3_3.json new file mode 100644 index 0000000..8ebf942 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_3_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!! ###$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!!"," !!!!!!!!!!! ####$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!! ######$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!! ############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!# #############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!## #############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!#################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!#############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!#########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!##########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!##########%#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!############%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!#############%%&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!#############&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!#############&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!#############&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!###########&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!############&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!##########&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!#########&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!#########&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!######&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!####&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!##'&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!''''&&&&&&&&&&&((&%%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!'''&&&&&&&&(((((((%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!'''&&&&&&&&(((((((%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!'''&&&&&&&&(((((((%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!''''&&&&&&&(((((((%%%%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!''''&&&&&&(((((((((((%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!'''''')))&))((((((((((%%%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!'''''')))))))(((((((((((%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!''''''))))))))((((((((((%%%%%%%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))((((((((%%%%%%%%%%!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))((((((%%%%%%%%%!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))((((((%%%%%%%%!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))(((((((%%%%%%%%!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!''''')))))))))))))(((((%%%%%%%%%%%!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))))))%%%%%%%%%%%!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))))%%%%%%%%%%%%!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'''))))))))))))))))))%%%%%%%%%%%!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!''')))))))))))))))))**%%%%%%%%%!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'''))))))))))))))))****%%%%%%%%!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'')))))))))))))))))*****%%%%%%%!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'''))))))))))))))))*******%%%%!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!'''))))))))))))))))*******%%%!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))*********%!!!!!!!!!!","!!!!!!!!!!!!!'!'!!!!!!!!!'''')))))))))))))))********%%!!!!!!!!!!","!!!!!!!!!!!!!'!!!!!!!!!!!'''')))))))))))))))********!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))))*******!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))))))!***!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))))))!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))))))))!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))))))))!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))))))))))!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))))))))!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!'''''))))))))))))))))))!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))))!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!'''')))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!''''))))))))))))))!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["ECU","","PER","COL","BRA","BOL","CHL","PRY","ARG","URY"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"COL":{"AREA":103870,"FIPS":"CO","ISO2":"CO","ISO3":"COL","LAT":3.9,"LON":-73.076,"NAME":"Colombia","POP2005":4494579,"REGION":19,"SUBREGION":5,"UN":170},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"PER":{"AREA":128000,"FIPS":"PE","ISO2":"PE","ISO3":"PER","LAT":-9.326,"LON":-75.552,"NAME":"Peru","POP2005":27274266,"REGION":19,"SUBREGION":5,"UN":604},"PRY":{"AREA":39730,"FIPS":"PA","ISO2":"PY","ISO3":"PRY","LAT":-23.236,"LON":-58.391,"NAME":"Paraguay","POP2005":5904342,"REGION":19,"SUBREGION":5,"UN":600},"URY":{"AREA":17502,"FIPS":"UY","ISO2":"UY","ISO3":"URY","LAT":-32.8,"LON":-56.012,"NAME":"Uruguay","POP2005":3325727,"REGION":19,"SUBREGION":5,"UN":858}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_5_3.json b/test/fixtures/grids/plain_2_2_5_3.json new file mode 100644 index 0000000..9185cb0 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_5_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!! !!!!!!!!!!#############"," !!!!!!!!!!!! !!!!!!!!!!!#############"," !!!!!!!!!!!! ! !!!!!!!!!!!!############"," !!!!!!! ! !! !!!!!!!!!!!!############"," !!!!!!! ! !!!!!!!!!!!!!!###########"," !!!!! ! !!!!!!!!!!!!!!!###########"," ! !!!! !!!!!!!!!!!!!!!!!###########"," !! !!!! !!!!!!!!!!!!!!!!###########"," ! !!! !!!!! !!!!!!!!!!!!!!!!###########","!!! !!! !!!!! !!!!!!!!!!!!!!!!!##########","!!!!!! !!!! !!! !!!!! !!!!!!!!!!!!!!!!!##########","!!!!!! ! !!!! !!!!!!! !!!!!!!!!!!!!!!!!!#########","!!!!!!!! !!!!! !!! !!! !!!!!!!!!!!!!!!!!!!########","!!!!!!!! !!! !!! ! !!!!!!!!!!!!!!!!!!!########","!!!!!!!! !! !!!!! !!!!!!!!!!!!!!!!!!!!!#######","!!!!!!!!!!!!! ! !!!!!! !!!!!!!!!!!!!!!!!!!!!#######","!!!!!!!!!!!!!! !! !!!!!!! !!!!!!!!!!!!!!!!!!!!!#######","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!######","!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!!#####","!!!!!!!!!!!!!!!!! ! !!! !!!!!!!!!!!!!!!!!!!!!!!!!##","!!!!!!!!!!!!!!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!#","!!!!!!!!!!!!! !! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!! !! !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!"," ! !! !!!!!!!!!!!!!!"," !!! !!!!! !!!!!!!!!!!!"," !!! !!!!!!!!!!!!"," !!!!!! !!!!!!!!!!!","$$$$ !!!!!! !!!!!!!!!!!","$$$$$$ !!! !! !!!!!!!!!!","$$$$$$$ $$$$ !!! !!!!!!% !!!!!!!!!!","$$$$$$$$ $$$$ !!! !!!!%% !!!!!!!!!!!","$$$$$$$$$$ $$$$ !!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$ $$$$$$ !!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$ $$$$$$$ !!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$ $$$$$$$$$$$$$ !!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$ $$$$$$$$$$$$$! !!!!!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$$ $$$$$$$$$$$$$$$$!! !!!!! !!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$$ $$$$$$$$$$$$$!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$ $$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["CAN","","GRL","USA","SPM"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304},"SPM":{"AREA":0,"FIPS":"SB","ISO2":"PM","ISO3":"SPM","LAT":47.042,"LON":-56.325,"NAME":"Saint Pierre and Miquelon","POP2005":6346,"REGION":19,"SUBREGION":21,"UN":666},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_5_4.json b/test/fixtures/grids/plain_2_2_5_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_6_3.json b/test/fixtures/grids/plain_2_2_6_3.json new file mode 100644 index 0000000..582765b --- /dev/null +++ b/test/fixtures/grids/plain_2_2_6_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!##################################"," !!!!!!###################################"," !!!!!####################################"," !!!######################################"," !!########################################"," !!########################################"," !!########################################"," ! !!!########################################","!!!!!! !!!!#######################################","!! !!!!!!#######################################","!! !!!!!!!!!#####################################"," ! !!!!!!!!######################################"," !! !!!!!!!########################################"," !! !!!!!!!!!!!#####################################","! !!!!!!!!!######################################"," !!!!!!!!######################################"," !!!!!!!!!#####################################"," !!!!!!!!!!####################################"," !!!!!!!!!!!####################################"," ! !! !!!! !!!!!!!!!!!!!###################################"," !!!!!!!!!!! ! !!!!!!!!!!!!!!########!#########################"," !!!!!!!!!!!!! !!!!!!!!!!!!!!!!##!!!!!!!#######################"," !!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!######################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##################"," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!##################","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!#################","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!#################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!################"," !!!!!!!!!!!!!!!!!!!!!!!#############"," !!!!!!!!!!!!!!!!!!!!!!#!###########"," !!!!!!!!!!!!!!!!!!!##############","! !!!!!!!!!!!!!!!!!!###############","!! !!!!!!!!!!!!!!!!!!##############","!!! !!!!!!!!!!!!!!!!###############","!!!!!! !!!!!!!!!!!!!!!!###############","!!!!!! !! !!!!!!!!!!!!!!!!###############"," !!!! !! !!!!!!!!!!!!!!!!####!#########"," !!! !! ! !!!!!!!!!!!!!!!!!!!!!#########"," !!! !! ! !!!!!!!!!!!!!!!!!!!!##!#########"," !! !! !!! !!!!!!!!!!!!!!!!!!############"," !!! ! !!!!!!!!!!!!!!!!#############"," ! !!!!!! !!!!!!!!!!!!!!!#############"," ! !!!!! !!!!!!!!!!!!!#############"," !!!!! !! !!!!!!!!!!!!!#############"," !!!!! !!! !!!!!!!!!!!#############"," !!!!!!!!!!! !!!!!!!!!!#############"," !!!!!!!!!!! !!!!!!!!!!#############"],"keys":["CAN","","GRL"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_6_4.json b/test/fixtures/grids/plain_2_2_6_4.json new file mode 100644 index 0000000..fccc91b --- /dev/null +++ b/test/fixtures/grids/plain_2_2_6_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," ","! "," "," "," "," ## "," # "," # "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","PYF","PCN"],"data":{"PCN":{"AREA":0,"FIPS":"PC","ISO2":"PN","ISO3":"PCN","LAT":-24.366,"LON":-128.316,"NAME":"Pitcairn Islands","POP2005":5,"REGION":9,"SUBREGION":61,"UN":612},"PYF":{"AREA":366,"FIPS":"FP","ISO2":"PF","ISO3":"PYF","LAT":-17.626,"LON":-149.462,"NAME":"French Polynesia","POP2005":255632,"REGION":9,"SUBREGION":61,"UN":258}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_7_3.json b/test/fixtures/grids/plain_2_2_7_3.json new file mode 100644 index 0000000..3e08217 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_7_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! #"," !!!!!!!!!!!! ###"," !!!!!!!!!!!!!!!!!!! ###"," !!!!!!!!!!!!!!!!!!!!! ! #####"," !!!!!!!!!!!!!!!!!!!!!!!!!!! ## #####"," !!!!!!!!!!!!!!!!!!!!!!!!!! ##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #########"," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #########"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #### ##### ###"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ############## ##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ################# #"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ############ ########","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ##################### ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! ########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #######################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ##########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ###########################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #############################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ################################","! !!!!!!!!!! !!!!!!!!!!!!!!!!! ################################","!!!! !!! !!!!!!!!!!!!!!!!!! ################################","!!!!!!! !!!!!!!!!!!!!!!!!!!!! #################################","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #################################","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ################################","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ###############################","!!!!!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!!!! #############################","!!!!!!!!!!!!!!!!!!!!!! ##############################","!!!!!!!!!!!!!!!!!!!!!!! ##############################"],"keys":["","CAN","GRL"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_7_4.json b/test/fixtures/grids/plain_2_2_7_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_7_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_8_4.json b/test/fixtures/grids/plain_2_2_8_4.json new file mode 100644 index 0000000..f4d21f2 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_8_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","MEX"],"data":{"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_2_9_4.json b/test/fixtures/grids/plain_2_2_9_4.json new file mode 100644 index 0000000..550f9c4 --- /dev/null +++ b/test/fixtures/grids/plain_2_2_9_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !! !! !!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!"," #######!!!!!!!"," #########!!!!"," ###########!!"," ############"," ###### ####"," ##### ##"," ##### ##"," ##### ##"," ##### #"," ######## #"," ###### "," # #######"," # ######"," # #####"," ## #####"," ########"," #######"," ######"," #####"," ###"," #"," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","USA","MEX"],"data":{"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_3_10_4.json b/test/fixtures/grids/plain_2_3_10_4.json new file mode 100644 index 0000000..c6b7024 --- /dev/null +++ b/test/fixtures/grids/plain_2_3_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["CAN","USA"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_3_11_4.json b/test/fixtures/grids/plain_2_3_11_4.json new file mode 100644 index 0000000..1ea0e51 --- /dev/null +++ b/test/fixtures/grids/plain_2_3_11_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !"," !!"," !"," !"," !!!"," !!"," !!!!!"," !!!!!!"," !!!!!!!"," !!!!!!!!"," !!!!!!!!"," !!!!!!!!!"," !!!!!!!!!!"," !!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!"," !!!!!!!!"," !!!!!!!!"," !!!!!!!!"," !!!!!!!"," !!!!!!!"," !!!!!!!"," !!!!!!"," ! "," "," "," "," "," "," "," "],"keys":["CAN",""],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_3_12_4.json b/test/fixtures/grids/plain_2_3_12_4.json new file mode 100644 index 0000000..32899c9 --- /dev/null +++ b/test/fixtures/grids/plain_2_3_12_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!! !!!!!!!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!! !!!!!!!!!!!!!!!!!"," !!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!!!!!! "," !! !!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!!!!!!! "," !!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!!!!!! "," !! !!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!!!!! "," !!!!!!!!!!! !!!!!!!!!!!!! !!!!!!!!!!!!!! "," !!!!!!!!!!!! !!!!!!!!! !!! !!!!!!!!!!!!!! "," !!!!!!!!!!! !!! !!!!!!!!!!!!! !!!!!!!!!!!!! ","! !!!!! !!!!!!!!!! !!! !!!!!!!!!!!! !!!!!!!!!!!!! ","!!! !!!!! !!!!!!!!! !!!!! !!!!!!!!!!! !!!!!!!!!!!! ","!!!! !!!! !!!!!!!!! !!!!! !!!!!!!!!!!!! !!!!!!!!!!!! ","!!!! !!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!! !!!!!! ! ","!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!! !!!!!! ","!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!!!!!!!! !!!!!! ","!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!! !!!!! ","!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!! !!!! ","!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!! !!!! ","!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! !!!! !","!!!!!!!!!!!!! !!!!!!!! !!!!!!!!!!!! !!! !","!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!!! !!!!!! !","!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!!!! !","!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!! !","!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!! !","!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!! !!!!!!!!!! !!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!","!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!! !!!!!!!!!!!!!","!!!!!!!!!!!!!!! !! !!!!!!!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!","!!!!!!!!!!!! !!!!!!!!!!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!! !!!!!!! !!! !! !!!!!!!!!! !!!!!!!!!!!!!!","!!!!!!!!! !!!!!!!!!!!! !! ! !!!!!!! !!!!!!!!!! ","! !!! !!!!!!!!!!!! ! !!! !!!!!! !!!!!!!!!!! "," ! !!!!!!!!!!!! !! !!!!!!! !!!!!!!!!!!!"," !! !! !!!!! !!!!!!!! ! !!!!!!!! !!!!!!!!!!!!!!"," !!!!! ! !!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!!!!!!!!"," !!!!!!! ! !!!!!!!!!!!!!!!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","CAN"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_3_14_4.json b/test/fixtures/grids/plain_2_3_14_4.json new file mode 100644 index 0000000..7897ecc --- /dev/null +++ b/test/fixtures/grids/plain_2_3_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!"," !!!!"," !!!!!"," !!!!!"," !!!!!!"," !!!!!!"," !!!! !"," !!!!!!"," !!!"," !!!"," !!! !!"," !!!!!! "," !!!!!!! "," !!!!!!!! !"," !!!!! !!"," !!! !!!! !"," !!!!!!!!!!! !"," !!!!!!!!!!! !"," !!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!!!!!"," !!!! !!!! !!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!"," !!!!!!! !!!!!!!!!!!!!!!!"," !!!!!!!!! !! !! !!!!!!!!"," !!!!!!!!! !!!!!!!!"],"keys":["","CAN"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_3_2_2.json b/test/fixtures/grids/plain_2_3_2_2.json new file mode 100644 index 0000000..8d001ec --- /dev/null +++ b/test/fixtures/grids/plain_2_3_2_2.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," !!"," ! !!!!"," !! !!!!!"," !!!! ! !!!!!!"," !! !!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!"," !!!!!!!!!!! !!!!!!!!!!!"," !!!!!!!!!!! ! !!!!!!!!!"," ! !!!!!!!! !! !!!!!!!!"," !!!!!!!! !!!!!!!!!!!!!!"," # !!!!!!!! !!!!!!!!$$!!!!"," ### !!!!!!!!! !!!!!!!!!!$!!$$"," % #### !!!!!!! !!!!!!!!!!!!!!$"," %% ##### ! !!!!!!! !!!!!!!!!!!!!!!!","%%%%% %%%%%% %% ##### !!!!!! !!!!!!!!!!!!!!!!!","%%%%%%%%%%%%%%%%%%%%%####### !!!!! !!!!!!!!!!!!!!!!!!","%%%%%%%%%%%%%%%%%%%%%%####### !!!!!! !!!!!!!!!!!!!!!!!!!","%%%%%%%%%%%%%%%%%%%%%%######### ! !!! !!!!!!!!!!!!!!!!!!!","%%%%%%%%%%%%%%%%%%%########## ! !!! !!!!!!!!!!!!!!!!!!!!!","#%%%%%%%%%%%%%%%%%########### !!&&& !!!!!!!!!!!!!!!!!!!!!!","###%%%%%%%%%%%%%############# !!&&&& !!!!!!!!!!!!!!!!!!!!!!!","####%%%%%%%%%%%############' !!!&&&&&!!!!!!!!!!!!!!!!!!!!!!!!","#########%%%#############''''!!!!!!&&&!!!!!!!!!!!!!!!!!!!!!!!!!!","########################'''''!!!!!!&&!!!!!!!!!!!!!!!!!!!!!!!!!!!","#####################!##''''!!!!!!!&&!!!!!!!!!!!!!!!!!!!!!!!!!!!","#######################!((((!!!!!!&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!","########################!(((((!!!&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!","######################!!!((((!&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!","######################!!!(((&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!","######################!!!((&&&&&&&!&!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#######################!!!!&&&&!!!!&!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#######################!!!!!&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","#######################!!!!!&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",")#****#################!!!!&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",")*****#################!!!!&&!!!!!!!!&!!!!!!!!!!!!!!!!!!!!!!!!!!","*****+###############,!!!!&&!!!!!!!!!&!!!!!!!!!!!!!!!!!!!!!!!!!!","****+################,,!&&!!!!!!!!!!&!!!!!!!!!!!!!!!!!!!!!!!!!!!","****+#####-#########,,,&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",".**+++##-----###/0#!!,,!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",".++++++1-----####!#!!!2!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!++++3331---!##!!!!!!!2!!!!!!!!!!!!!!!!4!!!!!!!!!!!!!!5!!!!!!!!!","!!+++33333--!##!!!!!!22!!!!!!!!!!!!!!!!4!!!!!!!!!!!!!!!!!!!!!!!!","!!!++333333--!!!!!!!!222!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!+++333333---!!!!!!!22!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!+!!3333333--!!!!!!!2222!!!!!!!!!!!!!!4!!!!!!!!!!!!!!!!!!!!!!!!","!**!!+333366--!!!!!!!2222!!!!!!!!!!!!!77!!!!!!!!!!!!!!!!!!!!!!!!","!**!!+33336---!!!!!!222222!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!*!!!+33!-----!!!!!!222222!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!**!!333!!--!!!!!!!22!!222!!!!!!!!8!!!!!!!8!!!!!!!!!!!!!!9!!!!!!","!!*!!333!!!!!!!!!!!22!2222!!!!!:!!!!!!!!!!!8!!!!!!!!!!!!!!9!!!!!","!!*;;!333>>;;;!<<<<","=777777777777777777788888888888999999999999999999999>>>>>>>;<<<<","==777???????77??????88888888888999999999999999999999>>>>>>>><<<<","====7????????????????8888888888999999999999999999999>>>>>>>>><<<","====7????????????????888888888899999999999999999999>>>>>>>>>>@!!","====?????????????????88888888888999999999999999999>>>>>>>>>>@A!!","==BBB???????????????C888888888DD999999999999999999>>>>>>>>>>AAA!","EEBB????????????????888888888DDDD9999999999999999>>>>>>>>>>>AAAA","EEEB???????????????888888888DDDDD9999999999999999>>>>>>>>>>>>AAA","EEE????????????????C888888DDDDDDD9999999999999999>>>>>>>>>>>>>AA","EEE???????????????CCC88DDDDDDDDDDD99999999999999>>>>>>>>>>>>>>>>","EEE???????????????CCCDDDDDDDDDDDDDD99999999999999>>>>>>>>>>>>>>>","EEE??????????????CCCDDDDDDDDDDDDDDDD99999999999999>>>>>>>>>>>>>>","FEE!!!????????CCCCCCDDDDDDDDDDDDDDDDD9999999999999>>>>>>>>>>>>>>","!!!!!!!??????CCCCCCCDDDDDDDDDDDDDDDDDD9999999999999>>>>>>>>>>>AA","!!!!!!!??????CCCCCCCDDDDDDDDDDDDDDDGGGG999999999H999I>>>>II>AAAA","!!!!!!!!!!!!JCCCCCCCCDDDDDDGGGGDGGGGGGGGGG9HHHHHHIIIIIIIIIIAAAAA","!!!!!!!!!!!JJCCCCCCCCDDDKKGGGGGGGGGGGGGGGGGHHHHHHHIIIIIIIIAAAAAA","!!!!!!!!!!!!!JJJLLLCCCDDKGGGGGGGGGGGGGGGGGGHHHHHHHIIIIIIIIAAAAAA","!!!!!!!!!!M!!JJJLLLLKCCKKGGGGGGGGGGGGGGGGGGHHHHHHHIIIIIIIIAAAAAA","!!!!!!!!!!!!!LLLLLLLLKKKKGGGGGGGGGGGGGGGGGHHHHHHHHIIIIIIIIAAAAA!","!!!!!!!!!M!!!LLLLLLLLKKKKGGGGGGGGGGGGGGGGGHHHHHHHIIIIIIIIIAAAA!!"],"keys":["ESP","","ITA","ALB","MKD","GRC","TUR","ARM","IRN","TUN","DZA","IRQ","MLT","SYR","CYP","LBN","LBY","JOR","PSE","SAU","EGY","ISR","NER","TCD","SDN","MLI","ERI","YEM","BFA","ETH","NGA","DJI","SOM","BEN","CMR","CAF","TGO","GHA","COD","UGA","KEN","GNQ","COG","GAB","STP"],"data":{"ALB":{"AREA":2740,"FIPS":"AL","ISO2":"AL","ISO3":"ALB","LAT":41.143,"LON":20.068,"NAME":"Albania","POP2005":3153731,"REGION":150,"SUBREGION":39,"UN":8},"ARM":{"AREA":2820,"FIPS":"AM","ISO2":"AM","ISO3":"ARM","LAT":40.534,"LON":44.563,"NAME":"Armenia","POP2005":3017661,"REGION":142,"SUBREGION":145,"UN":51},"BEN":{"AREA":11062,"FIPS":"BN","ISO2":"BJ","ISO3":"BEN","LAT":10.541,"LON":2.469,"NAME":"Benin","POP2005":8490301,"REGION":2,"SUBREGION":11,"UN":204},"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"CAF":{"AREA":62298,"FIPS":"CT","ISO2":"CF","ISO3":"CAF","LAT":6.571,"LON":20.483,"NAME":"Central African Republic","POP2005":4191429,"REGION":2,"SUBREGION":17,"UN":140},"CMR":{"AREA":46540,"FIPS":"CM","ISO2":"CM","ISO3":"CMR","LAT":5.133,"LON":12.277,"NAME":"Cameroon","POP2005":17795149,"REGION":2,"SUBREGION":17,"UN":120},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COG":{"AREA":34150,"FIPS":"CF","ISO2":"CG","ISO3":"COG","LAT":-0.055,"LON":15.986,"NAME":"Congo","POP2005":3609851,"REGION":2,"SUBREGION":17,"UN":178},"CYP":{"AREA":924,"FIPS":"CY","ISO2":"CY","ISO3":"CYP","LAT":35.043,"LON":33.219,"NAME":"Cyprus","POP2005":836321,"REGION":142,"SUBREGION":145,"UN":196},"DJI":{"AREA":2318,"FIPS":"DJ","ISO2":"DJ","ISO3":"DJI","LAT":11.9,"LON":42.516,"NAME":"Djibouti","POP2005":804206,"REGION":2,"SUBREGION":14,"UN":262},"DZA":{"AREA":238174,"FIPS":"AG","ISO2":"DZ","ISO3":"DZA","LAT":28.163,"LON":2.632,"NAME":"Algeria","POP2005":32854159,"REGION":2,"SUBREGION":15,"UN":12},"EGY":{"AREA":99545,"FIPS":"EG","ISO2":"EG","ISO3":"EGY","LAT":26.494,"LON":29.872,"NAME":"Egypt","POP2005":72849793,"REGION":2,"SUBREGION":15,"UN":818},"ERI":{"AREA":10100,"FIPS":"ER","ISO2":"ER","ISO3":"ERI","LAT":16.045,"LON":38.219,"NAME":"Eritrea","POP2005":4526722,"REGION":2,"SUBREGION":14,"UN":232},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"ETH":{"AREA":100000,"FIPS":"ET","ISO2":"ET","ISO3":"ETH","LAT":8.626,"LON":39.616,"NAME":"Ethiopia","POP2005":78985857,"REGION":2,"SUBREGION":14,"UN":231},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"GHA":{"AREA":22754,"FIPS":"GH","ISO2":"GH","ISO3":"GHA","LAT":7.96,"LON":-1.207,"NAME":"Ghana","POP2005":2253501,"REGION":2,"SUBREGION":11,"UN":288},"GNQ":{"AREA":2805,"FIPS":"EK","ISO2":"GQ","ISO3":"GNQ","LAT":1.607,"LON":10.488,"NAME":"Equatorial Guinea","POP2005":484098,"REGION":2,"SUBREGION":17,"UN":226},"GRC":{"AREA":12890,"FIPS":"GR","ISO2":"GR","ISO3":"GRC","LAT":39.666,"LON":21.766,"NAME":"Greece","POP2005":11099737,"REGION":150,"SUBREGION":39,"UN":300},"IRN":{"AREA":163620,"FIPS":"IR","ISO2":"IR","ISO3":"IRN","LAT":32.565,"LON":54.301,"NAME":"Iran (Islamic Republic of)","POP2005":69420607,"REGION":142,"SUBREGION":34,"UN":364},"IRQ":{"AREA":43737,"FIPS":"IZ","ISO2":"IQ","ISO3":"IRQ","LAT":33.048,"LON":43.772,"NAME":"Iraq","POP2005":27995984,"REGION":142,"SUBREGION":145,"UN":368},"ISR":{"AREA":2171,"FIPS":"IS","ISO2":"IL","ISO3":"ISR","LAT":31.026,"LON":34.851,"NAME":"Israel","POP2005":6692037,"REGION":142,"SUBREGION":145,"UN":376},"ITA":{"AREA":29411,"FIPS":"IT","ISO2":"IT","ISO3":"ITA","LAT":44.931,"LON":10.44,"NAME":"Italy","POP2005":5864636,"REGION":150,"SUBREGION":39,"UN":380},"JOR":{"AREA":8824,"FIPS":"JO","ISO2":"JO","ISO3":"JOR","LAT":30.703,"LON":36.319,"NAME":"Jordan","POP2005":5544066,"REGION":142,"SUBREGION":145,"UN":400},"KEN":{"AREA":56914,"FIPS":"KE","ISO2":"KE","ISO3":"KEN","LAT":0.53,"LON":37.858,"NAME":"Kenya","POP2005":35598952,"REGION":2,"SUBREGION":14,"UN":404},"LBN":{"AREA":1023,"FIPS":"LE","ISO2":"LB","ISO3":"LBN","LAT":33.92,"LON":35.888,"NAME":"Lebanon","POP2005":401074,"REGION":142,"SUBREGION":145,"UN":422},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"MKD":{"AREA":2543,"FIPS":"MK","ISO2":"MK","ISO3":"MKD","LAT":41.6,"LON":21.698,"NAME":"The former Yugoslav Republic of Macedonia","POP2005":2033655,"REGION":150,"SUBREGION":39,"UN":807},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"MLT":{"AREA":32,"FIPS":"MT","ISO2":"MT","ISO3":"MLT","LAT":35.89,"LON":14.442,"NAME":"Malta","POP2005":402617,"REGION":150,"SUBREGION":39,"UN":470},"NER":{"AREA":126670,"FIPS":"NG","ISO2":"NE","ISO3":"NER","LAT":17.426,"LON":9.398,"NAME":"Niger","POP2005":1326419,"REGION":2,"SUBREGION":11,"UN":562},"NGA":{"AREA":91077,"FIPS":"NI","ISO2":"NG","ISO3":"NGA","LAT":9.594,"LON":8.105,"NAME":"Nigeria","POP2005":141356083,"REGION":2,"SUBREGION":11,"UN":566},"PSE":{"AREA":0,"FIPS":"","ISO2":"PS","ISO3":"PSE","LAT":32.037,"LON":35.278,"NAME":"Palestine","POP2005":3762005,"REGION":142,"SUBREGION":145,"UN":275},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"STP":{"AREA":96,"FIPS":"TP","ISO2":"ST","ISO3":"STP","LAT":0.201,"LON":6.629,"NAME":"Sao Tome and Principe","POP2005":152622,"REGION":2,"SUBREGION":17,"UN":678},"SYR":{"AREA":18378,"FIPS":"SY","ISO2":"SY","ISO3":"SYR","LAT":35.013,"LON":38.506,"NAME":"Syrian Arab Republic","POP2005":18893881,"REGION":142,"SUBREGION":145,"UN":760},"TCD":{"AREA":125920,"FIPS":"CD","ISO2":"TD","ISO3":"TCD","LAT":15.361,"LON":18.665,"NAME":"Chad","POP2005":10145609,"REGION":2,"SUBREGION":17,"UN":148},"TGO":{"AREA":5439,"FIPS":"TO","ISO2":"TG","ISO3":"TGO","LAT":8.799,"LON":1.081,"NAME":"Togo","POP2005":6238572,"REGION":2,"SUBREGION":11,"UN":768},"TUN":{"AREA":15536,"FIPS":"TS","ISO2":"TN","ISO3":"TUN","LAT":35.383,"LON":9.596,"NAME":"Tunisia","POP2005":10104685,"REGION":2,"SUBREGION":15,"UN":788},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"YEM":{"AREA":52797,"FIPS":"YM","ISO2":"YE","ISO3":"YEM","LAT":15.807,"LON":48.355,"NAME":"Yemen","POP2005":21095679,"REGION":142,"SUBREGION":145,"UN":887}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_4_4.json b/test/fixtures/grids/plain_2_4_4_4.json new file mode 100644 index 0000000..a129862 --- /dev/null +++ b/test/fixtures/grids/plain_2_4_4_4.json @@ -0,0 +1 @@ +{"grid":[" !!"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","CHL"],"data":{"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_5_3.json b/test/fixtures/grids/plain_2_4_5_3.json new file mode 100644 index 0000000..7c88efd --- /dev/null +++ b/test/fixtures/grids/plain_2_4_5_3.json @@ -0,0 +1 @@ +{"grid":[" !!!#############$$$$$$$%%%%%%%%%%%%%%%%% %%%%%"," !!!###############$$$$$$$%%%%%%%% %%%%%%%%%%%"," !!!!###############$$$$$$$%%%%%%%% %%%%%%%%"," !!!!############ $$$$$$$%%%%%%%% %%%%%%%%"," !!!!########### $$$$$$$%%%%%%%%%%%% %%%%%%%%"," !!!!############ $$$$$$$$%%%%%%%%%%%%% %%%%%%%"," !!!!############ $$$$$$$$%%%%%%%% %%%%%%%%%%%%%"," !!!!!!########### $$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%"," !!!!############# $$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%"," !!!!!!############# $$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%"," !!!!!#############$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!########### $$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!########## $$$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!######### $$$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!######### $$$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!######## $$$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!######## $$$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!######## $$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!!######### $$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!!##########&&&$$$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!############& $$$$$$$ %%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!############ $$ ''' %%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!!########### ''''''%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!!!############ ''''''''%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!!!! ########## '''''''%%%%%%%%%%%%%%%%%%%%%%%%%%"," !!!!! ######### # ''''('''%%%%%%%%%%%%%%%%%%%%%%%%%"," !! ))######## ## (( ((((%%%%%%%%%%%%%%%%%%%%%%%%%%"," )))########### ((( ((((%%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))) ########## (((((((((%%%%%%%%%%%%%%%%%%%%%%%%%"," )))) )####### # ((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))) ####### (******(((%%%%%%%%%%%%%%%%%%%%%%%%%"," ))))))###### *********++%%%%%%%%%%%%%%%%%%%%%%%%"," )))))))### *********+++%%%%%%%%%%%%%%%%%%%%%%%"," ,))))))##)) %%%%******++++%%%%%%%%%%%%%%%%%%%%%"," ,,,,))),, ---- %%%%%****++++++%%%%%%%%%%%%%%%%%%%%%"," ,,,,,,,, ------%%%%%%-***+++++++%%%%%%%%%%%%%%%%%%%%"," ,,,,,,,,,,--------------***+++++++%%%%%%%%%%%%%%%%%%%%",". ///,,,,,,,,,,--------------++++++++++++%%%%%%%%%%%%%%%%%%",".. /////,,,,,,,,,--------------++++++++++%%%%%%%%%%%%%%%%%%%%","... /////,,,,,,,,,--------------++++++++++%%%%%%%%%%%%%%%%%%%%","... /////,,,,,,,,,,--------------+++++++++000000%%%%%%%%%%%%%%%","... /////,,,,,,,,,,-------------000000000+000000%%%%%%%%%%%%%%%",".. 1/////,,,,,,,,,,,-------------00000000000000000%%%%%%%%%%%%%%","..211111/,,,,,,,,,,,,------------000000000000000000%%%%%%%%%%%%%"," 22111111,,,,,,,,,,33-----------000000000000000000000%%%%%%%%%%","2222211144,,,,,,,,33333---------000000000000000000000000%%%%%%%%","2222221144,,,,,,,,,3333333------00000000000000000000000000%%%%%%","222222222,,,,,,,,,,,33333555--5000000000000000000000000000%%%%%%","22222222222,,,,,,,,,3335555555500000000000000000000000000%%%%%%%","2222222222,,,,,,,,,,6665555555500000000000000000000000000%%%%%%%","22222222227777,,,,,6666855588889090009:::0000000000000000%%%%%%%","22222222277777,,;;,66668888888999999999::00000000000000%%%%%%%%%","222222227777777;;;;;6<<<888888999999999:::000000000000%%%%%%%%%%","222222227777777;;;;<<<<<888==9999999999::0000000000 %%%%%%%%%%%","2222222227777;;;;;;<<<<>88====999999999:0000 0000 %%%%%%%%%%%","222222222;;;;;;;;;;<<<>>>>=====99999999:000 0000000%%%%%%%%%%%","222222222;;;;;;;;; >>>>>?>>======9999999999 00000%%%%%%%%%%%%","222222222;;;;;;;;; >>>>???======999999999 00 %%%%%%%%%%","2222222222@; ;;;A;; >>>>??=====999999999 %%%%%%%%%","2222222222 ;;;;;;; >>>>B======CCCCCCCC %%%%%%%%","DDE22 2;;;;;;;; >>>>BB=====CCCCCCC FFF%%%","DDDDD 22;;;;;;;; BB=====CCCCCGC G FFFFF","DDDDD 22 ;;;;;; BH=IIICJCCGGGG GGGGGGG GGFFF","DDDD ;;; ;;;;;;;; HHIIIIJJJJGGGGGGGGGGGGGGGGGGGGGGGGGFF"],"keys":["","NOR","SWE","FIN","RUS","ALA","EST","LVA","DNK","LTU","BLR","DEU","POL","GBR","NLD","UKR","BEL","FRA","CZE","LUX","SVK","AUT","CHE","HUN","ROU","MDA","ITA","SVN","SRB","HRV","BIH","MCO","SMR","MNE","BGR","ESP","AND","GEO","TUR","ALB","MKD","GRC"],"data":{"ALA":{"AREA":0,"FIPS":"","ISO2":"AX","ISO3":"ALA","LAT":60.198,"LON":19.952,"NAME":"land Islands","POP2005":0,"REGION":150,"SUBREGION":154,"UN":248},"ALB":{"AREA":2740,"FIPS":"AL","ISO2":"AL","ISO3":"ALB","LAT":41.143,"LON":20.068,"NAME":"Albania","POP2005":3153731,"REGION":150,"SUBREGION":39,"UN":8},"AND":{"AREA":0,"FIPS":"AN","ISO2":"AD","ISO3":"AND","LAT":42.549,"LON":1.576,"NAME":"Andorra","POP2005":73483,"REGION":150,"SUBREGION":39,"UN":20},"AUT":{"AREA":8245,"FIPS":"AU","ISO2":"AT","ISO3":"AUT","LAT":47.683,"LON":14.912,"NAME":"Austria","POP2005":8291979,"REGION":150,"SUBREGION":155,"UN":40},"BEL":{"AREA":0,"FIPS":"BE","ISO2":"BE","ISO3":"BEL","LAT":50.643,"LON":4.664,"NAME":"Belgium","POP2005":10398049,"REGION":150,"SUBREGION":155,"UN":56},"BGR":{"AREA":11063,"FIPS":"BU","ISO2":"BG","ISO3":"BGR","LAT":42.761,"LON":25.231,"NAME":"Bulgaria","POP2005":7744591,"REGION":150,"SUBREGION":151,"UN":100},"BIH":{"AREA":5120,"FIPS":"BK","ISO2":"BA","ISO3":"BIH","LAT":44.169,"LON":17.786,"NAME":"Bosnia and Herzegovina","POP2005":3915238,"REGION":150,"SUBREGION":39,"UN":70},"BLR":{"AREA":20748,"FIPS":"BO","ISO2":"BY","ISO3":"BLR","LAT":53.54,"LON":28.047,"NAME":"Belarus","POP2005":9795287,"REGION":150,"SUBREGION":151,"UN":112},"CHE":{"AREA":4000,"FIPS":"SZ","ISO2":"CH","ISO3":"CHE","LAT":46.861,"LON":7.908,"NAME":"Switzerland","POP2005":7424389,"REGION":150,"SUBREGION":155,"UN":756},"CZE":{"AREA":7727,"FIPS":"EZ","ISO2":"CZ","ISO3":"CZE","LAT":49.743,"LON":15.338,"NAME":"Czech Republic","POP2005":10191762,"REGION":150,"SUBREGION":151,"UN":203},"DEU":{"AREA":34895,"FIPS":"GM","ISO2":"DE","ISO3":"DEU","LAT":51.11,"LON":9.851,"NAME":"Germany","POP2005":82652369,"REGION":150,"SUBREGION":155,"UN":276},"DNK":{"AREA":4243,"FIPS":"DA","ISO2":"DK","ISO3":"DNK","LAT":56.058,"LON":9.264,"NAME":"Denmark","POP2005":5416945,"REGION":150,"SUBREGION":154,"UN":208},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"EST":{"AREA":4239,"FIPS":"EN","ISO2":"EE","ISO3":"EST","LAT":58.674,"LON":25.793,"NAME":"Estonia","POP2005":1344312,"REGION":150,"SUBREGION":154,"UN":233},"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"GEO":{"AREA":6949,"FIPS":"GG","ISO2":"GE","ISO3":"GEO","LAT":42.176,"LON":43.518,"NAME":"Georgia","POP2005":4473409,"REGION":142,"SUBREGION":145,"UN":268},"GRC":{"AREA":12890,"FIPS":"GR","ISO2":"GR","ISO3":"GRC","LAT":39.666,"LON":21.766,"NAME":"Greece","POP2005":11099737,"REGION":150,"SUBREGION":39,"UN":300},"HRV":{"AREA":5592,"FIPS":"HR","ISO2":"HR","ISO3":"HRV","LAT":45.723,"LON":16.693,"NAME":"Croatia","POP2005":455149,"REGION":150,"SUBREGION":39,"UN":191},"HUN":{"AREA":9210,"FIPS":"HU","ISO2":"HU","ISO3":"HUN","LAT":47.07,"LON":19.134,"NAME":"Hungary","POP2005":10086387,"REGION":150,"SUBREGION":151,"UN":348},"ITA":{"AREA":29411,"FIPS":"IT","ISO2":"IT","ISO3":"ITA","LAT":44.931,"LON":10.44,"NAME":"Italy","POP2005":5864636,"REGION":150,"SUBREGION":39,"UN":380},"LTU":{"AREA":6268,"FIPS":"LH","ISO2":"LT","ISO3":"LTU","LAT":55.336,"LON":23.897,"NAME":"Lithuania","POP2005":3425077,"REGION":150,"SUBREGION":154,"UN":440},"LUX":{"AREA":0,"FIPS":"LU","ISO2":"LU","ISO3":"LUX","LAT":49.771,"LON":6.088,"NAME":"Luxembourg","POP2005":456613,"REGION":150,"SUBREGION":155,"UN":442},"LVA":{"AREA":6205,"FIPS":"LG","ISO2":"LV","ISO3":"LVA","LAT":56.858,"LON":25.641,"NAME":"Latvia","POP2005":2301793,"REGION":150,"SUBREGION":154,"UN":428},"MCO":{"AREA":0,"FIPS":"MN","ISO2":"MC","ISO3":"MCO","LAT":43.75,"LON":7.412,"NAME":"Monaco","POP2005":325,"REGION":150,"SUBREGION":155,"UN":492},"MDA":{"AREA":3288,"FIPS":"MD","ISO2":"MD","ISO3":"MDA","LAT":47.193,"LON":28.599,"NAME":"Republic of Moldova","POP2005":3876661,"REGION":150,"SUBREGION":151,"UN":498},"MKD":{"AREA":2543,"FIPS":"MK","ISO2":"MK","ISO3":"MKD","LAT":41.6,"LON":21.698,"NAME":"The former Yugoslav Republic of Macedonia","POP2005":2033655,"REGION":150,"SUBREGION":39,"UN":807},"MNE":{"AREA":0,"FIPS":"MJ","ISO2":"ME","ISO3":"MNE","LAT":42.792,"LON":19.254,"NAME":"Montenegro","POP2005":607969,"REGION":150,"SUBREGION":39,"UN":499},"NLD":{"AREA":3388,"FIPS":"NL","ISO2":"NL","ISO3":"NLD","LAT":52.077,"LON":5.389,"NAME":"Netherlands","POP2005":1632769,"REGION":150,"SUBREGION":155,"UN":528},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"POL":{"AREA":30629,"FIPS":"PL","ISO2":"PL","ISO3":"POL","LAT":52.125,"LON":19.401,"NAME":"Poland","POP2005":38195558,"REGION":150,"SUBREGION":151,"UN":616},"ROU":{"AREA":22987,"FIPS":"RO","ISO2":"RO","ISO3":"ROU","LAT":45.844,"LON":24.969,"NAME":"Romania","POP2005":21627557,"REGION":150,"SUBREGION":151,"UN":642},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SMR":{"AREA":0,"FIPS":"SM","ISO2":"SM","ISO3":"SMR","LAT":43.942,"LON":12.46,"NAME":"San Marino","POP2005":30214,"REGION":150,"SUBREGION":39,"UN":674},"SRB":{"AREA":0,"FIPS":"RB","ISO2":"RS","ISO3":"SRB","LAT":44.032,"LON":20.806,"NAME":"Serbia","POP2005":9863026,"REGION":150,"SUBREGION":39,"UN":688},"SVK":{"AREA":4808,"FIPS":"LO","ISO2":"SK","ISO3":"SVK","LAT":48.707,"LON":19.491,"NAME":"Slovakia","POP2005":5386995,"REGION":150,"SUBREGION":151,"UN":703},"SVN":{"AREA":2014,"FIPS":"SI","ISO2":"SI","ISO3":"SVN","LAT":46.124,"LON":14.827,"NAME":"Slovenia","POP2005":1999425,"REGION":150,"SUBREGION":39,"UN":705},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792},"UKR":{"AREA":57935,"FIPS":"UP","ISO2":"UA","ISO3":"UKR","LAT":49.016,"LON":31.388,"NAME":"Ukraine","POP2005":46917544,"REGION":150,"SUBREGION":151,"UN":804}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_5_4.json b/test/fixtures/grids/plain_2_4_5_4.json new file mode 100644 index 0000000..01f9e90 --- /dev/null +++ b/test/fixtures/grids/plain_2_4_5_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!############"," !!!!!!!############"," !!!!!!!############"," !!!!!!!############"," !!!!!!!!############"," !!!!!!!!############"," !! !!!#############"," !!!!!!!#############"," !!! !!!!############"," ! !! !!!!############"," ! !! !!!!!###########"," !!!!!!!!!###########"," !!!!!!!!############"," !!!!!!!!!!!##########"," !!!!!!!!!!!!##########"," ! !!!!!!!!!###########"," !!!!!!!!!!##########"," !!!!!!!!!!!##########"," !!!!!!!!!############"," !!!!!!!!!!!###########"," !!!!!!!!!!############"," !!!!!!!!!!!!###########"," !!!!!!!!!!!!!###########"," !! !!!!!!!!!############"," !!!!!!!!############"," !!!!!!!!############"," !!!!!!!!!!#############"," !!!!!!!!!##############"," !!!!!!!!!!!#############"," !!!!!!!!!!!#############"," !!!!!!!!!!##############"," !!!!!!!!!!##############"," !!!!!!!!!###############"," !!!!!!!!!###############"," !!!!!!#################"," !!!!!!!!################"," !!!!!!#################"," !!!!!!!############### "," !!!!!!!############# "," !!!!!!!!!!######### "," !!!!!!!!!!######### "," !!!!!!!!!######### "," !!!!!!!!!######### "," !!!!!!!!!!######### "," !!!!!!!!!!!######### "," !!!!!!!!!!!!!!!!### "," !!!!!!!!!!!!!!!!!!!# "," !!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!# "," !!!!!!!!!!!!!!!!!!# "," !!!!!!!!!!!!!!!!!## "," !!!!!!!!!!!!!!!!## "," !!!!!!!!!!!!!!!!###"," !!!!!!!!!!!!!!###"," !!!!!!!!!!!!!!###"," !!!!!!!!!!!!###"," !!!!!!!!!!!!###"," !!!!!!!!!!!###"," !!!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!"," !!!!!!!"," !!!"],"keys":["","CHL","ARG"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_6_3.json b/test/fixtures/grids/plain_2_4_6_3.json new file mode 100644 index 0000000..b17fa69 --- /dev/null +++ b/test/fixtures/grids/plain_2_4_6_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!! !!!!! "," !!!!!!!!!!!!!!!!! ! !!!! "," !!!!!!!!!!!!!!!!! !! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," !!!!!!!!!!!! !!!!! "," !!!!!!!!!!! !!!!! "," !!!!!!!! !!!!! "," !!!!!!!! !!!!!! "," !!!!!!!! !!!!!! "," !!!!!!! !!!!!! "," !!!!!!! !!!!! "," !!!!! !!! "," !!!! "," !!! "," !!! ! "," !! !! "," ! "," "," "," "," "," "," "," "," "," "," "," !! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ## ## "," ######### "," ############# "," ############### "," ################## "," ################## $ "," #############%%##$$$$$$ "," #############%%%%#$$$$$$ "," ###############%%%#$$$$$$$$$$$ "," #######&&%######%%%$$$$$$$$$$$$$ "," ########&&&######%%%$$$$$$$$$$$$$$ $ "," #####&&&&&&&&#%#%%%%$$$$$$$$$$$$$$$ $$$"," #######&&&&&&&&&%%%%%%$$$$$$$$$$$$$$$$$ $$"," ## ##&&&&&&&&&&&%%%%%%%$$$$$$$$$$$$$$$$$ $$"," # ###&&&&&&&&&&&%%%%%%%%$$$$$$$$$$$$$$$$$ $$"," ##&&&&&&&&&&&&%%%%%%%%$$$$$$$$$$$$$$$$$ $$"," ####&&&&&&&&&&&%%%%%%%$$$$$$$$$$$$$$$$$$ $$"," ###&&&&&&&&&&&&&%%%%%%$$$$$$$$$$$$$$$$$$ $$"," ###&&&&&&&&&&&&&%%%%%%%$$$$$$$$$$$$$$$$$$$$ $"],"keys":["","SJM","NOR","RUS","FIN","SWE"],"data":{"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_6_4.json b/test/fixtures/grids/plain_2_4_6_4.json new file mode 100644 index 0000000..a20ffe1 --- /dev/null +++ b/test/fixtures/grids/plain_2_4_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!#"," !!!!!!!#"," !!!!!!!!"," !!!!!!!!!"," !!!!!!!!!"," !!!!!!!!!"," !!!!!!!!!"," !!!!!!!!$"," !!!!!!!$$"," !!!!!!!$$"," !!!!!!!$$"," !!!!!!!!$$"," !!!!!!!!$$"," ! !!!!!!!!$$"," !!!!!!!!$$"," !!!!!!!!$$"," !!!!!!!!$$"," !!!!!!!$$$$"," !!!!!!!$$$$"," !!!!!!$$$$$"," !!!!!!$$$$$"," !!!!!!$$$$$$"," !!!!!!$$$$$$"," !!!!!$$$$$$$"," !!!!!$$$$$$"," !!!!!!$$$$$$"," !!!!!!$$$$$$"," !!!!!$$$$$$$"," !!!!$$$$$$$$"," !!!!$$$$$$$$"," !!!!$$$$$$$$"," !!!!!$$$$$$$"," !!!!!$$$$$$$"," !!!!!$$$$$$$"," !!!!!$$$$$$$"," !!!!!!$$$$$$$"," !!!!!!!$$$$$$"," ! ! !!!!!!$$$$$$"," ! !!!!!!!$$$$$$"," !!!!!!!$$$$$$"," !!!!!!$$$$$$$"," !!!!!!!$$$$$$$"," !!!!!!$$$$$$$$"," !!!!!!!$$$$$$$$"," !!!!!!!$$$$$$$$"," !!!!!!!!$$$$$$$$"," !!!!!!!!$$$$$$$$"," !!!!!!!$$$$$$$$$"," !!!!!!!$$$$$$$$$$"," !!!!!!!!$$$$$$$$$$"," !!!!!!!!$$$$$$$$$$"," !!!!!!!!$$$$$$$$$$"," !!!!!!!!$$$$$$$$$$"," !!!!!!!!$$$$$$$$$$"," !!!!!!!!!$$$$$$$$$"," !!!!!!!!!$$$$$$$$$"," !!!!!!!$$$$$$$$$$"," !!!!!!$$$$$$$$$$$"," !!!!!!$$$$$$$$$$$"," !!!!!!!$$$$$$$$$$$"," !!!!!!!$$$$$$$$$$$"," !!!!!!!$$$$$$$$$$$"," !!!!!!!$$$$$$$$$$$$"," !!!!!!!$$$$$$$$$$$$"],"keys":["","CHL","BOL","ARG"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_7_4.json b/test/fixtures/grids/plain_2_4_7_4.json new file mode 100644 index 0000000..fea2b3a --- /dev/null +++ b/test/fixtures/grids/plain_2_4_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!####$$$$$$$$$$$$$$%%%%%%"," !! !!!!!!!!!!!!!!!####$$$$$$$$$$$$$$%%%%%"," !! !!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$%%%%%","!! !!!!!!!!!!!!!!!!######$$$$$$$$$$$$%%%%%"," !!!!!!!!!!!!!!########$$$$$$$$$$$%%%%%"," !!!!!!!!!!!!!##########$$$$$$$$$$%%%%%"," !!!!!!!!!!!!!##################$$$%%%%%"," !!!!!!!!!######################$%%%%%%"," !!!!!!!#######################$%%%%%%"," ##!!!!!#######################$$%%%%%%"," ###!!!!#########################$%%%%%%"," ####!!!!#########################$%%%%%%"," ######!!#######################%#%%%%%%%"," ############################%%%%%%%%%%%%"," #########################%%%%%%%%%%%%%%"," ########################%%%%%%%%%%%%%%%"," ########################%%%%%%%%%%%%%%%"," #######################%%%%%%%%%%%%%%%%"," ######################%%%%%%%%%%%%%%%%"," ###################%%%%%%%%%%%%%%%%%"," ##################%%%%%%%%%%%%%%%%%"," #################%%%%%%%%%%%%%%%%%%"," #################%%%%%%%%%%%%%%%%%"," ##################%%%%%%%%%%%%%%%%"," #################%%%%%%%%%%%%%%%%"," ##################%%%%%%%%%%%%%%%"," ##################%%%%%#%%%%%%%%"," ###################%%%##%%%%%%%%"," #######################%%%%%%%%"," #######################%%%%%%%%"," ######################%%%%%%%%"," #########################%%%&&"," #########################&&&&"," ########################&&&&"," #########################&&&"," ########################&&&"," ########################&&&"," ######################&&&&"," ######################&&&&"," ######################&&&&"," #######################&&&"," #####################&&&&"," ###################&&&&&"," ###################&&&&"," ##################&&&&"," ################&&&&&"," ################&&&"," ##############&&&"," ###########&&&&"," #########&&&&&"," #######&&&&&"," #####'&&&&&"," ####''&&&&"," #''''&&&&"," '''''&&&&"," ''''''&&&"," ''''''&&"," ''''''&&"," '''''&&&"," ''''''&&"," ''''''&&"," ''''''&&"," '''''''&"," '''''''&"],"keys":["","ECU","PER","COL","BRA","BOL","CHL"],"data":{"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"COL":{"AREA":103870,"FIPS":"CO","ISO2":"CO","ISO3":"COL","LAT":3.9,"LON":-73.076,"NAME":"Colombia","POP2005":4494579,"REGION":19,"SUBREGION":5,"UN":170},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"PER":{"AREA":128000,"FIPS":"PE","ISO2":"PE","ISO3":"PER","LAT":-9.326,"LON":-75.552,"NAME":"Peru","POP2005":27274266,"REGION":19,"SUBREGION":5,"UN":604}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_4_8_4.json b/test/fixtures/grids/plain_2_4_8_4.json new file mode 100644 index 0000000..62b19ca --- /dev/null +++ b/test/fixtures/grids/plain_2_4_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!! !!! ! !!!!!!!!!! #### ","$$$$$$$$$$ !!! !!!!!!!!!! % # ","$$$$$$$$$$ ! !!!!!!!!! %%% ","$$$$$$$$$ !!!!!!!!!!!!!! %% ","$$$$$$$$$$ !! !!!!!!!!! ","$$$$$$$$$ !!!!!!!!!!! && ","$$$$$$$$ '' !!!!! !!( &&&&&)))))) ","$$$$$$$$ '' &&&&&&))))))) ","$$$$$$$$ '' &&&&&)))))))) ","$$$$$$$$ && &&&&&)))))))))) ","$$$$$$$$ ***** &&&&&&&&&))))))))) ","$$$$++$ ******* &&&&&&&&))))) ) , ","$$$$++ ****** )) ","---++++ . ) ","---+++ ","---+++ ","---++ ... ","---+ .. .. . ","----............. ","---................ ","--................// ","--............////// ","-............//////// ","--........////////// ","0000.....////////// ","000000../////////// 1 "," 000///////////// "," ///////////// 1 2 "," ///////////// 1 1111 22 3 3 "," ///////// / 1111 44 333 "," ////////// 114444 4444 "," //////// 11111144 44444444 "," //////// 11111114444444444444 "," 5555//5 11111114444444444444444"," 555555555 11111114444444444444444"," 5555555555 111111114444 44444444444"," 555555566 666 111111144444 44444444444"," 55556666 666666666 1111111144444444444444444"," 5556666666666666666 11111111114444444444444444"," 55566666666666666661111111111111444444444444444"," 56666666666 6666666111111111111144444444444444"," 6 666666 66666111111111111444444444444444"," 666666 6661111111111111444444444444444"," 6 666 611111111111111144444444444444"," 11111111111111114141444444444"," 11111111111111111111114444444"," 11111111111111111111111444444"," 11111111111111111111111111114"," 11111111111111111111111111114"," 11111111111111111111111111114"," 11111111111111111111111111144"," 11111111111111111111111111144"," 11111111111111111111111111114"," 1111111111111111111111111114"," 11111111111111111111111111114"," 111111111111111111111111111114"," 11111111111111111111111111111114"," 11111111111111111111111111111111"," 111111111111111111111111111111111"," 711111111111111111111111111111118"," 77777111111111111111111111111188888"," 777777771111111111111111111111118888"," 777777777177111111111111111111118888"," 777777777777771111111111111118888888"],"keys":["","CUB","TCA","MEX","BHS","HTI","CYM","USA","DOM","JAM","BLZ","PRI","GTM","HND","NIC","SLV","COL","ABW","ANT","VEN","CRI","PAN","ECU","BRA"],"data":{"ABW":{"AREA":0,"FIPS":"AA","ISO2":"AW","ISO3":"ABW","LAT":12.517,"LON":-69.977,"NAME":"Aruba","POP2005":102897,"REGION":19,"SUBREGION":29,"UN":533},"ANT":{"AREA":80,"FIPS":"NT","ISO2":"AN","ISO3":"ANT","LAT":12.123,"LON":-68.87,"NAME":"Netherlands Antilles","POP2005":186392,"REGION":19,"SUBREGION":29,"UN":530},"BHS":{"AREA":1001,"FIPS":"BF","ISO2":"BS","ISO3":"BHS","LAT":24.628,"LON":-78.014,"NAME":"Bahamas","POP2005":323295,"REGION":19,"SUBREGION":29,"UN":44},"BLZ":{"AREA":2281,"FIPS":"BH","ISO2":"BZ","ISO3":"BLZ","LAT":17.219,"LON":-88.602,"NAME":"Belize","POP2005":275546,"REGION":19,"SUBREGION":13,"UN":84},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"COL":{"AREA":103870,"FIPS":"CO","ISO2":"CO","ISO3":"COL","LAT":3.9,"LON":-73.076,"NAME":"Colombia","POP2005":4494579,"REGION":19,"SUBREGION":5,"UN":170},"CRI":{"AREA":5106,"FIPS":"CS","ISO2":"CR","ISO3":"CRI","LAT":9.971,"LON":-83.946,"NAME":"Costa Rica","POP2005":4327228,"REGION":19,"SUBREGION":13,"UN":188},"CUB":{"AREA":10982,"FIPS":"CU","ISO2":"CU","ISO3":"CUB","LAT":21.297,"LON":-77.781,"NAME":"Cuba","POP2005":11259905,"REGION":19,"SUBREGION":29,"UN":192},"CYM":{"AREA":26,"FIPS":"CJ","ISO2":"KY","ISO3":"CYM","LAT":19.314,"LON":-81.198,"NAME":"Cayman Islands","POP2005":45591,"REGION":19,"SUBREGION":29,"UN":136},"DOM":{"AREA":4838,"FIPS":"DR","ISO2":"DO","ISO3":"DOM","LAT":19.015,"LON":-70.729,"NAME":"Dominican Republic","POP2005":9469601,"REGION":19,"SUBREGION":29,"UN":214},"ECU":{"AREA":27684,"FIPS":"EC","ISO2":"EC","ISO3":"ECU","LAT":-1.385,"LON":-78.497,"NAME":"Ecuador","POP2005":13060993,"REGION":19,"SUBREGION":5,"UN":218},"GTM":{"AREA":10843,"FIPS":"GT","ISO2":"GT","ISO3":"GTM","LAT":15.256,"LON":-90.398,"NAME":"Guatemala","POP2005":12709564,"REGION":19,"SUBREGION":13,"UN":320},"HND":{"AREA":11189,"FIPS":"HO","ISO2":"HN","ISO3":"HND","LAT":14.819,"LON":-86.863,"NAME":"Honduras","POP2005":683411,"REGION":19,"SUBREGION":13,"UN":340},"HTI":{"AREA":2756,"FIPS":"HA","ISO2":"HT","ISO3":"HTI","LAT":19.142,"LON":-72.278,"NAME":"Haiti","POP2005":9296291,"REGION":19,"SUBREGION":29,"UN":332},"JAM":{"AREA":1083,"FIPS":"JM","ISO2":"JM","ISO3":"JAM","LAT":18.151,"LON":-77.32,"NAME":"Jamaica","POP2005":2682469,"REGION":19,"SUBREGION":29,"UN":388},"MEX":{"AREA":190869,"FIPS":"MX","ISO2":"MX","ISO3":"MEX","LAT":23.951,"LON":-102.535,"NAME":"Mexico","POP2005":104266392,"REGION":19,"SUBREGION":13,"UN":484},"NIC":{"AREA":12140,"FIPS":"NU","ISO2":"NI","ISO3":"NIC","LAT":12.84,"LON":-85.034,"NAME":"Nicaragua","POP2005":5462539,"REGION":19,"SUBREGION":13,"UN":558},"PAN":{"AREA":7443,"FIPS":"PM","ISO2":"PA","ISO3":"PAN","LAT":8.384,"LON":-80.92,"NAME":"Panama","POP2005":3231502,"REGION":19,"SUBREGION":13,"UN":591},"PRI":{"AREA":887,"FIPS":"RQ","ISO2":"PR","ISO3":"PRI","LAT":18.221,"LON":-66.466,"NAME":"Puerto Rico","POP2005":3946779,"REGION":19,"SUBREGION":29,"UN":630},"SLV":{"AREA":2072,"FIPS":"ES","ISO2":"SV","ISO3":"SLV","LAT":13.736,"LON":-88.866,"NAME":"El Salvador","POP2005":6668356,"REGION":19,"SUBREGION":13,"UN":222},"TCA":{"AREA":0,"FIPS":"TK","ISO2":"TC","ISO3":"TCA","LAT":21.902,"LON":-71.95,"NAME":"Turks and Caicos Islands","POP2005":24459,"REGION":19,"SUBREGION":29,"UN":796},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840},"VEN":{"AREA":88205,"FIPS":"VE","ISO2":"VE","ISO3":"VEN","LAT":7.125,"LON":-66.166,"NAME":"Venezuela","POP2005":26725573,"REGION":19,"SUBREGION":5,"UN":862}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_10_4.json b/test/fixtures/grids/plain_2_5_10_4.json new file mode 100644 index 0000000..8ef9594 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! ! !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!! !!!!!!!!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!"," ! !!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!!!!! !!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!!!!! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!!!!! !!!!!!!!!!!!!!# !! !!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!! !!!!!!!!!!## ! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!! !!!!!!!!!!##!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$ ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$ !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","$$ ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!! !!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["CAN","","SPM","USA"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"SPM":{"AREA":0,"FIPS":"SB","ISO2":"PM","ISO3":"SPM","LAT":47.042,"LON":-56.325,"NAME":"Saint Pierre and Miquelon","POP2005":6346,"REGION":19,"SUBREGION":21,"UN":666},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_11_4.json b/test/fixtures/grids/plain_2_5_11_4.json new file mode 100644 index 0000000..5793129 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!#########################"," !!!!!!!!!!!!!!!!!!!!!#########################"," ! !!!!!!!!!!!!!!!!!!!!!!!#########################"," !!! !!!!!!!!!!!!!!!!!!!!!!!#########################"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!########################"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!########################"," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!########################"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!########################"," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######################"," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##################","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#################"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!################"," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###############"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##############"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##############","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##############","!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#############","!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!############","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##########","!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!!#####","!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###","!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##","!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["CAN","","GRL"],"data":{"CAN":{"AREA":909351,"FIPS":"CA","ISO2":"CA","ISO3":"CAN","LAT":59.081,"LON":-109.433,"NAME":"Canada","POP2005":32270507,"REGION":19,"SUBREGION":21,"UN":124},"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_13_4.json b/test/fixtures/grids/plain_2_5_13_4.json new file mode 100644 index 0000000..4428f6b --- /dev/null +++ b/test/fixtures/grids/plain_2_5_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! ","!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," !!!! "," ! !!!!!!!! "," !!!!!!!!!!!!!!!! ","!! !!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! "],"keys":["GRL",""],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_2_3.json b/test/fixtures/grids/plain_2_5_2_3.json new file mode 100644 index 0000000..e50e5b2 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_2_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," ! "," ! !! "," "," "," "," "," !! "," !!!! "," !!!! "," "," "," "," "," "," "," "," # "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ATF","HMD"],"data":{"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"HMD":{"AREA":0,"FIPS":"HM","ISO2":"HM","ISO3":"HMD","LAT":-53.111,"LON":73.507,"NAME":"Heard Island and McDonald Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":334}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_3_3.json b/test/fixtures/grids/plain_2_5_3_3.json new file mode 100644 index 0000000..3d3addc --- /dev/null +++ b/test/fixtures/grids/plain_2_5_3_3.json @@ -0,0 +1 @@ +{"grid":[" ! "," "," "," "," "," "," ## "," "," "," "," $ "," "," "," ## "," % "," "," "," && ","' &&& "," &&&& "," &&&&& "," &&&&&& ","&&&&&&&& ","&&&&&&& ","&&&&&&&& ","&&&&&&& ","&&&&&&& ","&&&&&& ","&&&&&& % ","&&&&&& %% ","&&&&& (( ","&&&&& (( ","&&&&& ","&&&&& ","&&&& ","&&&& ","&&&& ","&& "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ) "," ) "," "," "," "," "],"keys":["","MDV","SYC","IOT","MUS","MDG","MYT","REU","ATF"],"data":{"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"IOT":{"AREA":0,"FIPS":"IO","ISO2":"IO","ISO3":"IOT","LAT":-7.335,"LON":72.416,"NAME":"British Indian Ocean Territory","POP2005":0,"REGION":0,"SUBREGION":0,"UN":86},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MDV":{"AREA":30,"FIPS":"MV","ISO2":"MV","ISO3":"MDV","LAT":3.548,"LON":72.92,"NAME":"Maldives","POP2005":295297,"REGION":142,"SUBREGION":34,"UN":462},"MUS":{"AREA":203,"FIPS":"MP","ISO2":"MU","ISO3":"MUS","LAT":-20.255,"LON":57.583,"NAME":"Mauritius","POP2005":1241173,"REGION":2,"SUBREGION":14,"UN":480},"MYT":{"AREA":0,"FIPS":"MF","ISO2":"YT","ISO3":"MYT","LAT":-12.777,"LON":45.155,"NAME":"Mayotte","POP2005":0,"REGION":2,"SUBREGION":14,"UN":175},"REU":{"AREA":250,"FIPS":"RE","ISO2":"RE","ISO3":"REU","LAT":-21.122,"LON":55.538,"NAME":"Reunion","POP2005":785159,"REGION":2,"SUBREGION":14,"UN":638},"SYC":{"AREA":46,"FIPS":"SE","ISO2":"SC","ISO3":"SYC","LAT":-4.647,"LON":55.474,"NAME":"Seychelles","POP2005":85532,"REGION":2,"SUBREGION":14,"UN":690}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_5_3.json b/test/fixtures/grids/plain_2_5_5_3.json new file mode 100644 index 0000000..5199eb0 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_5_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!! "," !!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!!!!!! !! "," !!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!! "," !!!!! !!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$###"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$"," %%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$"," %%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$"," %%%!!!!!!!!&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$"," %%%!!!!!!!!&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$"," %%%!!!!!!!!&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$"," %%%%!!!!!!!&&&&&&&&&!&&&&!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$"," %%%%!!!!!!!&&&&&&&&&&&&&&&!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$"," %%%%!!!!!!&&&&&&&&&&&&&&&!!!!!!!!!!!'!!!!!!!!!$$$$$$$$$$$$$"," %%%%%!(((!&&&&&&&&&&&&&&&!!!!!&&&''!'''''''!!!$$$$$$$$$$$$$",") %%%%(((((&&&(((&&&&&&&&&&!!!&&&&''''''''''''$$$$$$$$$$$$$$","))) **%%%(((((&&&(((&&&&&&&&&&&&&&&&&&&''''''''$$$$$$$$$$$$$$$$"],"keys":["RUS","KAZ","MNG","CHN","","UZB","KGZ","TKM","GEO","AZE"],"data":{"AZE":{"AREA":8260,"FIPS":"AJ","ISO2":"AZ","ISO3":"AZE","LAT":40.43,"LON":47.395,"NAME":"Azerbaijan","POP2005":8352021,"REGION":142,"SUBREGION":145,"UN":31},"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"GEO":{"AREA":6949,"FIPS":"GG","ISO2":"GE","ISO3":"GEO","LAT":42.176,"LON":43.518,"NAME":"Georgia","POP2005":4473409,"REGION":142,"SUBREGION":145,"UN":268},"KAZ":{"AREA":269970,"FIPS":"KZ","ISO2":"KZ","ISO3":"KAZ","LAT":48.16,"LON":67.301,"NAME":"Kazakhstan","POP2005":15210609,"REGION":142,"SUBREGION":143,"UN":398},"KGZ":{"AREA":19180,"FIPS":"KG","ISO2":"KG","ISO3":"KGZ","LAT":41.465,"LON":74.555,"NAME":"Kyrgyzstan","POP2005":5203547,"REGION":142,"SUBREGION":143,"UN":417},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"TKM":{"AREA":46993,"FIPS":"TX","ISO2":"TM","ISO3":"TKM","LAT":39.122,"LON":59.384,"NAME":"Turkmenistan","POP2005":4833266,"REGION":142,"SUBREGION":143,"UN":795},"UZB":{"AREA":42540,"FIPS":"UZ","ISO2":"UZ","ISO3":"UZB","LAT":41.75,"LON":63.17,"NAME":"Uzbekistan","POP2005":26593123,"REGION":142,"SUBREGION":143,"UN":860}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_6_4.json b/test/fixtures/grids/plain_2_5_6_4.json new file mode 100644 index 0000000..28c96c4 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!###############################"," $$$$$ $$$!!!!!!!!!!!!!!!!!!!!!##############################","%%$$$$$$ $$$$!!!!!!!!!!!!!!!!!!!!##############################","%%$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!##############################","%%$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!#############################","%$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!!##########################","%$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!!!!#######################&##","$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!!#####################&&&&&","$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!!!####################&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!!!###################&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!##################&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!##################&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!$################&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!$$################&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!$$###############&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!!$$$###############&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$!!!!!!!!!!$$##################&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$!!!!$!$####################&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$######################&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$#####################&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$#######################&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$#''###################&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$'''''##################&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$''''''################&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$''''''''##############&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$'''''''''############&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''#########&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$'''''''''''''#######&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''#####&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''####&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$'''''''''''''''##&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''''##&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$'''''''''''''''###&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''''#&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$''''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$&''''''''''''&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&'''''''''&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&''&'''&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&","$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&"],"keys":["BOL","PRY","BRA","ARG","CHL","","URY"],"data":{"ARG":{"AREA":273669,"FIPS":"AR","ISO2":"AR","ISO3":"ARG","LAT":-35.377,"LON":-65.167,"NAME":"Argentina","POP2005":38747148,"REGION":19,"SUBREGION":5,"UN":32},"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"CHL":{"AREA":74880,"FIPS":"CI","ISO2":"CL","ISO3":"CHL","LAT":-23.389,"LON":-69.433,"NAME":"Chile","POP2005":16295102,"REGION":19,"SUBREGION":5,"UN":152},"PRY":{"AREA":39730,"FIPS":"PA","ISO2":"PY","ISO3":"PRY","LAT":-23.236,"LON":-58.391,"NAME":"Paraguay","POP2005":5904342,"REGION":19,"SUBREGION":5,"UN":600},"URY":{"AREA":17502,"FIPS":"UY","ISO2":"UY","ISO3":"URY","LAT":-32.8,"LON":-56.012,"NAME":"Uruguay","POP2005":3325727,"REGION":19,"SUBREGION":5,"UN":858}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_7_3.json b/test/fixtures/grids/plain_2_5_7_3.json new file mode 100644 index 0000000..8673ae7 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_7_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!! "," !!! "," ! !!! "," !!!! !!!! "," !!!! "," !!!!!!!!! "," !!!!!!!!!! !"," !! ! !!!!!!!!! !! !"," !! !!!!!!! !!! !!! "," !!! !!!!!!! !!!!!!!!! !!! "," !!!!!!! !!!!!!!!!!!!!!!!! !!! ","!!!!!!!!!! ! !!!!!!!!!!!!!!! ","!!!!!!!!!! !!!!!!!!!!!!!! ","!!!!!!!! !!!!!!!!!!!!! "," !!!!! !!!!!!!!!!! ! "," !!!!!! !!!!!!!!!! ! "," !!!!!!! !! !!!!!!! "," !!!!! !!!! "," !! !!! "," "," !! "," !!! "," "," "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_7_4.json b/test/fixtures/grids/plain_2_5_7_4.json new file mode 100644 index 0000000..0c6983c --- /dev/null +++ b/test/fixtures/grids/plain_2_5_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!"," !!!!!"," !!!"," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," # "," ### ","##### ","##### ","##### ","###### ","####### ","######## ","########### ","############# ","############### ","################## ","################### ","################### ","#################### ","################### ","#################### ","#################### ","#################### ","######################### ","######################### ","######################### ","########################## ","########################### ","############################ ","########################### ","########################### ","#####################$$#### ","################$$$$$$$$$$ ","###############$$$$$$$$$$$$ ","###############$$$$$$$$$$$$ ","##############$$$$$$$$$$$$$ ","##############$$$$$$$$$$$$$$ ","##############$$$$$$$$$$$$$$ ","##############$$$$$$$$$$$$$$ ","##############$$$$$$$$$$$$$$ "],"keys":["BRA","","BOL","PRY"],"data":{"BOL":{"AREA":108438,"FIPS":"BL","ISO2":"BO","ISO3":"BOL","LAT":-16.715,"LON":-64.671,"NAME":"Bolivia","POP2005":9182015,"REGION":19,"SUBREGION":5,"UN":68},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"PRY":{"AREA":39730,"FIPS":"PA","ISO2":"PY","ISO3":"PRY","LAT":-23.236,"LON":-58.391,"NAME":"Paraguay","POP2005":5904342,"REGION":19,"SUBREGION":5,"UN":600}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_8_4.json b/test/fixtures/grids/plain_2_5_8_4.json new file mode 100644 index 0000000..52bd9fd --- /dev/null +++ b/test/fixtures/grids/plain_2_5_8_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," !! ","#######$$ ","####### % ","## ## $$ & ' "," () ' "," ))'' "," ** "," &&& "," && "," & "," + "," + "," ,, "," , "," - "," - "," .. / "," .. / "," . "," 00 "," 1 0 "," 11 1 "," 22 "," 11 111 22 ","1111 1111111222 ","111111 11111111 222 ","1111111111111111112 ","1111111111111111111 ","11111111111111111111 ","1111111111111111111 ","11111111111111111111113 ","111111111111111111111133 ","1111111111111111111111333 ","11111111111111111111333333 ","11111111111111111111133333 ","1111111111111111111113333333 ","11111111111111111113333333333 ","1111111111111111111333333333344 4444 ","1111111111111111111333333333344444444445 ","111111111111111111113333333344444444444555 ","11111111111111111111333333344444444444555555 ","111111111111111111113333333444444444445555555 ","1111111111111111111633333344444444444455555555 ","11111111111111111666663333444444444444555555556 ","11111111116611666666633333344444444444455555566 ","11111111116666666666633333344444444444455555666 ","111111111166666666666333333334444444445555556666 ","111111111116666666666333333334444444445555566666 ","1111111111116666666663333333334444644455555666666 ","11111111111666666666663333333344466666666666666666 ","611111111166666666666633333336666666666666666666666 ","611111111666666666666663336666666666666666666666666 ","66111116666666666666666666666666666666666666666666 ","66666166666666666666666666666666666666666666666666 ","6666666666666666666666666666666666666666666666666666 "],"keys":["","VGB","PRI","VIR","BLM","GLP","ATG","ANT","KNA","MSR","DMA","MTQ","LCA","VCT","BRB","GRD","VEN","TTO","GUY","SUR","GUF","BRA"],"data":{"ANT":{"AREA":80,"FIPS":"NT","ISO2":"AN","ISO3":"ANT","LAT":12.123,"LON":-68.87,"NAME":"Netherlands Antilles","POP2005":186392,"REGION":19,"SUBREGION":29,"UN":530},"ATG":{"AREA":44,"FIPS":"AC","ISO2":"AG","ISO3":"ATG","LAT":17.078,"LON":-61.783,"NAME":"Antigua and Barbuda","POP2005":83039,"REGION":19,"SUBREGION":29,"UN":28},"BLM":{"AREA":0,"FIPS":"TB","ISO2":"BL","ISO3":"BLM","LAT":18.04,"LON":-63.043,"NAME":"Saint Barthelemy","POP2005":0,"REGION":19,"SUBREGION":29,"UN":652},"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76},"BRB":{"AREA":43,"FIPS":"BB","ISO2":"BB","ISO3":"BRB","LAT":13.153,"LON":-59.559,"NAME":"Barbados","POP2005":291933,"REGION":19,"SUBREGION":29,"UN":52},"DMA":{"AREA":75,"FIPS":"DO","ISO2":"DM","ISO3":"DMA","LAT":15.475,"LON":-61.356,"NAME":"Dominica","POP2005":67827,"REGION":19,"SUBREGION":29,"UN":212},"GLP":{"AREA":169,"FIPS":"GP","ISO2":"GP","ISO3":"GLP","LAT":16.286,"LON":-61.441,"NAME":"Guadeloupe","POP2005":438403,"REGION":19,"SUBREGION":29,"UN":312},"GRD":{"AREA":34,"FIPS":"GJ","ISO2":"GD","ISO3":"GRD","LAT":12.118,"LON":-61.678,"NAME":"Grenada","POP2005":105237,"REGION":19,"SUBREGION":29,"UN":308},"GUF":{"AREA":8815,"FIPS":"FG","ISO2":"GF","ISO3":"GUF","LAT":3.924,"LON":-53.241,"NAME":"French Guiana","POP2005":192099,"REGION":19,"SUBREGION":5,"UN":254},"GUY":{"AREA":19685,"FIPS":"GY","ISO2":"GY","ISO3":"GUY","LAT":4.792,"LON":-58.974,"NAME":"Guyana","POP2005":739472,"REGION":19,"SUBREGION":5,"UN":328},"KNA":{"AREA":36,"FIPS":"SC","ISO2":"KN","ISO3":"KNA","LAT":17.34,"LON":-62.769,"NAME":"Saint Kitts and Nevis","POP2005":49138,"REGION":19,"SUBREGION":29,"UN":659},"LCA":{"AREA":61,"FIPS":"ST","ISO2":"LC","ISO3":"LCA","LAT":13.898,"LON":-60.969,"NAME":"Saint Lucia","POP2005":16124,"REGION":19,"SUBREGION":29,"UN":662},"MSR":{"AREA":10,"FIPS":"MH","ISO2":"MS","ISO3":"MSR","LAT":16.736,"LON":-62.187,"NAME":"Montserrat","POP2005":5628,"REGION":19,"SUBREGION":29,"UN":500},"MTQ":{"AREA":106,"FIPS":"MB","ISO2":"MQ","ISO3":"MTQ","LAT":14.653,"LON":-61.021,"NAME":"Martinique","POP2005":395896,"REGION":19,"SUBREGION":29,"UN":474},"PRI":{"AREA":887,"FIPS":"RQ","ISO2":"PR","ISO3":"PRI","LAT":18.221,"LON":-66.466,"NAME":"Puerto Rico","POP2005":3946779,"REGION":19,"SUBREGION":29,"UN":630},"SUR":{"AREA":15600,"FIPS":"NS","ISO2":"SR","ISO3":"SUR","LAT":4.127,"LON":-55.912,"NAME":"Suriname","POP2005":452468,"REGION":19,"SUBREGION":5,"UN":740},"TTO":{"AREA":513,"FIPS":"TD","ISO2":"TT","ISO3":"TTO","LAT":10.468,"LON":-61.253,"NAME":"Trinidad and Tobago","POP2005":1323722,"REGION":19,"SUBREGION":29,"UN":780},"VCT":{"AREA":39,"FIPS":"VC","ISO2":"VC","ISO3":"VCT","LAT":13.248,"LON":-61.194,"NAME":"Saint Vincent and the Grenadines","POP2005":119137,"REGION":19,"SUBREGION":29,"UN":670},"VEN":{"AREA":88205,"FIPS":"VE","ISO2":"VE","ISO3":"VEN","LAT":7.125,"LON":-66.166,"NAME":"Venezuela","POP2005":26725573,"REGION":19,"SUBREGION":5,"UN":862},"VGB":{"AREA":15,"FIPS":"VI","ISO2":"VG","ISO3":"VGB","LAT":18.483,"LON":-64.39,"NAME":"British Virgin Islands","POP2005":22016,"REGION":19,"SUBREGION":29,"UN":92},"VIR":{"AREA":35,"FIPS":"VQ","ISO2":"VI","ISO3":"VIR","LAT":17.741,"LON":-64.785,"NAME":"United States Virgin Islands","POP2005":111408,"REGION":19,"SUBREGION":29,"UN":850}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_5_9_4.json b/test/fixtures/grids/plain_2_5_9_4.json new file mode 100644 index 0000000..08b3fd1 --- /dev/null +++ b/test/fixtures/grids/plain_2_5_9_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","BMU"],"data":{"BMU":{"AREA":5,"FIPS":"BD","ISO2":"BM","ISO3":"BMU","LAT":32.336,"LON":-64.709,"NAME":"Bermuda","POP2005":64174,"REGION":19,"SUBREGION":21,"UN":60}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_10_4.json b/test/fixtures/grids/plain_2_6_10_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_10_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_11_4.json b/test/fixtures/grids/plain_2_6_11_4.json new file mode 100644 index 0000000..7fdf633 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["GRL","","ISL"],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304},"ISL":{"AREA":10025,"FIPS":"IC","ISO2":"IS","ISO3":"ISL","LAT":64.764,"LON":-18.48,"NAME":"Iceland","POP2005":295732,"REGION":150,"SUBREGION":154,"UN":352}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_12_4.json b/test/fixtures/grids/plain_2_6_12_4.json new file mode 100644 index 0000000..9f93582 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_12_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," !! "," "," "," !"," "," ! "," "," "," "," "," "," ! "," ! "," "," "," "," "," "," "," "," "," ! "," ! "," !! "," !!! "," !!! "," !! "," !!! "," ! !!!! "," !!!!!"," !!!"," "," "," "," !"," !!"," !!!"," !!!!!"," !!!!!!"," !!!!!!!"," !!!!!!!"," !!!!!!!!"," !!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["GRL",""],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_13_4.json b/test/fixtures/grids/plain_2_6_13_4.json new file mode 100644 index 0000000..f123461 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["GRL"],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_14_4.json b/test/fixtures/grids/plain_2_6_14_4.json new file mode 100644 index 0000000..403889e --- /dev/null +++ b/test/fixtures/grids/plain_2_6_14_4.json @@ -0,0 +1 @@ +{"grid":[" ! "," ! "," "," "," "," "," ! "," "," "," !!!!"," !!!!!"," !!!!! !!!!!!"," !!!!!!!!!!!!!!!!!!!! "," !!!!!! !!!!!!!! "," !!! !! "," !! !! "," !!! !! ","! ! !! "," !! !! "," ! !!! "," "," ! "," ! "," ! "," !! "," "," "," "," "," "," !"," "," ! "," ! "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["GRL",""],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_2_3.json b/test/fixtures/grids/plain_2_6_2_3.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_2_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_4_4.json b/test/fixtures/grids/plain_2_6_4_4.json new file mode 100644 index 0000000..b379718 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," ! "," "," ! "," "," !! "," "," "," "," ! "," "," "," !! "," !! "," "," "," ! "," "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","SGS"],"data":{"SGS":{"AREA":0,"FIPS":"SX","ISO2":"GS","ISO3":"SGS","LAT":-54.209,"LON":-36.891,"NAME":"South Georgia South Sandwich Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":239}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_5_3.json b/test/fixtures/grids/plain_2_6_5_3.json new file mode 100644 index 0000000..69968aa --- /dev/null +++ b/test/fixtures/grids/plain_2_6_5_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!! "," !!!!!! "," !!!!!!! "," !!!!!!! "," ### !!!!!!!!! "," ##### !!!!!!!!! "," ##### !!!!!!!!!!! "," #### ###### ## !!!!!!!!!!! ","########## ############## ##### !!!!!!!!!!!! ","########################## #######!!!!!!!!!!!!!!!!! ","######################################!!!!!!!!!!!!!!!!!!! ","#####################################!!##!!!!!!!!!!!!!!!! ","##########################################!!!!!!!!!!!!!!!! !! ","###########################################!!!!!!!!!!!!!!!!!!! ","!##########################################!!!!!!!!!!!!!!!!!!! ","!#######################################!!!!!!!!!!!!!!!!!!!!!! ","######################################!!!!!!!!!!!!!!!!!!!!!!! ","#####################################!!!!!!!!!!!!!!!!!!!!!! ","!!!################################!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!#########################!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!#########################!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!#######################!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!######################!!!!!!!!!!!!!!!!!!!!!!!!!!$ %","!!!!!!!!!!!!!!!!############!!!!!!!!!!!!!!!!!!!!!!!!!!$$$ %%%%%","!!!!!!!!!!!!!!!!!!#####!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$$%%%%%%%","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$%%%%%%%"],"keys":["RUS","CHN","MNG","PRK",""],"data":{"CHN":{"AREA":932743,"FIPS":"CH","ISO2":"CN","ISO3":"CHN","LAT":33.42,"LON":106.514,"NAME":"China","POP2005":1312978855,"REGION":142,"SUBREGION":30,"UN":156},"MNG":{"AREA":156650,"FIPS":"MG","ISO2":"MN","ISO3":"MNG","LAT":46.056,"LON":102.876,"NAME":"Mongolia","POP2005":2580704,"REGION":142,"SUBREGION":30,"UN":496},"PRK":{"AREA":12041,"FIPS":"KN","ISO2":"KP","ISO3":"PRK","LAT":39.778,"LON":126.451,"NAME":"Korea, Democratic People's Republic of","POP2005":23615611,"REGION":142,"SUBREGION":30,"UN":408},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_6_4.json b/test/fixtures/grids/plain_2_6_6_4.json new file mode 100644 index 0000000..2cd204f --- /dev/null +++ b/test/fixtures/grids/plain_2_6_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["BRA",""],"data":{"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_7_3.json b/test/fixtures/grids/plain_2_6_7_3.json new file mode 100644 index 0000000..0dbb58f --- /dev/null +++ b/test/fixtures/grids/plain_2_6_7_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ","!! !! ","!!! !!!!! ","!! !!!!!! "," !!!!!!!! "," !!!!!!!!! "," !!!!!!!!! "," !!!!!!!! "," !!!!!!!!! "," !!!!!!!!! "," !!!!!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!!!!!!!!!!!!! "," !!! !!!!!!!!! !!! "," !!!!!!!! !!!! "],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_7_4.json b/test/fixtures/grids/plain_2_6_7_4.json new file mode 100644 index 0000000..f7250b8 --- /dev/null +++ b/test/fixtures/grids/plain_2_6_7_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," ","! ","! ","!! ","!!!!!! ","!!!!!!!!!! !! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!! ","!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!! ","!!!!!!!!!!!! ","!!!!!!!!!!!! ","!!!!!!!!!!!! "],"keys":["","BRA"],"data":{"BRA":{"AREA":845942,"FIPS":"BR","ISO2":"BR","ISO3":"BRA","LAT":-10.772,"LON":-53.089,"NAME":"Brazil","POP2005":186830759,"REGION":19,"SUBREGION":5,"UN":76}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_6_9_4.json b/test/fixtures/grids/plain_2_6_9_4.json new file mode 100644 index 0000000..3c0c78f --- /dev/null +++ b/test/fixtures/grids/plain_2_6_9_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," !! "," "," "," !! !! "," !!! "," "," !!! "," "," "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","PRT"],"data":{"PRT":{"AREA":9150,"FIPS":"PO","ISO2":"PT","ISO3":"PRT","LAT":40.309,"LON":-8.058,"NAME":"Portugal","POP2005":10528226,"REGION":150,"SUBREGION":39,"UN":620}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_10_4.json b/test/fixtures/grids/plain_2_7_10_4.json new file mode 100644 index 0000000..aeb6723 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!! "," ## !!!!!!!!!!!!! "," ####!!!!!!!!!!!!!!!! "," ###!!!!!! !!!!!!!!!!!! "," ###!!!!!! !!!!!!!!!!!! "," ###!!!!!!!!!!! !!!!!!!!! "," #!!!!!!!!! $ !!!!!!!!!! "," ######!!!!!!!! $$ !!!!!!!!!!"," ########!!!!!! $$ !!!!!!!!!!"," ############ !!!!!!!!!"," ############# !!!!!!!!!"," ############# ! !!!!!!!!!!"," ############ !!!!!!!!!!!!!!"," ########## !!!!!!!!!!!!!!"," ########### !!!!!!!!!!!!!!"," ############ !!!!!!!!!!!!"," ############# !!!!!!!!!!!!"," ############ !!!!!!!!!!!!!!"," ######### !!!!!!!!!!!!!!!"," ####### !!!!!!!!!!!!!!!"," ##### ! !!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," !!!!!!!!!!!! "," !!!!! "," !!!! !! "," !!!! "," %%% "," & %%%% "," ''%%%%%"," %%%%%"," %%%% %%%%%%"," %%%%%%%%%%%%%%%"," %%%%%%%%%%%%%%%"," %%%%%%%%%%%%%%"," %%%%%%%%%%%%%"," %%%%%%%%%%"," %%%%%%%%%%"," %%%%%%%"," %%%%%%%"," %%%%%%%"," %%%%%%"," %%%%%"," %%%%"," %%%%"," %%%%"," %%%%"," %%%%"," %%%%"," %%%%"," %%%%"," %%%%%"," (((( (( %%%%%"," (((((((((((((((((((((%%%%%"," ((((((((((((((((((((((((%%%"," ((((((((((((((((((((((((((("," (((((((((((((((((((((((((("," (((((((((((((((((((((((((("," (((((((((((((((((((((((((("," (((((((((((((((((((((((((("," )))))))((((((((((((((((((("," )))))))((((((((((((((((((("," )))))(((((((((((((((((((("],"keys":["","GBR","IRL","IMN","FRA","GGY","JEY","ESP","PRT"],"data":{"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"GGY":{"AREA":0,"FIPS":"GK","ISO2":"GG","ISO3":"GGY","LAT":49.459,"LON":-2.576,"NAME":"Guernsey","POP2005":0,"REGION":150,"SUBREGION":154,"UN":831},"IMN":{"AREA":0,"FIPS":"IM","ISO2":"IM","ISO3":"IMN","LAT":54.229,"LON":-4.527,"NAME":"Isle of Man","POP2005":78357,"REGION":150,"SUBREGION":154,"UN":833},"IRL":{"AREA":6889,"FIPS":"EI","ISO2":"IE","ISO3":"IRL","LAT":53.177,"LON":-8.152,"NAME":"Ireland","POP2005":4143294,"REGION":150,"SUBREGION":154,"UN":372},"JEY":{"AREA":0,"FIPS":"JE","ISO2":"JE","ISO3":"JEY","LAT":49.219,"LON":-2.129,"NAME":"Jersey","POP2005":0,"REGION":150,"SUBREGION":154,"UN":832},"PRT":{"AREA":9150,"FIPS":"PO","ISO2":"PT","ISO3":"PRT","LAT":40.309,"LON":-8.058,"NAME":"Portugal","POP2005":10528226,"REGION":150,"SUBREGION":39,"UN":620}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_11_4.json b/test/fixtures/grids/plain_2_7_11_4.json new file mode 100644 index 0000000..8e2582c --- /dev/null +++ b/test/fixtures/grids/plain_2_7_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!!$$$$$$$!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!!$$$$$$$!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$!$$$$$$$!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$!$$$$$$$!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!!$$!!$$$$$$$$$!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$$$$!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$$$$$$$$$$$$$!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$!$$$$$$$$$$$$$$!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$$$$$$$$!!!!!"],"keys":["ISL","","FRO","GBR"],"data":{"FRO":{"AREA":0,"FIPS":"FO","ISO2":"FO","ISO3":"FRO","LAT":62.05,"LON":-6.864,"NAME":"Faroe Islands","POP2005":48205,"REGION":150,"SUBREGION":154,"UN":234},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"ISL":{"AREA":10025,"FIPS":"IC","ISO2":"IS","ISO3":"ISL","LAT":64.764,"LON":-18.48,"NAME":"Iceland","POP2005":295732,"REGION":150,"SUBREGION":154,"UN":352}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_12_4.json b/test/fixtures/grids/plain_2_7_12_4.json new file mode 100644 index 0000000..8ce3f08 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_12_4.json @@ -0,0 +1 @@ +{"grid":[" ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!###!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!##!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["GRL","","SJM","ISL"],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304},"ISL":{"AREA":10025,"FIPS":"IC","ISO2":"IS","ISO3":"ISL","LAT":64.764,"LON":-18.48,"NAME":"Iceland","POP2005":295732,"REGION":150,"SUBREGION":154,"UN":352},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_14_4.json b/test/fixtures/grids/plain_2_7_14_4.json new file mode 100644 index 0000000..203eef8 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_14_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!! !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["GRL",""],"data":{"GRL":{"AREA":41045,"FIPS":"GL","ISO2":"GL","ISO3":"GRL","LAT":74.719,"LON":-41.391,"NAME":"Greenland","POP2005":57475,"REGION":19,"SUBREGION":21,"UN":304}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_2_3.json b/test/fixtures/grids/plain_2_7_2_3.json new file mode 100644 index 0000000..df6ca4a --- /dev/null +++ b/test/fixtures/grids/plain_2_7_2_3.json @@ -0,0 +1 @@ +{"grid":[" !!!!!! ####### "," !!!!!! ##### # "," !!!!! ##### "," !!!!! ##### "," !!!! ##### "," ! ######## "," ####### "," ####### "," ####### "," ####### "," ###### "," #### "," ## "," # "," # "," "," "," # "," "," ## "," ## "," "," "," # "," # "," "," "," "," !! "," ! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","AUS","NZL"],"data":{"AUS":{"AREA":768230,"FIPS":"AS","ISO2":"AU","ISO3":"AUS","LAT":-24.973,"LON":136.189,"NAME":"Australia","POP2005":20310208,"REGION":9,"SUBREGION":53,"UN":36},"NZL":{"AREA":26799,"FIPS":"NZ","ISO2":"NZ","ISO3":"NZL","LAT":-42.634,"LON":172.235,"NAME":"New Zealand","POP2005":4097112,"REGION":9,"SUBREGION":53,"UN":554}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_4_3.json b/test/fixtures/grids/plain_2_7_4_3.json new file mode 100644 index 0000000..5ca6412 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_4_3.json @@ -0,0 +1 @@ +{"grid":[" !!!! "," !!!! "," !!!! "," !!!! "," ! !!!! "," !!!!! "," !!!!!!! "," !!!!!!! "," !!!!!!! ","!!!!!!!!! ","!!!!!!!! ","!!!!!!! ","!!! ! ","!! ! "," ! "," "," "," "," "," "," "," "," ! "," ! "," ! "," "," ! "," ! "," "," "," "," "," "," "," # "," # $ "," # "," # "," # "," "," # "," "," # "," # "," %% "," "," "," & "," "," "," ' & "," ' "," & "," ' && & "," ' '' "," "," ' ' "," "," "," ( "," "," (( "," ( "," (( "],"keys":["","JPN","MNP","UMI","GUM","MHL","FSM","KIR"],"data":{"FSM":{"AREA":70,"FIPS":"FM","ISO2":"FM","ISO3":"FSM","LAT":6.883,"LON":158.235,"NAME":"Micronesia, Federated States of","POP2005":110058,"REGION":9,"SUBREGION":57,"UN":583},"GUM":{"AREA":55,"FIPS":"GQ","ISO2":"GU","ISO3":"GUM","LAT":13.385,"LON":144.707,"NAME":"Guam","POP2005":16857,"REGION":9,"SUBREGION":57,"UN":316},"JPN":{"AREA":36450,"FIPS":"JA","ISO2":"JP","ISO3":"JPN","LAT":36.491,"LON":139.068,"NAME":"Japan","POP2005":12789674,"REGION":142,"SUBREGION":30,"UN":392},"KIR":{"AREA":73,"FIPS":"KR","ISO2":"KI","ISO3":"KIR","LAT":-1.508,"LON":175.036,"NAME":"Kiribati","POP2005":92003,"REGION":9,"SUBREGION":57,"UN":296},"MHL":{"AREA":0,"FIPS":"RM","ISO2":"MH","ISO3":"MHL","LAT":7.595,"LON":168.963,"NAME":"Marshall Islands","POP2005":5672,"REGION":9,"SUBREGION":57,"UN":584},"MNP":{"AREA":0,"FIPS":"CQ","ISO2":"MP","ISO3":"MNP","LAT":15.005,"LON":145.623,"NAME":"Northern Mariana Islands","POP2005":80258,"REGION":9,"SUBREGION":57,"UN":580},"UMI":{"AREA":0,"FIPS":"","ISO2":"UM","ISO3":"UMI","LAT":-0.385,"LON":-160.027,"NAME":"United States Minor Outlying Islands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":581}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_4_4.json b/test/fixtures/grids/plain_2_7_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_5_3.json b/test/fixtures/grids/plain_2_7_5_3.json new file mode 100644 index 0000000..10d5224 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_5_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," !"," !!"," !"," !"," !"," "," "," "," ! !!!!!"," !!!!!!!"," !!! !!!!!!!!!"," !!!! !! !!!!!!!!!!"," !!!!! ! !!!!!!!!!!!"," !!!!!!!! !!!!!!!!!!!!"," !!!!!!!!! !!! !!!!!!!!!!!!!"," !!!!!!!! ! !!!!!!!!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!! !!! ! !!!!!! !!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!! ! !!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!!!!! !!!!!!! !!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!##!!!!!!!!!"," !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!###!!!!!!!!"," !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!##!!#!#!!!"," !!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!####"," !!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!##"," ! !!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ! ! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!! !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!! !!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!$$$!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!$$$!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!$$$$$$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!!!$$$$$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," !!!!!!$$$$$$$$ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!$$$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!$$$$$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!$$!!$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!$$$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["RUS","","USA","JPN"],"data":{"JPN":{"AREA":36450,"FIPS":"JA","ISO2":"JP","ISO3":"JPN","LAT":36.491,"LON":139.068,"NAME":"Japan","POP2005":12789674,"REGION":142,"SUBREGION":30,"UN":392},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"USA":{"AREA":915896,"FIPS":"US","ISO2":"US","ISO3":"USA","LAT":39.622,"LON":-98.606,"NAME":"United States","POP2005":299846449,"REGION":19,"SUBREGION":21,"UN":840}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_5_4.json b/test/fixtures/grids/plain_2_7_5_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_6_3.json b/test/fixtures/grids/plain_2_7_6_3.json new file mode 100644 index 0000000..9c778a2 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_6_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," "," !! "," !! "," "," ! !! "," !!!! !!! !! ","! !!!! !!!!! ","!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!! !!!!!!! "," !!!!!!!!!! !!!!! "," !!! !! "," ","! !! ","!! !! "," ! !!!! "," !!!! "," !!!!!!! "," !!!!!!! "," ! "," !!! "," !!!!!! "," !!!!!!!!!!! "," !!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!! "," ! !!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!! !","!!!!!!!!!!!!!!!!!!!!!!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! !!!!! !! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!! !!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"],"keys":["","RUS"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_6_4.json b/test/fixtures/grids/plain_2_7_6_4.json new file mode 100644 index 0000000..15b7697 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_6_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," "," "," "," "," "," "," "," "," "," "," "," ! "," "," "],"keys":["","SHN"],"data":{"SHN":{"AREA":0,"FIPS":"SH","ISO2":"SH","ISO3":"SHN","LAT":-15.953,"LON":-5.71,"NAME":"Saint Helena","POP2005":6399,"REGION":2,"SUBREGION":11,"UN":654}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_7_3.json b/test/fixtures/grids/plain_2_7_7_3.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_7_3.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_7_8_4.json b/test/fixtures/grids/plain_2_7_8_4.json new file mode 100644 index 0000000..cd07018 --- /dev/null +++ b/test/fixtures/grids/plain_2_7_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!####################$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!####################$$$$$$$$$$$$$$$$$"," !###############################$$$$$$$$$$$$$$$$$"," !###############################$$$$$$$$$$$$$$$$$"," ###############################$$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$$"," ###############################$$$$$$$$$$$$$$$$"," ###############################$$$$$$$$$$$$$$$$"," ###############################$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$"," ##############################$$$$$$$$$$$$$$$$"," ###############################$$$$$$$$$$$$$$$$"," ####%%%########################$$$$$$$$$$$$$$$$"," #%%%%%%%%########################$$$$$$$$$$$$$$$"," %%%%%%%%%%#######################$$$$$$$$$$$$$$$"," %%%%%%%%%%%######################$$$$$$$$$$$$$$$"," %%%%%%%%%%%%#####################$$$$$$$$$$$$$$$"," %%%%%%%%%%%%%%##$##$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&"," %%%%%%%%%%%%%%%%#$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&"," %%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&"," %%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&"," %%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&"," '''%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&"," %%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&"," %%%%%%%%%%%%%%%%$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&"," %%%%((((((%%%%%%$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&"," (((((((())))))$$$$$$)$$$$$$$$$$$&&&&&&&&&&&&&&&"," (((((((()))))))))))))$$$$$$$$$$&&&&&&&&&&&&&&&&"," (((((())))))))))))))))$$$$$$$$$&&&&&&&&&&&&&&&&"," (( (()))))))))))))))))$$$$$$$$$&&&&&&&&&&&&&&&&"," )))))))))))))))))))$$$$$$$$&&&&&&&&*******+"," ))))))))))))))))))$$$$$$$$&&&&&&&&&*******"," ))))),,,,,)))))))---------&&&&&&&&*******"," ))),,,,,,,))))))----------&&---&&*******"," ),,,,,,,,))))))---------------&&*******"," ,,,,,,,,)))))))----------------*******"," ,,,,,,,,,..)))-----------------*******"," ,,,,,,,,,...))-----------------*******"," ,,,,,,,....))-----------------*******"," ,,,,,,,.......---------------********"," ,,,,,........---------------********"," ,,.........---------------********"," .........--------------*********"," .........--------------********"," ........-------------********"," .......--------------*******"," ......--------------***** "," .....---- ** "," ...- "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ESH","MRT","MLI","SEN","BFA","GMB","GNB","GIN","GHA","TGO","SLE","CIV","LBR"],"data":{"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"CIV":{"AREA":31800,"FIPS":"IV","ISO2":"CI","ISO3":"CIV","LAT":7.632,"LON":-5.556,"NAME":"Cote d'Ivoire","POP2005":18584701,"REGION":2,"SUBREGION":11,"UN":384},"ESH":{"AREA":0,"FIPS":"WI","ISO2":"EH","ISO3":"ESH","LAT":24.554,"LON":-13.706,"NAME":"Western Sahara","POP2005":440428,"REGION":2,"SUBREGION":15,"UN":732},"GHA":{"AREA":22754,"FIPS":"GH","ISO2":"GH","ISO3":"GHA","LAT":7.96,"LON":-1.207,"NAME":"Ghana","POP2005":2253501,"REGION":2,"SUBREGION":11,"UN":288},"GIN":{"AREA":24572,"FIPS":"GV","ISO2":"GN","ISO3":"GIN","LAT":10.439,"LON":-10.942,"NAME":"Guinea","POP2005":9002656,"REGION":2,"SUBREGION":11,"UN":324},"GMB":{"AREA":1000,"FIPS":"GA","ISO2":"GM","ISO3":"GMB","LAT":13.453,"LON":-15.386,"NAME":"Gambia","POP2005":1617029,"REGION":2,"SUBREGION":11,"UN":270},"GNB":{"AREA":2812,"FIPS":"PU","ISO2":"GW","ISO3":"GNB","LAT":12.125,"LON":-14.651,"NAME":"Guinea-Bissau","POP2005":1596929,"REGION":2,"SUBREGION":11,"UN":624},"LBR":{"AREA":9632,"FIPS":"LI","ISO2":"LR","ISO3":"LBR","LAT":6.682,"LON":-9.657,"NAME":"Liberia","POP2005":3441796,"REGION":2,"SUBREGION":11,"UN":430},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"MRT":{"AREA":102522,"FIPS":"MR","ISO2":"MR","ISO3":"MRT","LAT":20.26,"LON":-10.332,"NAME":"Mauritania","POP2005":2963105,"REGION":2,"SUBREGION":11,"UN":478},"SEN":{"AREA":19253,"FIPS":"SG","ISO2":"SN","ISO3":"SEN","LAT":15.013,"LON":-14.881,"NAME":"Senegal","POP2005":1177034,"REGION":2,"SUBREGION":11,"UN":686},"SLE":{"AREA":7162,"FIPS":"SL","ISO2":"SL","ISO3":"SLE","LAT":8.56,"LON":-11.792,"NAME":"Sierra Leone","POP2005":5586403,"REGION":2,"SUBREGION":11,"UN":694},"TGO":{"AREA":5439,"FIPS":"TO","ISO2":"TG","ISO3":"TGO","LAT":8.799,"LON":1.081,"NAME":"Togo","POP2005":6238572,"REGION":2,"SUBREGION":11,"UN":768}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_10_4.json b/test/fixtures/grids/plain_2_8_10_4.json new file mode 100644 index 0000000..1ba1c11 --- /dev/null +++ b/test/fixtures/grids/plain_2_8_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!##### $$$$$"," !!!!!!!!!!!!!##### $$$$$"," !!!!!!!!!!!!! ## !! %%%$$"," &&!!!!!!! !!! !!! %%%%%%"," &&&&&&!!!!!!! ''' %%%%%%%%"," &&&&&& !!!!! && ''''''' %%%%%%%%"," &&&&&&&&& &&&& '''''''''%%%%%%%%%"," &&&&&&&& &&&&&&& ''''''''''''''''%%%%%"," &&&&&&&&&&&&&&&&&&'''''''''''''''''''''''"," &&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","( &&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","( ))))))&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","( ))))))))&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","(((( ))))))))&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","((((( ))))))))&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''''","((((( ))))))))&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","((((( )))))))))&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","((((( )))))))))&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","((((( )))))))))&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","(((( ))))))))&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","((( )))))))))&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''","(((( **))))*))))&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''","(((( ++*********))&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''","((( +++*********))&&&&&&&&&&&&&&&&&&&&&&&&''''''''''''''''''''''"," ++++**********&&&&&&&&&&&&&&&&&&&&&,,,,,,'''''''''''''''''''"," +++++**********&&&&&&&&&&&&&&&&&&&,,,,,,,,''''''''''''''''''"," ++++++++*****--&&&&&&&&&&&&&&&&&&,,,,,,,,,,''''''''''''''''''"," ++++++++++*****---&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,''''''''''''''","+++++++++++++***---&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,,''''''''''''","+++++++++++++++*---&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,,,.'''''''''''","++++++++++++++++++&&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,,,.....''.'..''","++++++++++++++++++++&&&&&&&&&&&&&&&&&&&,,,,,,,,,,,............./","++++++++++++++++++++++&&&&&&&&&&&&&&&&&&,,,0,,,,.............../","++++++++++++++++++++++&&&&&&&&&&&&&&&&&&,,00000................/","+++++++++++++++++++++&&&&&&&&&&&&&&&&&&00000000............11../","+++++++++++++++++++++&&&&&&&&&&&&&&&&00000000000..........111111","+++++++++++++++++++++&&&2&&&&&&&&&&&&000000000111.....1111111113","+++++++++++++++++++++2222222&&&&&&&&&&0000000011111..11111111133","+++++++++++++++++++222222222&&0&&000&&00000000111111111111111133","++++++++++++++++++2222222222000000400000000000111111111111111333","++++++++++++++++++2222222222224444400000000005511111111111111333","+++++++++++++++++22222222222224444444440005555511111111111113333","+++++++++++++++++22222222222224444444455555555551111111111113333","++++++++++++++++22+222222222244444444455555555661111111777333333","+++++++++++++++++++222244244444444444455555556666111177777733333","+++++++++++++++++++444444444444444444455555566666611177777773333","+++++++++++++++++++444444444444444444 55555566666666677777773333","++++++++++++++++++44444444444444444 66666666666666667777777733","++++++++++++++++++444444444444444444 66666666688868867777777733","+++++++++++++++++++44444444444444444 6666666888888887777777777","+++++++++++++++++++44444444444444444 666666688888887777777777","+++++++++++++++++++444444 4444444444 6666688888887777777777","+++++++++++++++++++++444 4444444944 6666668888887777777777","+++++++++++++++++++++:4 4444444444 666666888888777777777","+++++++++++++++++++++ 4444444444 66666888;7777777777","++++++++++ ++++ 4 44444444444 66666688;;777777777","+<<++++++ + +4444444444444 6666668;;;;77777777","<<<<<=+++ ++++4444444444444 66666;;;;77777777","<<<<<<<<<< ++++ 4444444444444 6;;;;;7777777","<<<<<<<<<< ++++ 4444444444 ;;;>>7777??","<<<<<<<<<< +++ 4444444444444 ;;>>77????","<<<<<<<<< +++ 444444444444 >>>??????","<<<<<<< +4 444444444444 >>>??????","<<<<<< 4 444 44444444444 >>>??????"],"keys":["","DNK","SWE","LTU","RUS","DEU","POL","GBR","NLD","BEL","FRA","CZE","LUX","SVK","UKR","AUT","HUN","CHE","ROU","ITA","SVN","HRV","SRB","BIH","SMR","MCO","MNE","ESP","AND","ALB","MKD"],"data":{"ALB":{"AREA":2740,"FIPS":"AL","ISO2":"AL","ISO3":"ALB","LAT":41.143,"LON":20.068,"NAME":"Albania","POP2005":3153731,"REGION":150,"SUBREGION":39,"UN":8},"AND":{"AREA":0,"FIPS":"AN","ISO2":"AD","ISO3":"AND","LAT":42.549,"LON":1.576,"NAME":"Andorra","POP2005":73483,"REGION":150,"SUBREGION":39,"UN":20},"AUT":{"AREA":8245,"FIPS":"AU","ISO2":"AT","ISO3":"AUT","LAT":47.683,"LON":14.912,"NAME":"Austria","POP2005":8291979,"REGION":150,"SUBREGION":155,"UN":40},"BEL":{"AREA":0,"FIPS":"BE","ISO2":"BE","ISO3":"BEL","LAT":50.643,"LON":4.664,"NAME":"Belgium","POP2005":10398049,"REGION":150,"SUBREGION":155,"UN":56},"BIH":{"AREA":5120,"FIPS":"BK","ISO2":"BA","ISO3":"BIH","LAT":44.169,"LON":17.786,"NAME":"Bosnia and Herzegovina","POP2005":3915238,"REGION":150,"SUBREGION":39,"UN":70},"CHE":{"AREA":4000,"FIPS":"SZ","ISO2":"CH","ISO3":"CHE","LAT":46.861,"LON":7.908,"NAME":"Switzerland","POP2005":7424389,"REGION":150,"SUBREGION":155,"UN":756},"CZE":{"AREA":7727,"FIPS":"EZ","ISO2":"CZ","ISO3":"CZE","LAT":49.743,"LON":15.338,"NAME":"Czech Republic","POP2005":10191762,"REGION":150,"SUBREGION":151,"UN":203},"DEU":{"AREA":34895,"FIPS":"GM","ISO2":"DE","ISO3":"DEU","LAT":51.11,"LON":9.851,"NAME":"Germany","POP2005":82652369,"REGION":150,"SUBREGION":155,"UN":276},"DNK":{"AREA":4243,"FIPS":"DA","ISO2":"DK","ISO3":"DNK","LAT":56.058,"LON":9.264,"NAME":"Denmark","POP2005":5416945,"REGION":150,"SUBREGION":154,"UN":208},"ESP":{"AREA":49904,"FIPS":"SP","ISO2":"ES","ISO3":"ESP","LAT":40.227,"LON":-3.649,"NAME":"Spain","POP2005":43397491,"REGION":150,"SUBREGION":39,"UN":724},"FRA":{"AREA":55010,"FIPS":"FR","ISO2":"FR","ISO3":"FRA","LAT":46.565,"LON":2.55,"NAME":"France","POP2005":60990544,"REGION":150,"SUBREGION":155,"UN":250},"GBR":{"AREA":24193,"FIPS":"UK","ISO2":"GB","ISO3":"GBR","LAT":54.16,"LON":-2.9,"NAME":"United Kingdom","POP2005":60244834,"REGION":150,"SUBREGION":154,"UN":826},"HRV":{"AREA":5592,"FIPS":"HR","ISO2":"HR","ISO3":"HRV","LAT":45.723,"LON":16.693,"NAME":"Croatia","POP2005":455149,"REGION":150,"SUBREGION":39,"UN":191},"HUN":{"AREA":9210,"FIPS":"HU","ISO2":"HU","ISO3":"HUN","LAT":47.07,"LON":19.134,"NAME":"Hungary","POP2005":10086387,"REGION":150,"SUBREGION":151,"UN":348},"ITA":{"AREA":29411,"FIPS":"IT","ISO2":"IT","ISO3":"ITA","LAT":44.931,"LON":10.44,"NAME":"Italy","POP2005":5864636,"REGION":150,"SUBREGION":39,"UN":380},"LTU":{"AREA":6268,"FIPS":"LH","ISO2":"LT","ISO3":"LTU","LAT":55.336,"LON":23.897,"NAME":"Lithuania","POP2005":3425077,"REGION":150,"SUBREGION":154,"UN":440},"LUX":{"AREA":0,"FIPS":"LU","ISO2":"LU","ISO3":"LUX","LAT":49.771,"LON":6.088,"NAME":"Luxembourg","POP2005":456613,"REGION":150,"SUBREGION":155,"UN":442},"MCO":{"AREA":0,"FIPS":"MN","ISO2":"MC","ISO3":"MCO","LAT":43.75,"LON":7.412,"NAME":"Monaco","POP2005":325,"REGION":150,"SUBREGION":155,"UN":492},"MKD":{"AREA":2543,"FIPS":"MK","ISO2":"MK","ISO3":"MKD","LAT":41.6,"LON":21.698,"NAME":"The former Yugoslav Republic of Macedonia","POP2005":2033655,"REGION":150,"SUBREGION":39,"UN":807},"MNE":{"AREA":0,"FIPS":"MJ","ISO2":"ME","ISO3":"MNE","LAT":42.792,"LON":19.254,"NAME":"Montenegro","POP2005":607969,"REGION":150,"SUBREGION":39,"UN":499},"NLD":{"AREA":3388,"FIPS":"NL","ISO2":"NL","ISO3":"NLD","LAT":52.077,"LON":5.389,"NAME":"Netherlands","POP2005":1632769,"REGION":150,"SUBREGION":155,"UN":528},"POL":{"AREA":30629,"FIPS":"PL","ISO2":"PL","ISO3":"POL","LAT":52.125,"LON":19.401,"NAME":"Poland","POP2005":38195558,"REGION":150,"SUBREGION":151,"UN":616},"ROU":{"AREA":22987,"FIPS":"RO","ISO2":"RO","ISO3":"ROU","LAT":45.844,"LON":24.969,"NAME":"Romania","POP2005":21627557,"REGION":150,"SUBREGION":151,"UN":642},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SMR":{"AREA":0,"FIPS":"SM","ISO2":"SM","ISO3":"SMR","LAT":43.942,"LON":12.46,"NAME":"San Marino","POP2005":30214,"REGION":150,"SUBREGION":39,"UN":674},"SRB":{"AREA":0,"FIPS":"RB","ISO2":"RS","ISO3":"SRB","LAT":44.032,"LON":20.806,"NAME":"Serbia","POP2005":9863026,"REGION":150,"SUBREGION":39,"UN":688},"SVK":{"AREA":4808,"FIPS":"LO","ISO2":"SK","ISO3":"SVK","LAT":48.707,"LON":19.491,"NAME":"Slovakia","POP2005":5386995,"REGION":150,"SUBREGION":151,"UN":703},"SVN":{"AREA":2014,"FIPS":"SI","ISO2":"SI","ISO3":"SVN","LAT":46.124,"LON":14.827,"NAME":"Slovenia","POP2005":1999425,"REGION":150,"SUBREGION":39,"UN":705},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752},"UKR":{"AREA":57935,"FIPS":"UP","ISO2":"UA","ISO3":"UKR","LAT":49.016,"LON":31.388,"NAME":"Ukraine","POP2005":46917544,"REGION":150,"SUBREGION":151,"UN":804}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_11_4.json b/test/fixtures/grids/plain_2_8_11_4.json new file mode 100644 index 0000000..127b4c2 --- /dev/null +++ b/test/fixtures/grids/plain_2_8_11_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!#####################"," !!!!!!!#####################"," !!!!!!#######################"," !!!!!!!#######################"," !!!!!!#######################"," !!!!!!!!#######################"," !!!!!!!!#######################"," !!!!!!!###################### "," !!!!!!###################### "," !!!!!!!!###################### "," !!!!!!!!!####################### "," !!!!!!!!!###################### "," !!!!!!!####################### "," !!!!!!!!######################## "," !!!!!!!!!!!###################### "," !!!!!!!!!!!!##################### "," !!!!!!!!######################## "," !!!!!!!!######################### "," !!! !!!!!!!########################## "," !!!!!!!!!!!######################### $"," !!!!!!!!!!!!####################### $"," !!!!!!!!!!!###################### $$$$$"," !!!!!!!!!!!!!##################### $$$$"," !!!!!!!!!!!!!!!################### $$$$"," !!!!!!!!!!!!!!!################### $$$$$"," !!!!!!!!!!!!!!!!!################## $$$$$"," !!!!!!!!!!!!!!!!!################## $$$$$"," !!!!!!!!!!!!!!!!!!!################ $$$$"," !!!!!!!!!!!!!!!!!!!!################# $$$$"," !!!!!!!!!!!!!!!!!!!!################ $$$$"," !!!!!!!!!!!!!!!!!!!!!################ $$$$"," !!!!!!!!!!!!!!!!!!!!################ $$$"," !!!!!!!!!!!!!!!!!!!!!############## $$$"," !!!!!!!!!!!!!!!!!!!!!!############# $$$"," !!!!!!!!!!!!!!!!!!!!!!!############# $$$$"," !!!!!!!!!!!!!!!!!!!!!############### $$$$"," !!!!!!!!!!!!!!!!!!!!################ $$$$"," !!!!!!!!!!!!!!!!!!!!!!################# $$$$"," !!!!!!!!!!!!!!!!!!!!!################## $$$$"," !!!!!!!!!!!!!!!!!!!!!################## %%%% $$$"," !!!!!!!!!!!!!!!!!!!!!################### %%%% $$$$"," !!!!!!!!!!!!!!!!!!!###################### %% $"," !!!!!!!!!!!!!!!!!!!###################### "," !!!!!!!!!!!!!!!!!!!##################### "," !!!!!!!!!!!!!!!!!!!#################### "," !!!!!!!!!!!!!!!!!!!#################### "," !!!!!!!!!!!!!!!!!###################### &"," !!!!!!!!!!!!!! ##################### &&"," !!!!!!!!!!!! ################### &"," !!!!!!!!!!! ################## &&"," !!!!!!!!! ################# # &&"," !!!!!! ################ &&"," !!! ################ ### &&"," '' ############### ### ("," ''' ############### ### ((("," ''' ' ################ ### ((("," ''''''' ############# # ### (((("," ''''''' ############### ## (((("," ''''''' ############# # ((((("," ''''''' '' ############# ((((("," ''''''''' ############# ((())"," ''''''''' ############# ())))"," '''''''' '''####### ### )))))"," '''''''' ''''##### )))))"],"keys":["","NOR","SWE","FIN","ALA","EST","DNK","LVA","LTU"],"data":{"ALA":{"AREA":0,"FIPS":"","ISO2":"AX","ISO3":"ALA","LAT":60.198,"LON":19.952,"NAME":"land Islands","POP2005":0,"REGION":150,"SUBREGION":154,"UN":248},"DNK":{"AREA":4243,"FIPS":"DA","ISO2":"DK","ISO3":"DNK","LAT":56.058,"LON":9.264,"NAME":"Denmark","POP2005":5416945,"REGION":150,"SUBREGION":154,"UN":208},"EST":{"AREA":4239,"FIPS":"EN","ISO2":"EE","ISO3":"EST","LAT":58.674,"LON":25.793,"NAME":"Estonia","POP2005":1344312,"REGION":150,"SUBREGION":154,"UN":233},"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"LTU":{"AREA":6268,"FIPS":"LH","ISO2":"LT","ISO3":"LTU","LAT":55.336,"LON":23.897,"NAME":"Lithuania","POP2005":3425077,"REGION":150,"SUBREGION":154,"UN":440},"LVA":{"AREA":6205,"FIPS":"LG","ISO2":"LV","ISO3":"LVA","LAT":56.858,"LON":25.641,"NAME":"Latvia","POP2005":2301793,"REGION":150,"SUBREGION":154,"UN":428},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_12_4.json b/test/fixtures/grids/plain_2_8_12_4.json new file mode 100644 index 0000000..aab5d8b --- /dev/null +++ b/test/fixtures/grids/plain_2_8_12_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !!"," !!"," !!!"," !! !!!!"," !!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!"," !!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!!!"," !!!!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!"," !! !!!!!!!!!!!!!!!!"," !! !!!!!!!!!!##!$$!!"," !!!!!!!!!!!!!!!###$$!!"," !!!!!!!!!!!!!!!!####$$!"," !!!!!!!!!!!!!!!!!#####$!"," !!!!!!!!!!!##!!!#######$"," !!!!!!!!!!#############"," !!!!!!!!!!!!!#############"," !!!!!! !!!!!!!#############"," !!!! !!!!!################"," !! !!!!!#################"," ! !!!!!!#################"," !!!!!##################"," !!!!###################"," !!!!!###################"," !!!!!!##################"," !!!!!!!##################"," !!!!!!!###################"," !!!!!!!###################"," !!!!!!!####################"," !!!!!!!#####################"],"keys":["","NOR","SWE","FIN"],"data":{"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_13_4.json b/test/fixtures/grids/plain_2_8_13_4.json new file mode 100644 index 0000000..28dabfa --- /dev/null +++ b/test/fixtures/grids/plain_2_8_13_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!!!!!!!!!! "," !! !!!!!!!!!!!!!!!!!!!!!!!! !!!!! "," !! !!!!!!! !!!!!!!!!!!!! !!!!!!!"," !!! !!!!!!! !!!!!!!!!!!!! !!!!!!!"," !! !!!!!!! !!!!!!!!!! !!!!!!"," !! !!!!! !!!!!!!!!!! !!!!!!"," !! !!!!! !!!!!!!!!!!! !!!!!!"," ! !!!! !!!!!!!!!!!!! !!!!!!"," !!!!!!!!!!!!!!!!! !!!!!"," !!!!!!!!!!!!!!!! !!!!!"," !!!!!!!!!!!!!!! !!!!"," !!!!!!!!!!!!!!! !!!"," !!!!!!!!!!!!!!! !!!!"," !!!!!!!!!!!!!! !!!!"," !!!!!!!!!!!! !!!!"," !!!!!!!!!!!!!! !!!!!"," !!!!!!!!!!!!! !!!!!"," !!!!!!!!!!!! !! !"," !!!!!!!!!!!! !"," !!!!!!!!!! !"," !!!!!!!!!! "," !!!!!!!! "," !!!!!!!! "," !!!!!! "," !!!!! "," !!!!! "," !!!! "," !!! "," !!! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !! "," !! "," !! "," "," "," "],"keys":["","SJM"],"data":{"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_14_4.json b/test/fixtures/grids/plain_2_8_14_4.json new file mode 100644 index 0000000..be26549 --- /dev/null +++ b/test/fixtures/grids/plain_2_8_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," !!! "," !!! "," !! "," !! "," !!! "," !!!! !"," !! !!!! !"," !!!!!!!!! !"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!"," !!!!!!!!!!!!!!"," ! !!!!!!!!!!!!!"," !!! !!!!!!!!!!!!!"," !!!!! !!!!!!!!!!!!!"," ! !!!!!!!!!!!!!!!!!!!!"," !!!!!!!! !!!!!!!!!!!!!!!!!!!!"," !!!!!!!!!! !! !!!!!!!!!!!!!!!! !!!"," !!!!!!!!!!!!! !!!!!!!! !!!! !!!!!!"," !!!!!!! !!!!!!!!!!!!! !!!!!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!! !!!!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!! !!!!!!!"," !!!!!!!!!!!!!! !!!!!!!!! !!! !!!!!"," !!!!!!!!!!!!!!!!!!!!!!!! !!! ! "," !!!!!!!!!!!!!!!!!!!!!!! !! "," !!!!!!!!!!!!!!!!!!!!!!!!!! "],"keys":["","SJM"],"data":{"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_6_4.json b/test/fixtures/grids/plain_2_8_6_4.json new file mode 100644 index 0000000..d5fdb9a --- /dev/null +++ b/test/fixtures/grids/plain_2_8_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!####"," !!!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!#######"," !!!!!!!!!!!!!!!$######"," !!!!!!!!!!!!!!!$######"," !!!!!!!!!!!!!!!$$#####"," !!!!!!!!!!!!!!!$######"," !!!!!!!!!!!!!!!$#####$"," !!!!!!!!!!!!!!!$####$$"," !!!!!!!!!!!!!!$$$$$$$"," !!!!!!!!!!!!!!$$$$$$$"," !!!!!!!!!!!!!$$$$$$$"," !!!!!!!!!!!!!$$$$$$$"," !!!$!!!!!!!!$$$$$$$"," $$$!!!!!!!$$$$$$$$"," $$$$$$$!$$$$$$$$$"," $$$$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$"," $$$$$$$$$$$$$$"," $$$$$$$$$$$$$"," $$$$$$$$$$$$$"," $$$$$$$$$$$$"," $$$$$$$$$$$$$$"," $$$$$$$$$$$$$$"," $$$$$$$$$$$$$"," $$$$$$$$$$$$$"," $$$$$$$$$$$$"," $$$$$$$$$$$$"," $$$$$$$$$$$ "," $$$ "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","NAM","BWA","ZAF"],"data":{"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_7_4.json b/test/fixtures/grids/plain_2_8_7_4.json new file mode 100644 index 0000000..700b0b2 --- /dev/null +++ b/test/fixtures/grids/plain_2_8_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!#########$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!########$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!######$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$"," %% !!!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$$"," !!!!!!!#####!!#####$$$$$$$$$$$$$$$$$$"," !!!!!!############$$$$$$$$$$$$$$$$$$"," !!!!!###########$$$$$$$$$$$$$$$$$$$"," !!!!###########$$$$$$$$$$$$$$$$$$$"," !############$$$$$$$$$$$$$$$$$$$$"," #######$$$$$$$$$$$$$$$$$$$$$$$$$"," ###$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," ##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," &$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," &$&&&&&&&&&&&$$$$$$$$$$$$$$$$$"," &&&&&&&&&&&&$$$$$$$$$$$$$$$$$"," &&&&&&&&&&&&$$$$$$$$$$$$$$$$$"," &&&&&&&&&&&&$$$$$$$$&&$$$$$$"," &&&&&&&&&&&&$$$$$$$$&&&&&$$$"," &&&&&&&&&&&&$$$$$$$&&&&&$$$"," &&&&&&&&&&&&$$$&&&&&&&&&&$$"," &&&&&&&&&&&&&&&&&&&&&&&&&$$"," &&&&&&&&&&&&&&&&&&&&&&&&&&$$"," &&&&&&&&&&&&&&&&&&&&&&&&&$$$"," &&&&&&&&&&&&&&&&&&&&&&&&$$$"," &&&&&&&&&&&&&&&&&&&&&&&&&$$"," &&&&&&&&&&&&&&&&&&&&&&&&&$"," &&&&&&&&&&&&&&&&&&&&&&&&&$"," &&&&&&&&&&&&&&&&&&&&&&&&$"," &&&&&&&&&&&&&&&&&&&&&&&&$"," &&&&&&&&&&&&&&&&&&&&&&&&&"," &&&&&&&&&&&&&&&&&&&&&&&&&&"," &&&&&&&&&&&&&&&&&&&&&&&&&&"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&"," &&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&''"," &&&&((&&&&&&&&&&&&&&&&&&&&&&&&'"," (((((((&&&&&&&&&&&&&&&&&&&&&&&&"," ((((((((((((((((((((&&&&&&&&&&&"," ((((((((((((((((((((((((((((((("," ((((((((((((((((((((((((((((((("," (((((((((((((((((((((((((())))"," (((((((((((((((((((((((((())))"," ((((((((((((((((((((((((())))"," (((((((((((((((((((((((())))"," (((((((((((((((((((((((())))"," ((((((((((((((((((((((())))"," ((((((((((((((((((((((())))"," ((((((((((((((((((((((())))"," (((((((((((((((((((((())))"," (((((((((((((((((((((())))"," ((((((((((((((((((((())))"],"keys":["","GAB","COG","COD","GNQ","AGO","ZMB","NAM","BWA"],"data":{"AGO":{"AREA":124670,"FIPS":"AO","ISO2":"AO","ISO3":"AGO","LAT":-12.296,"LON":17.544,"NAME":"Angola","POP2005":16095214,"REGION":2,"SUBREGION":17,"UN":24},"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COG":{"AREA":34150,"FIPS":"CF","ISO2":"CG","ISO3":"COG","LAT":-0.055,"LON":15.986,"NAME":"Congo","POP2005":3609851,"REGION":2,"SUBREGION":17,"UN":178},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"GNQ":{"AREA":2805,"FIPS":"EK","ISO2":"GQ","ISO3":"GNQ","LAT":1.607,"LON":10.488,"NAME":"Equatorial Guinea","POP2005":484098,"REGION":2,"SUBREGION":17,"UN":226},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"ZMB":{"AREA":74339,"FIPS":"ZA","ISO2":"ZM","ISO3":"ZMB","LAT":-14.614,"LON":26.32,"NAME":"Zambia","POP2005":11478317,"REGION":2,"SUBREGION":14,"UN":894}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_8_8_4.json b/test/fixtures/grids/plain_2_8_8_4.json new file mode 100644 index 0000000..e84106e --- /dev/null +++ b/test/fixtures/grids/plain_2_8_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!####################$$$$$$$$$$%%%%%%%%%%"," !!!!!!!!!!!!!!!!!!!!#####################$$$$$$$$$$$$%%%%%%%%"," !!!!!!!!!!!!!!!!!########################$$$$$$$$$$$$$%%%%%%"," !!!!!!!!!!!!!!!#########################$$$$$$$$$$$$$$$%%%%"," !!!!!!!!!!!!!###########################$$$$$$$$$$$$$$$$%%"," !!!!!!!!!############################$$$$$$$$$$$$$$$$$%"," !!!!!!!############################$$$$$$$$$$$$$$$$$$$"," !!!!###############################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$$"," #################################$$$$$$$$$$$$$$$$$$$$"," ################################$$$$$$$$$$$$$$$$$$$$$"," ################################$$$$$$$$$$$$$$$$$$$$$$"," ######################################$$$$$$$$$$$$$$$$$$$$$$$","&#######################################$$$$$$$$$$$$$$$$$$$$$$$$","&#######################################$$$$$$$$$$$$$$$$$$$$$$$'","&&#####################################$$$$$$$$$$$$$$$$$$$$$$$$'","&&#####################################$$$$$$$$$$$$$$$$$$$$$$$$'","&&&#########(((((((##################(($$$$$$$$$$$$$$$$$$$$$$$''","&&&&#######(((((((((#(((####((((((#((((($$$$$$$$$$$$$$$$$$$$$$$'","&&&&#######(((((((((((((((#(((((((((((((($$$$$$$$$$$$$$$$$$$$$''","&&&&&&&###((((((((((((((((((((((((((((((($$$$$$$$$$$$$$$$$$$$$''","&&&&&&&###(((((((((((((((((((((((((((((((($$$$$$$$$$$$$$$$$$$$$'","&&&&&&&)##(((((((((((((((((((((((((((((((($$$$$$$$$$$$$$$$$$$$$'","&&&&&&&))((((((((((((((((((((((((((((((((($$$$$$$$$$$$$$$$$$$$$$","&&&&&&)))((((((((((((((((((((((((((((((((($$$$$$$$$$$$$$$$$$$$$$","&&&&))))))((((((((((((((((((((((((((((((**$$$$$$$$$$$$$$$$$$$$++",",,,)))))))(((((((((((((((((((((((((((((***$$$$$$$$$$$$$$$$$$$+++",",,,,))))))(((((((((((((((((((((((((((((****$$$$$$$$$$$$$$$$$$+++",",,,,)))))((((((((((((((((((((((((((((((*$$$$$$$$$$$$$$$$$$$+++++",",,,,))))((((((((((((((((((((((((((((((*$$$$$$$$$$$$$$$$$$$$+++++",",,,,,)))(((((((((((((((((((((((((((((***$$$$$$$$$$$$$$$$++++++++","-,,,,))((((((((((((((((((((((((((((((****$$$$$$$$$$$$+++++++++++","-,,,,))((((((((((((((((((((((((((((((*****$$$$$$$$$$$+++++++++++","-,,,,))((((((((((((((((((((((((((((********$$$$$$$$$++++++++++++","-,,,,))((((((((((((((((((((((((((((********$$$++++++++++++++++++","-,,,,))((((((((((((((((((((((((((((********+++++++++++++++++++++","-,,,,))(((((((((((((((((((((((((((*********+++++++++++++++++++++","-,,,,))(((((((((((((((((((((((((((********++++++++++++++++++++++","-,,,,,)(((((((((((((((((((((***((*********++++++++++++++++++++++","--,,,,......(((((((((((((((**************+++++++++++++++++++++++","---...........((((((((((((***************+++++++++++++++++++++++","..............((((((((((((***************+++++++++++++++++++++++","...............(((((((((((***************+++++++++++++++++++++++","...............((((((((((****************++++++++++++++//+++++++","................((((((((******************++++++++++++////++++++",".........................*****************+++++++++++/////////++","........................00.****************++++++++++///////////",".......................000.****************+++++111++///////////","............................****************+++11111////////////","...........................******************++1111/////////////","...........................00000222222*******++1111/////////////","...........................00000222222111*****11111/////////////","....................33....0000002222221211111*11111/////////////","..........................020000222222222111111111//////////////","...........................22222222222222211111111//////////////","..................33......222222222222222111111111//////////////","..................33......222222222222221111111111//////////////"],"keys":["MLI","DZA","NER","TCD","LBY","BFA","SDN","NGA","BEN","CMR","CAF","TGO","GHA","","COD","GNQ","COG","GAB","STP"],"data":{"BEN":{"AREA":11062,"FIPS":"BN","ISO2":"BJ","ISO3":"BEN","LAT":10.541,"LON":2.469,"NAME":"Benin","POP2005":8490301,"REGION":2,"SUBREGION":11,"UN":204},"BFA":{"AREA":27360,"FIPS":"UV","ISO2":"BF","ISO3":"BFA","LAT":12.278,"LON":-1.74,"NAME":"Burkina Faso","POP2005":13933363,"REGION":2,"SUBREGION":11,"UN":854},"CAF":{"AREA":62298,"FIPS":"CT","ISO2":"CF","ISO3":"CAF","LAT":6.571,"LON":20.483,"NAME":"Central African Republic","POP2005":4191429,"REGION":2,"SUBREGION":17,"UN":140},"CMR":{"AREA":46540,"FIPS":"CM","ISO2":"CM","ISO3":"CMR","LAT":5.133,"LON":12.277,"NAME":"Cameroon","POP2005":17795149,"REGION":2,"SUBREGION":17,"UN":120},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COG":{"AREA":34150,"FIPS":"CF","ISO2":"CG","ISO3":"COG","LAT":-0.055,"LON":15.986,"NAME":"Congo","POP2005":3609851,"REGION":2,"SUBREGION":17,"UN":178},"DZA":{"AREA":238174,"FIPS":"AG","ISO2":"DZ","ISO3":"DZA","LAT":28.163,"LON":2.632,"NAME":"Algeria","POP2005":32854159,"REGION":2,"SUBREGION":15,"UN":12},"GAB":{"AREA":25767,"FIPS":"GB","ISO2":"GA","ISO3":"GAB","LAT":-0.591,"LON":11.797,"NAME":"Gabon","POP2005":1290693,"REGION":2,"SUBREGION":17,"UN":266},"GHA":{"AREA":22754,"FIPS":"GH","ISO2":"GH","ISO3":"GHA","LAT":7.96,"LON":-1.207,"NAME":"Ghana","POP2005":2253501,"REGION":2,"SUBREGION":11,"UN":288},"GNQ":{"AREA":2805,"FIPS":"EK","ISO2":"GQ","ISO3":"GNQ","LAT":1.607,"LON":10.488,"NAME":"Equatorial Guinea","POP2005":484098,"REGION":2,"SUBREGION":17,"UN":226},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"MLI":{"AREA":122019,"FIPS":"ML","ISO2":"ML","ISO3":"MLI","LAT":17.35,"LON":-3.524,"NAME":"Mali","POP2005":1161109,"REGION":2,"SUBREGION":11,"UN":466},"NER":{"AREA":126670,"FIPS":"NG","ISO2":"NE","ISO3":"NER","LAT":17.426,"LON":9.398,"NAME":"Niger","POP2005":1326419,"REGION":2,"SUBREGION":11,"UN":562},"NGA":{"AREA":91077,"FIPS":"NI","ISO2":"NG","ISO3":"NGA","LAT":9.594,"LON":8.105,"NAME":"Nigeria","POP2005":141356083,"REGION":2,"SUBREGION":11,"UN":566},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"STP":{"AREA":96,"FIPS":"TP","ISO2":"ST","ISO3":"STP","LAT":0.201,"LON":6.629,"NAME":"Sao Tome and Principe","POP2005":152622,"REGION":2,"SUBREGION":17,"UN":678},"TCD":{"AREA":125920,"FIPS":"CD","ISO2":"TD","ISO3":"TCD","LAT":15.361,"LON":18.665,"NAME":"Chad","POP2005":10145609,"REGION":2,"SUBREGION":17,"UN":148},"TGO":{"AREA":5439,"FIPS":"TO","ISO2":"TG","ISO3":"TGO","LAT":8.799,"LON":1.081,"NAME":"Togo","POP2005":6238572,"REGION":2,"SUBREGION":11,"UN":768}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_10_4.json b/test/fixtures/grids/plain_2_9_10_4.json new file mode 100644 index 0000000..d404356 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_10_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!##!##########################################"," !!!!!!!!!!!#########################################"," !!!!!!!!!!#########################################","# !!!!!!!!!!!!########################################","# !!!!!!!!!!!!#########################################","# !!!!!!!!!!!!!#########################################","#$ !!!!!!!!!!!!!!########################################","#$$ !!!!!!!!!!!!!!!#######################################","$$$ !!!!!!!!!!!!!!!#######################################","$$$ !!!!!!!!!!!!!!!!!!!!######################################","$$$$!!!!!!!!!!!!!!!!!!!!!!!!####################################","$$$$!!!!!!!!!!!!!!!!!!!!!!!!####################################","$$$$!!!!!!!!!!!!!!!!!!!!!#######################################","$$$$$!!!!!!!!!!!!!!!!!!!########################################","$$$$$!!!!!!!!!!!!!!!!!!!!#######################################","$$$$!!!!!!!!!!!!!!!!!!!!!#######################################","$$$!!!!!!!!!!!!!!!!!!!!!!##%%%%%%###############################","$$$$!!!!!!!!!!!!!!!!!!!%%%%%%%%%%###############################","$$$$!%%%%%%%!!!!!!!!!!!%%%%%%%%%%%##############################","$$$%%%%%%%%%%%%%%!%!!!%%%%%%%%%%%%##############################","$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############################","$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%############################","$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################","$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################","$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###########################","$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#####################","$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%###################","$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%################","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","%%%%%%%%%%%%&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","'%'%%%%%%%'''&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%##############","''''''%%'''''&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#################","''''''''''''''&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%%###################","''''''''''''''&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%###################","'''''''''''''''&&&&&%%%%%%%%%%%%%%%%%%%%%%%((###################","''''''''''''''''&&&&&%%%%%%%%%%%%%%%%%%%%((#####################","''''''''''''''''&&%%%%%%(%%%%%%%%%%%%%(((((#####################","'''''''''''''''&&&%%%%%%(%%%%%%%%%%%%(((((((####################","'''''''''''''''&&%%%%%%((((((%%%%%%%(((((((#####################","'''''''''''''''&&%%%%%(((((((%%%%%%%((((((######################","'''''''''''''''&%%%%%(((((((%%%%%%%%%%%%%#######################","''''''''''''''''%%%'%(((((((%%%%%%%%%%%%########################","'''''''''''''''''''''((((((((((%%%%%%%%%(#######################",")''''''''''''''''''''(((((((((%%%%%%((((((######################",")''''''''''''''''''(((((((((((%%%%((((((((((####################",")'''''''''''''''''(((((((((((((((((((((((((((###################",")'''''''''''*'''''(((((((((((((((((((((((((((((#################","*'''''''''*****'''((((((((((((((((((((((((((((((################",")*****************(((((((((((((((((((((((((((((((###############","))**************((((((((((((((((((((((((((((((((((+++###########","))**************((((((((((((((((((((((((((((((((((((++++++######","****************(((((((((((((((((((((((((((((((((((((+++++++####",")**************(((((((((((((((((((((((((((((((((((((((++++++++++",",***********--**(((((((((((((((((((-((((((((((((((((((++++++++++",",,********------((((((((((((---------(((((((((((((((((++++++++++",",,**..****-------(((((((((-------------(((((((((((((((--+-++++++",",,........---------((((((-----------------((((((((((-------+++++",",.........-----------------------------------(--------------++++"],"keys":["LTU","BLR","RUS","POL","UKR","MDA","ROU","","SRB","BGR","GEO","MKD","TUR","GRC"],"data":{"BGR":{"AREA":11063,"FIPS":"BU","ISO2":"BG","ISO3":"BGR","LAT":42.761,"LON":25.231,"NAME":"Bulgaria","POP2005":7744591,"REGION":150,"SUBREGION":151,"UN":100},"BLR":{"AREA":20748,"FIPS":"BO","ISO2":"BY","ISO3":"BLR","LAT":53.54,"LON":28.047,"NAME":"Belarus","POP2005":9795287,"REGION":150,"SUBREGION":151,"UN":112},"GEO":{"AREA":6949,"FIPS":"GG","ISO2":"GE","ISO3":"GEO","LAT":42.176,"LON":43.518,"NAME":"Georgia","POP2005":4473409,"REGION":142,"SUBREGION":145,"UN":268},"GRC":{"AREA":12890,"FIPS":"GR","ISO2":"GR","ISO3":"GRC","LAT":39.666,"LON":21.766,"NAME":"Greece","POP2005":11099737,"REGION":150,"SUBREGION":39,"UN":300},"LTU":{"AREA":6268,"FIPS":"LH","ISO2":"LT","ISO3":"LTU","LAT":55.336,"LON":23.897,"NAME":"Lithuania","POP2005":3425077,"REGION":150,"SUBREGION":154,"UN":440},"MDA":{"AREA":3288,"FIPS":"MD","ISO2":"MD","ISO3":"MDA","LAT":47.193,"LON":28.599,"NAME":"Republic of Moldova","POP2005":3876661,"REGION":150,"SUBREGION":151,"UN":498},"MKD":{"AREA":2543,"FIPS":"MK","ISO2":"MK","ISO3":"MKD","LAT":41.6,"LON":21.698,"NAME":"The former Yugoslav Republic of Macedonia","POP2005":2033655,"REGION":150,"SUBREGION":39,"UN":807},"POL":{"AREA":30629,"FIPS":"PL","ISO2":"PL","ISO3":"POL","LAT":52.125,"LON":19.401,"NAME":"Poland","POP2005":38195558,"REGION":150,"SUBREGION":151,"UN":616},"ROU":{"AREA":22987,"FIPS":"RO","ISO2":"RO","ISO3":"ROU","LAT":45.844,"LON":24.969,"NAME":"Romania","POP2005":21627557,"REGION":150,"SUBREGION":151,"UN":642},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SRB":{"AREA":0,"FIPS":"RB","ISO2":"RS","ISO3":"SRB","LAT":44.032,"LON":20.806,"NAME":"Serbia","POP2005":9863026,"REGION":150,"SUBREGION":39,"UN":688},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792},"UKR":{"AREA":57935,"FIPS":"UP","ISO2":"UA","ISO3":"UKR","LAT":49.016,"LON":31.388,"NAME":"Ukraine","POP2005":46917544,"REGION":150,"SUBREGION":151,"UN":804}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_12_4.json b/test/fixtures/grids/plain_2_9_12_4.json new file mode 100644 index 0000000..c3a3f4c --- /dev/null +++ b/test/fixtures/grids/plain_2_9_12_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! !!! !!! "," !!!!!!!! !!!!! "," !!!!!!!!!! !!!!!!! ","!!!!!!!!!!!! !!!!!!!! ","!!!!!!!!!!!! !!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!!!!!!!!!! ","!!!!!!!!!!!!!!#!!!!!!! $$ ","!!!!!!!!!!!!####!!!!!!!$$ $$$$ ","!!!!!!!!!!!######!!!!$!$$$$$$$$ ","!!!!!!!!!!########!!!$$$$$$$$$$ ","!!!!!!!!!!#########!$$$$$$$$$$$$ ","!!!!!!!!!!########!$$$$$$$$$$$$$$$ ","!!!!!!!!!!#######!!$$$$$$$$$$$$$$$$$$$$ ","!!!!!!!!!!#######!$$$$$$$$$$$$$$$$$$$$$$ ","!!!!!!!!!!######$$$$$$$$$$$$$$$$$$$$$$$$$$ ","!!!!!!!!!#######$$$$$$$$$$$$$$$$$$$$$$$$$$$ ","!!!!!!!!#########$$$$$$$$$$$$$$$$$$$$$$$$$$$ $ ","#!!###!!########$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$","%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$","%%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%##################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%#################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$","%%%%################$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$","%%%%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$","%%%%###############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$","%%%%##############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$","%%%%%#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$","%%%%%#############$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$ $$","%%%%###############$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$ $$ $$"],"keys":["","NOR","FIN","RUS","SWE"],"data":{"FIN":{"AREA":30459,"FIPS":"FI","ISO2":"FI","ISO3":"FIN","LAT":64.504,"LON":26.272,"NAME":"Finland","POP2005":5246004,"REGION":150,"SUBREGION":154,"UN":246},"NOR":{"AREA":30625,"FIPS":"NO","ISO2":"NO","ISO3":"NOR","LAT":61.152,"LON":8.74,"NAME":"Norway","POP2005":4638836,"REGION":150,"SUBREGION":154,"UN":578},"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SWE":{"AREA":41033,"FIPS":"SW","ISO2":"SE","ISO3":"SWE","LAT":62.011,"LON":15.27,"NAME":"Sweden","POP2005":9038049,"REGION":150,"SUBREGION":154,"UN":752}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_13_4.json b/test/fixtures/grids/plain_2_9_13_4.json new file mode 100644 index 0000000..337d437 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_13_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," !! "," !!!!!!! "," !!!!!! "," ! ! "," !! "," !! "," ! "," "," "," "," ","!!! ","!!! ","!!! ","!! ","!!! ","!!!!!! ","!!!!!!! ","!!!!!!! ","!!!!!! ","!!!!! ","!!!!! ","!!!! ","!!! ","!!! "," "," "," "," "," "," "," ! "," !! "," ! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","SJM"],"data":{"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_14_4.json b/test/fixtures/grids/plain_2_9_14_4.json new file mode 100644 index 0000000..4329c06 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_14_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," !"," "," # ## ","### ## ","### ## ","####### ","######### ## ","############ #### ","############# ## ###### # ","################ #### ","############## ","############## ","############## ","############## ","############# ","############ ","########### ","########## ","########## ","########## ","########## ","######### ","##### ","##### "],"keys":["","RUS","SJM"],"data":{"RUS":{"AREA":1638094,"FIPS":"RS","ISO2":"RU","ISO3":"RUS","LAT":61.988,"LON":96.689,"NAME":"Russia","POP2005":143953092,"REGION":150,"SUBREGION":151,"UN":643},"SJM":{"AREA":0,"FIPS":"SV","ISO2":"SJ","ISO3":"SJM","LAT":78.83,"LON":18.374,"NAME":"Svalbard","POP2005":0,"REGION":150,"SUBREGION":154,"UN":744}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_4_4.json b/test/fixtures/grids/plain_2_9_4_4.json new file mode 100644 index 0000000..56e80d2 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_4_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":[""],"data":{}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_5_4.json b/test/fixtures/grids/plain_2_9_5_4.json new file mode 100644 index 0000000..18cf447 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_5_4.json @@ -0,0 +1 @@ +{"grid":[" "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," ! "," !! "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "," "],"keys":["","ZAF"],"data":{"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_6_4.json b/test/fixtures/grids/plain_2_9_6_4.json new file mode 100644 index 0000000..5ec916c --- /dev/null +++ b/test/fixtures/grids/plain_2_9_6_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!###########$$$$$$$$$$$$$$$$$$$$%%%%%%"," &&!!!!!############$$$$$$$$$$$$$$$$$$$$%%%%%%"," &&&&&&&&&############$$$$$$$$$$$$$$$$$$$$$%%%%%"," &&&&&&&&&&############$$$$$$$$$$$$$$$$$$$$$%%%%%"," &&&&&&&&&&&###########$$$$$$$$$$$$$$$$$$$$$$$%%%%"," &&&&&&&&&&&&&###########$$$$$$$$$$$$$$$$$$$$$$%%%%"," &&&&&&&&&&&&&&###########$$$$$$$$$$$$$$$$$$$$$$%%%%"," &&&&&&&&&&&&&&&#########$$$$$$$$$$$$$$$$$$$$$$$%%%%"," &&&&&&&&&&&&&&&##########$$$$$$$$$$$$$$$$$$$$$$$%%%%"," &&&&&&&&&&&&&&&&&&######$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%"," &&&&&&&&&&&&&&&&&#####$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%"," && &&&&&&&&&&&&&&&''&###$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," &&&&& &&&&&&&&&&&&&&&&&''''##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"," &&&&&&&&&&&&&&&&&&&&&&'''''##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&'''''##$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&'''''&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&&'''&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&((&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&(((((&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&((((((&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&(((((((&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&((((((((&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&((((((&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&((((&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&(((&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&&&&&&&&&&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","&&&$&&&$&$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$","$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"],"keys":["BWA","ZWE","MOZ","","MDG","ZAF","SWZ","LSO"],"data":{"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"LSO":{"AREA":3035,"FIPS":"LT","ISO2":"LS","ISO3":"LSO","LAT":-29.581,"LON":28.243,"NAME":"Lesotho","POP2005":1980831,"REGION":2,"SUBREGION":18,"UN":426},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MOZ":{"AREA":78409,"FIPS":"MZ","ISO2":"MZ","ISO3":"MOZ","LAT":-14.422,"LON":37.923,"NAME":"Mozambique","POP2005":20532675,"REGION":2,"SUBREGION":14,"UN":508},"SWZ":{"AREA":1720,"FIPS":"WZ","ISO2":"SZ","ISO3":"SWZ","LAT":-26.562,"LON":31.497,"NAME":"Swaziland","POP2005":1124529,"REGION":2,"SUBREGION":18,"UN":748},"ZAF":{"AREA":121447,"FIPS":"SF","ISO2":"ZA","ISO3":"ZAF","LAT":-30.558,"LON":23.121,"NAME":"South Africa","POP2005":47938663,"REGION":2,"SUBREGION":18,"UN":710},"ZWE":{"AREA":38685,"FIPS":"ZI","ISO2":"ZW","ISO3":"ZWE","LAT":-19,"LON":29.872,"NAME":"Zimbabwe","POP2005":13119679,"REGION":2,"SUBREGION":14,"UN":716}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_7_4.json b/test/fixtures/grids/plain_2_9_7_4.json new file mode 100644 index 0000000..8201e37 --- /dev/null +++ b/test/fixtures/grids/plain_2_9_7_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!###################$$$$$$%%%%%%"," !!!!!!!!!!!!!###################$$$$$%%%%%%%"," !!!!!!!!!!!!!###################$$$$$%%%%%%%"," !!!&&&&&&&&&&&&##################$$$%%%%%%%%"," '''!'&&&&&&&&&&&&&&################$$%%%%%%%%%"," '''''&&&&&&&&&&&&&&&&###############%%%%%%%%%%"," ''''&&&&&&&&&&&&&&&&&&&############%%%%%%%%%%%"," ''''&&&&&&&&&&&&&&&&&&&&##########%%%%%%%%%%%%"," ((((&&&&&&&&&&&&&&&&&&&&&&#######%%%%%%%%%%%%%"," (((&&&&&&&&&&&&&&&&&&&&&&#######%%%%%%%%%%%%%"," (((&&&&&&&&&&&&&&&&&&&&&&&#####%%%%%%%%%%%%%%"," ((&&&&&&&&&&&&&&&&&&&&&&&&&####%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&#%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&%&%%%%%%%%%%%%%%"," &&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," )))))&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," ))))))))&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%"," )))))))))))&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," ))))))))))))))&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%"," ))))))))))))))&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," )))))))))))))))*&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%"," )))))))))))))))**&&&&&&&&&&&&&&&&&+%%%%%%%%%%%%"," )))))))))))))))**&&&&&&&&&&&&&&&&&+%%%%%%%%%%%%"," )) )))))))))))))))***&&&&&&&&&&&&&&&&++%%%%%%%%%%%%",",,,,))))) )))))))))))))))***&&&&&&&&&&&&&+++++%%%%%%%-%%%%",",,,,)))))) )) )))))))))))))))****&&&&&&&&&++++++++%%%%%%--%%%%",",,,,))))))))))) ))))))))))))))****+++++++++++++++++%%%%%%%-%--%",",,,,))))))))))))) ))))))))))))))**++++++++++++++++++%%%%%%%%-%-%",",,,))))))))))))))) )))))))))))****+++++++++++++++++%%%%%%%%%%%%","))))))))))))))))))))))))))))))*****+++++++++++++++++%%%%%%%%%%%%","))))))))))))))))))))))))))))))******++++++++++++++++%%%%%%%%%%%%",")))))))))))))))))))))))))))))))******+++++++++++++++%%%%%%%%%%%%",")))))))))))))))))))))))))))))))*******++++++++++++++%%%%%%%%%%%%",")))))))))))))))))))))))))))))+********+++++++++++++++%%%%%%%%%%%","))))))))))))))))))))))))))++++++++*****++++++++++++++%%%%%%%%%%%",")))))))))))))))))))))))+++++++++++*****+++++++++++++%%%%%%%%%%%%","))))))))))))))))))))..)++++++++++*****++++++++++++++%%%%%%%%%%%%",")))))))))))))))))).....++++++++++*****+++++++++++++%%%%%%%%%%%%%",")))))))))))))))))).........++++++*****+++++++++++++%%%%%%%%%%%//",")))))))))))))))).............+++++***+++++++++++++%%%%%%%%%%%%//",")))))))))))))))...............+++++**++++++++++++%%%%%%%%%%%%///","))))))))))))))................+++++**++++++++++%%%%%%%%%%0%%%///",",)))))))))))).................+++++++++++++++%%%%%%%%%%%%%%%////","1111111.......................+++++++++++++%%%%%%%%%%%%%%%%%%///","1111111.......................++++++++++++%%%%%%%%%%%%%%%%%%%///","22112222.......................++++++++++%%%%%%%%%%%%%%%%%%%%///","222222222.....................++++++++++%%%%%%%%%%%%%%%%%%%%%///","222222222.....................++++++++%%%%%%%%%%%%%%%%%%%%%%%///","2222222222....................++++++++%%%%%%%%%%%%%%%%%%%%%%%%//","22222222222...................++++++%%%%%%%%%%%%%%%%%%%%%%%%%%//","222222222222..................+++++%%%%%%%%%%%%%%%%%%%%%%%%%%///","2222222222222.................++++++%%%%%%%%%%%%%%%%%%%%%%%%%///","22222222222222...............+++++++%%%%%%%%%%%%%%%%%%%%%%%%////","22222222222222...............+++++++%%%%%%%%%%%%%%%%%%%%%%%/////","222222222222222..............++++++++%%%%%%%%%%%%%%%%%%%%%%/////","2222222222222222............+++++++++%%%%%%%%%%%%%%%%%%%%%%/////"],"keys":["COD","UGA","KEN","SOM","","TZA","RWA","BDI","ZMB","MWI","MOZ","AGO","COM","ZWE","MDG","ATF","NAM","BWA"],"data":{"AGO":{"AREA":124670,"FIPS":"AO","ISO2":"AO","ISO3":"AGO","LAT":-12.296,"LON":17.544,"NAME":"Angola","POP2005":16095214,"REGION":2,"SUBREGION":17,"UN":24},"ATF":{"AREA":0,"FIPS":"FS","ISO2":"TF","ISO3":"ATF","LAT":-49.302,"LON":69.117,"NAME":"French Southern and Antarctic Lands","POP2005":0,"REGION":0,"SUBREGION":0,"UN":260},"BDI":{"AREA":2568,"FIPS":"BY","ISO2":"BI","ISO3":"BDI","LAT":-3.356,"LON":29.887,"NAME":"Burundi","POP2005":7858791,"REGION":2,"SUBREGION":14,"UN":108},"BWA":{"AREA":56673,"FIPS":"BC","ISO2":"BW","ISO3":"BWA","LAT":-22.182,"LON":23.815,"NAME":"Botswana","POP2005":1835938,"REGION":2,"SUBREGION":18,"UN":72},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"COM":{"AREA":223,"FIPS":"CN","ISO2":"KM","ISO3":"COM","LAT":-11.758,"LON":43.337,"NAME":"Comoros","POP2005":797902,"REGION":2,"SUBREGION":14,"UN":174},"KEN":{"AREA":56914,"FIPS":"KE","ISO2":"KE","ISO3":"KEN","LAT":0.53,"LON":37.858,"NAME":"Kenya","POP2005":35598952,"REGION":2,"SUBREGION":14,"UN":404},"MDG":{"AREA":58154,"FIPS":"MA","ISO2":"MG","ISO3":"MDG","LAT":-19.374,"LON":46.706,"NAME":"Madagascar","POP2005":18642586,"REGION":2,"SUBREGION":14,"UN":450},"MOZ":{"AREA":78409,"FIPS":"MZ","ISO2":"MZ","ISO3":"MOZ","LAT":-14.422,"LON":37.923,"NAME":"Mozambique","POP2005":20532675,"REGION":2,"SUBREGION":14,"UN":508},"MWI":{"AREA":9408,"FIPS":"MI","ISO2":"MW","ISO3":"MWI","LAT":-13.4,"LON":33.808,"NAME":"Malawi","POP2005":13226091,"REGION":2,"SUBREGION":14,"UN":454},"NAM":{"AREA":82329,"FIPS":"WA","ISO2":"NA","ISO3":"NAM","LAT":-22.133,"LON":17.218,"NAME":"Namibia","POP2005":2019677,"REGION":2,"SUBREGION":18,"UN":516},"RWA":{"AREA":2467,"FIPS":"RW","ISO2":"RW","ISO3":"RWA","LAT":-1.998,"LON":29.917,"NAME":"Rwanda","POP2005":9233793,"REGION":2,"SUBREGION":14,"UN":646},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"TZA":{"AREA":88359,"FIPS":"TZ","ISO2":"TZ","ISO3":"TZA","LAT":-6.27,"LON":34.823,"NAME":"United Republic of Tanzania","POP2005":38477873,"REGION":2,"SUBREGION":14,"UN":834},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"ZMB":{"AREA":74339,"FIPS":"ZA","ISO2":"ZM","ISO3":"ZMB","LAT":-14.614,"LON":26.32,"NAME":"Zambia","POP2005":11478317,"REGION":2,"SUBREGION":14,"UN":894},"ZWE":{"AREA":38685,"FIPS":"ZI","ISO2":"ZW","ISO3":"ZWE","LAT":-19,"LON":29.872,"NAME":"Zimbabwe","POP2005":13119679,"REGION":2,"SUBREGION":14,"UN":716}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_8_4.json b/test/fixtures/grids/plain_2_9_8_4.json new file mode 100644 index 0000000..d9a1a0b --- /dev/null +++ b/test/fixtures/grids/plain_2_9_8_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!####$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#####$$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!######$$$$$$$$$$$$$$$$"," !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######$$$$$$$$$$$$$$$","% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########$$$$$$$$$$$$$","%%% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########$$$$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########$$$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#########$$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!########$$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#######$$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&#######$$$$$$$$$$","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&########$$$''''''","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&#######$$$''''''","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&######$$$$''''''","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&#######$#'''''''","%%%%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&#&&######'''''''","%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&&&######'''''''","%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&&&######'''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&&&&&#####'''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&((&((&&&&&&####''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((&&####''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((&&##'''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((&&&'''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((&&#''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((&&''''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((&&'''''","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((&))####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((()))####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((()))#####","!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((()))**####","+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((****###","+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((*****##","++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((((*******","++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((******","+++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((******","++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((*****","++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((****","++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((((((((((*","++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((((((((((((","++++++!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((((((((","+++++++!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((((((((((((","++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((((((","+++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((((((((((((","++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((((","+++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((((","++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((((","+++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((((((","+++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!((((((((((((((((((((((****","+++++,,,,,,,,,!!!!!!!!!!!!!!!!!!!!!!!!!(((((((((((((((((((******","+,,,,,,,,,,,,,,!!!!!!!!!!!!!!!!!-!........(((((((((..(((********",",,,,,,,,,,,,,,,,,,,,,!!!!!!!!-!---..........(((((.....**********",",,,,,,,,,,,,,,,,,,,,,,!-----------....................**********",",,,,,,,,,,,,,,,,,,,,,,,------------..................***********",",,,,,,,,,,,,,,,,,,,,,,,------------.................************",",,,,,,,,,,,,,,,,,,,,,,,-------------................************",",,,,,,,,,,,,,,,,,,,,,,,-------------................************",",,,,,,,,,,,,,,,,,,,,,,,,------------................************",",,,,,,,,,,,,,,,,,,,,,,,-------------................************",",,,,,,,,,,,,,,,,,,,,,---------------................***********#",",,,,,,,,,,,,,,,,,,,,,--------------.................**********##",",,,,,,,,,,,,,,,,,,,,--------------..................********####",",,,,,,,,,,,,,,,,,,,,-------------...................*******#####"],"keys":["LBY","SDN","","SAU","TCD","ERI","YEM","ETH","DJI","SOM","CAF","COD","UGA","KEN"],"data":{"CAF":{"AREA":62298,"FIPS":"CT","ISO2":"CF","ISO3":"CAF","LAT":6.571,"LON":20.483,"NAME":"Central African Republic","POP2005":4191429,"REGION":2,"SUBREGION":17,"UN":140},"COD":{"AREA":226705,"FIPS":"CG","ISO2":"CD","ISO3":"COD","LAT":-2.876,"LON":23.654,"NAME":"Democratic Republic of the Congo","POP2005":58740547,"REGION":2,"SUBREGION":17,"UN":180},"DJI":{"AREA":2318,"FIPS":"DJ","ISO2":"DJ","ISO3":"DJI","LAT":11.9,"LON":42.516,"NAME":"Djibouti","POP2005":804206,"REGION":2,"SUBREGION":14,"UN":262},"ERI":{"AREA":10100,"FIPS":"ER","ISO2":"ER","ISO3":"ERI","LAT":16.045,"LON":38.219,"NAME":"Eritrea","POP2005":4526722,"REGION":2,"SUBREGION":14,"UN":232},"ETH":{"AREA":100000,"FIPS":"ET","ISO2":"ET","ISO3":"ETH","LAT":8.626,"LON":39.616,"NAME":"Ethiopia","POP2005":78985857,"REGION":2,"SUBREGION":14,"UN":231},"KEN":{"AREA":56914,"FIPS":"KE","ISO2":"KE","ISO3":"KEN","LAT":0.53,"LON":37.858,"NAME":"Kenya","POP2005":35598952,"REGION":2,"SUBREGION":14,"UN":404},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"SOM":{"AREA":62734,"FIPS":"SO","ISO2":"SO","ISO3":"SOM","LAT":9.774,"LON":48.316,"NAME":"Somalia","POP2005":8196395,"REGION":2,"SUBREGION":14,"UN":706},"TCD":{"AREA":125920,"FIPS":"CD","ISO2":"TD","ISO3":"TCD","LAT":15.361,"LON":18.665,"NAME":"Chad","POP2005":10145609,"REGION":2,"SUBREGION":17,"UN":148},"UGA":{"AREA":19710,"FIPS":"UG","ISO2":"UG","ISO3":"UGA","LAT":1.28,"LON":32.386,"NAME":"Uganda","POP2005":28947181,"REGION":2,"SUBREGION":14,"UN":800},"YEM":{"AREA":52797,"FIPS":"YM","ISO2":"YE","ISO3":"YEM","LAT":15.807,"LON":48.355,"NAME":"Yemen","POP2005":21095679,"REGION":142,"SUBREGION":145,"UN":887}}} \ No newline at end of file diff --git a/test/fixtures/grids/plain_2_9_9_4.json b/test/fixtures/grids/plain_2_9_9_4.json new file mode 100644 index 0000000..d62160b --- /dev/null +++ b/test/fixtures/grids/plain_2_9_9_4.json @@ -0,0 +1 @@ +{"grid":[" !!!!!##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$"," # # !!!!!!#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$"," ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$"," # # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$"," ##### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ##### ##!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"," #### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%"," # ### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%"," # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%%"," ### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"," ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"," ### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"," # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%"," ## ### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"," ### ## !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&!!&"," ### !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'''''&&&&&&&&","# ###### # ! #!!!!!###!!!!!!!!##!!!!!''''''''''''''&&&&&&&&&","# ############ ##!!!!####!!!!!!####!!!!'''''''''''''&&&&&&&&&&","## ########## #####################'!!''''''''''''''&&&&&&&&&&","## ####### ##################(((##'''''''''''''''''&&&&&&&&&&","## # ##############((((((####''''''''''''''''&&&&&&&&&&","##### ################((((((#####''''''''''''''''&&&&&&&&&&","#### ######################(((((######''''''''''''''''&&&&&&&&&&","#############################(#######))''''''''''''''&&&&&&&&&&&","#####################################))'''''''''''''&&&&&&&&&&&&","####################################))''''''''''''&&&&&&&&&&&&&&","####################################))'''''''''''&&&&&&&&&&&&&&&","###################################))''''''''''&&&&&&&&&&&&&&&&&","###################################))''''''''**&&&&&&&&&&&&&&&&&","++#################################,,'''''''****&&&&&&&&&&&&&&&&","+++################################---''''******&&&&&&&&&&&&&&&&","++++++++##########################,---********.....&&&&&&&&&&&&&","++++++++##########################,---****...........&&&&&&&&&&&","++++++++//////########//////#####----****..............&&&&&&&&&","+++++++///////////##/////////////-,,*****...............&&&&&&&&","++++++++/////////////////////////,,,******................&&&&&&","++++++++/////////////////////////,,,*******................&&&&&","+++++++///////////////////////////,*******..................&&&&","+++++++///////////////////////////,*****.....................&&&","+++++++///////////////////////////,****.......................&&","++++++++///////////////////////////.............................","++++++++///////////////////////////.............................","++++++++//////////////////////////..............................","++++++++//////////////////////////..............................","++++++++//////////////////////////..............................","++++++++//////////////////////////.#............................","++++++++/////////////////////////###............................","++++++++/////////////////////////####...........................","++++++++/////////////////////////####...........................","++++++++/////////////////////////#####..........................","++++++++//////////////////////////#####.........................","++++++++///////////////////////////####.........................","++++++++///////////////////////////#####........................","++++++++////////////////////////////#####.......................","++++++++////////////////////////////#####.......................","++++++++////////////////////////////#####.......................","++++++++/////////////////////////////#####......................","++++++++//////////////////////////////#####.....................","++++++++/////////////////////////////########...................","++++++++//////////////////////////////#######...................","++++++++//////////////////////////////########..................","++++++++////////////////////////////////######..................","++++++++/////////////////////////////////######.................","+++++++0000000000000000000000000000000000#####.................."],"keys":["GRC","TUR","","ARM","IRN","IRQ","SYR","CYP","LBN","JOR","LBY","ISR","PSE","SAU","EGY","SDN"],"data":{"ARM":{"AREA":2820,"FIPS":"AM","ISO2":"AM","ISO3":"ARM","LAT":40.534,"LON":44.563,"NAME":"Armenia","POP2005":3017661,"REGION":142,"SUBREGION":145,"UN":51},"CYP":{"AREA":924,"FIPS":"CY","ISO2":"CY","ISO3":"CYP","LAT":35.043,"LON":33.219,"NAME":"Cyprus","POP2005":836321,"REGION":142,"SUBREGION":145,"UN":196},"EGY":{"AREA":99545,"FIPS":"EG","ISO2":"EG","ISO3":"EGY","LAT":26.494,"LON":29.872,"NAME":"Egypt","POP2005":72849793,"REGION":2,"SUBREGION":15,"UN":818},"GRC":{"AREA":12890,"FIPS":"GR","ISO2":"GR","ISO3":"GRC","LAT":39.666,"LON":21.766,"NAME":"Greece","POP2005":11099737,"REGION":150,"SUBREGION":39,"UN":300},"IRN":{"AREA":163620,"FIPS":"IR","ISO2":"IR","ISO3":"IRN","LAT":32.565,"LON":54.301,"NAME":"Iran (Islamic Republic of)","POP2005":69420607,"REGION":142,"SUBREGION":34,"UN":364},"IRQ":{"AREA":43737,"FIPS":"IZ","ISO2":"IQ","ISO3":"IRQ","LAT":33.048,"LON":43.772,"NAME":"Iraq","POP2005":27995984,"REGION":142,"SUBREGION":145,"UN":368},"ISR":{"AREA":2171,"FIPS":"IS","ISO2":"IL","ISO3":"ISR","LAT":31.026,"LON":34.851,"NAME":"Israel","POP2005":6692037,"REGION":142,"SUBREGION":145,"UN":376},"JOR":{"AREA":8824,"FIPS":"JO","ISO2":"JO","ISO3":"JOR","LAT":30.703,"LON":36.319,"NAME":"Jordan","POP2005":5544066,"REGION":142,"SUBREGION":145,"UN":400},"LBN":{"AREA":1023,"FIPS":"LE","ISO2":"LB","ISO3":"LBN","LAT":33.92,"LON":35.888,"NAME":"Lebanon","POP2005":401074,"REGION":142,"SUBREGION":145,"UN":422},"LBY":{"AREA":175954,"FIPS":"LY","ISO2":"LY","ISO3":"LBY","LAT":27.044,"LON":18.023,"NAME":"Libyan Arab Jamahiriya","POP2005":5918217,"REGION":2,"SUBREGION":15,"UN":434},"PSE":{"AREA":0,"FIPS":"","ISO2":"PS","ISO3":"PSE","LAT":32.037,"LON":35.278,"NAME":"Palestine","POP2005":3762005,"REGION":142,"SUBREGION":145,"UN":275},"SAU":{"AREA":214969,"FIPS":"SA","ISO2":"SA","ISO3":"SAU","LAT":24.023,"LON":44.585,"NAME":"Saudi Arabia","POP2005":2361236,"REGION":142,"SUBREGION":145,"UN":682},"SDN":{"AREA":237600,"FIPS":"SU","ISO2":"SD","ISO3":"SDN","LAT":13.832,"LON":30.05,"NAME":"Sudan","POP2005":36899747,"REGION":2,"SUBREGION":15,"UN":736},"SYR":{"AREA":18378,"FIPS":"SY","ISO2":"SY","ISO3":"SYR","LAT":35.013,"LON":38.506,"NAME":"Syrian Arab Republic","POP2005":18893881,"REGION":142,"SUBREGION":145,"UN":760},"TUR":{"AREA":76963,"FIPS":"TU","ISO2":"TR","ISO3":"TUR","LAT":39.061,"LON":35.179,"NAME":"Turkey","POP2005":72969723,"REGION":142,"SUBREGION":145,"UN":792}}} \ No newline at end of file diff --git a/test/fixtures/images/plain_1_0_0_1.png b/test/fixtures/images/plain_1_0_0_1.png new file mode 100644 index 0000000000000000000000000000000000000000..fc662e50c8cd8329bc0207e03203bafe419b620e GIT binary patch literal 1626 zcmcJP>pznV0LPzavzhC(R;jt|^eGWTs~NdxA<+yOsU{`T(Q<1^^Qgs6nl31%533}} zopKvi=_H{u$IQwmmE#sRr#a27)A=LL_s#eF?)UEZ8`a-SPkVzl004SE-kvl70DmS3 zXuyA}GW==qPnlEq22qqsrAQ=FsZ^t*qiVHUDwU3mj7&^Sh{a-=OxE4qJv}|Wva)j8 z{nW_v$)UO-KcC20z(e6?7FAA7n}tnXO@j(#F;lxM-+B6 zRKD*9MCtUdttVc1p#z}r41EfUi8Q@zHLLmgVk`-YSSjuOTG`HMmD|h)P2yICqAvXt zDHqriTa1e%INVkxo>;;@)L|$0i(E34=y6KeacZ0+_esFr_cT}65@m|S_E1??kypTW zUh@YXv&*F84HxKKZ=y0J2{QCpJYp5A#T>oi-kcr3n*LR%O8kg1lRt`Am)7mz4^Cqg z_gsBKz_lq;AiemLs&1W=fJd8`Rr+4IROg(Qa@wN`}10wOah}FyIa*-){R~QfQ zZ8b!Awv|OXV)B(=Mzt&s3j5KNNCbMVRc`?ddkXl+vWHnb<_O%L&8VLn@R$MDS><+P@KwL#z|cTos&C9R zsTr9Y+Ap|+!k^ImD5lcNb^D>Yj8L3F%eHjYD|d^#qV@wX7HIV_YD-+E$VEDF@|ZmP zh)==Nmv}fsu3H_g$f@$}t!3`~?txYhYPd_ss!^m*Lg>SI~`r@iEB&MP=YFP5?o35U$ zN7h0rfzV5W9X-$xi9`jDJ)g;|!R8fay0+}Pm=P;u{W-4^te|bAcP{$7tqGSlgIT>4Y~#>&m@|+Gb;`9+r~3`KUUdmGQJ+ zCrB7}BX`pw;N;g%M_}whzHxWSZ-;@_w7eQNhR=)6V;en17}&NL2?l^VdWyfRNfWr8 z7ijCSUMEF+|I0IUi}EIrEY)56aB{s_H|eio?z=48gRQq72jZhD0A#C15KcjxI>@&s zQXTZO%29{gp2C=eiM*XrW!vC=8q?f_(Dvi}?FSsR_cYpMOW5Mp512dGe z8}=?~4!sTOqNXmMh2Un^UKLI`(Hr^67VIuKbAzlt8DG(Unx)k!d~C@VyI@af^21ws zABW&37F(vS#w4&Ja+sm;h3nsr&aHcap!UX`A0O;Zo5LumT*edgn#lt=8?Y&r+KPR} z>Jh$;P%SGfW?A6C8L4jPJOO(MRVS2zKTfD`4212vriL;h?ZB1n6HKqoVg2 zC@y(H35i1a@UXdnra*TYi7bsiBFVe_*;-Q*SS&6Q`Sf?E<*r>+>j+IE&XI}y0e5pny?6;Vrb`x1DKU}^ZJ z0ofl%c58%nQf?B3i5e{UWdXSR)OaewUOZ!0X3n U$R6x;;eT^J6o1c355|Rm0R$_>I{*Lx literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_11_4.png b/test/fixtures/images/plain_1_0_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb04ca1b942ad53837ee28a0ca5759303de04af8 GIT binary patch literal 3140 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 ekK)*q%l`ocl{oJncNh!+0000zU0q!@ zVlUJKfZ;G4?R;W~q{A)Y!%nIo;y$M-Iy58L5azRmdM`csj4F>Tab-#dH7k`*_iPis zt!$!itIhSKv{YuE>2dHH(BVuPowWaYw4goj9&y!6P49WVu4};zBf+5z`>FslLX64I z{wFJDyM-()6~Z$CLJ|P1Ir={orM~VUh(Emqgf~33*%ri@rbyla$OF1CRT%GE4cVoT zfLO-@c)Sq%$19+j2g*X$DS*b<&)Rat+HXXZC20_|MF%T5ehPIU#Ci}0DA)XMekww6hf zU|Q3Sh45eCLkmUg4HHo~NMIUCl&gHmE>hhPYUCO)po64k7YtJcp)l~(&wg%-xTGl$#aIjG zhEV8*k_8PiD-TvdKGX1vqVml!1HX9fG0yMqadHLLSw0_0$WMp%dVd#;VJ*hbmSY^x zcAyzG7w#f~K?3@7!8^#Ej5Sq8w$`NGQF;lRG4qrPjhUOBAW4hp^rB_3ocUO7HWjQ0~< z>y>TpiAUlLX@3y)ujc4VbwY_;&L-_k93c)Y&(k%1XO+<;jl-mbvjhxkp#5PeNmkkc ztx_LnUKafR07a@f647THy^Z96XPfIo2Ms}Uw<-DI!;nZYmJ1&w3>(rc@hAIFBm&97 z+t%vit}45+1s9O={VQ};u!>IcPw4|MBQH02WB!)}>>}xSNd`7=iUnsc=Uya%K-n`s7sb5fUb=*@vn zCkJ4h|NOEJ_+s_NS{*!$M2kD%`Z}Ml+c>zI?m|{U=r9lICEn9JMDjr+N&8cAI=j5*m74hbW<}c@3CDNK2 zOiX+GZ8eUW#OP1AnXQlt$EHftjozh*WQ)~-vhHIgLX~3lbCAJ}rRy>4{3rQw;`3V% zkK_~;3%ig`UWJ6|Gu!L;?Hey-Y;48%MMR0)gM!lp@a6l=$y4)QKQ`zD)=tLf^f}?J zS(Y1>7v!xTKRG|)7DR0tQd@2C!$+^T)BSC4+>g#u(UGNy+1`6%bcJ>XdM)FCbZzISf*}Io>t^Dw@xRq?OQ{bP?2F=sj zCCeP6bG)`N^?!p+p52Gn?3(=1TED$3zc2PyyJsj)oncV*X6-$?r literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_13_4.png b/test/fixtures/images/plain_1_0_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_1_2.png b/test/fixtures/images/plain_1_0_1_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e5265f624324b8ae57d58e2d46a9a50d57d3c316 GIT binary patch literal 651 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_3_2.png b/test/fixtures/images/plain_1_0_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..16e9c403a7b685721b838318a2fe762ed6b07f76 GIT binary patch literal 4171 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_3_3.png b/test/fixtures/images/plain_1_0_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..276cd209bd81ee20d54e58a117ed1ba54d22b80c GIT binary patch literal 748 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@=FOXD&YZb;@#591 zSMT1v`}FD4hYugVef#$1%a(8G*|NZ-y_b&>lg{i^Q#WAGf*4tb5{z;To;81MHW1M2L zV0(t@ih2zg8|+y7<4YQaYvg4&${tuU7Yu$2soi*DxH+-@WDUzi$_0 zC#?R!@VoMEGP~Nh@*kBo4;eLTe=X<{aQfY6z33&!liN%UEA0Zz_qH+CM*HPA6#3mr zRXDKJbn&k9yL@MBHcDQJjgrndxy^RQi)VFP>%=~6XAiGEXZHF3lqoi~N*C* zbXh5hEvUa*UcKSJv|zmWLhc@u1vwXGCa}H9Ogu1K`MYuX;wcHiR?Jlooh`x=8HHcU zuCTIVw>!eJ!{*t_h=$*4QXbP3UVE`I`0y_CXxR9LFC^u`!Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp$#}@vRH&X3GCM=@QVy%+?bg6+ixhl{`9xK(+I5A$`l)BY|9Rj4 z|7T5JeJ}yqO)R*^Y9In~IRnFi=O(Tn>}pk6e$4Wd3U~z)InLw4@Im^vCkw-UcAedk z4uuA%n9Sxc3v@{Ty40eNG3LLV>IXZn8DUpTMFK(&$B7ge&P(yGu;Y|JylXDo z4}FkRe(Y{Y7X&fzf;IXH6WR8>U~q`FKf>rM3sPGVeL6bvz~eHjCMQnDI-U#Sj#3*m d{y&$lV7<2E^A(+|uaZEjJYD@<);T3K0RSPuqK^Oo literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_4_4.png b/test/fixtures/images/plain_1_0_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpeWr^3*f4|Ch4#*Mc;6Xz};yQ1k z54qF7PGiYATg`L-!1B{f+n$@=IiSs3F=g`q#`<@vJTvqX9rAn7_0odx$MS>GH=cnx ScA>>7kolgjelF{r5}E*NN?&&X literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_6_3.png b/test/fixtures/images/plain_1_0_6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f78aa448b09e73b9104ea3ebd7cee4833273cc13 GIT binary patch literal 1250 zcmchX>sQiu0LH%viqTLz*=$ZvR_v&yhG{B!>8A%v@`lQ$Epe`zw?x@cG)!b(v2ra+ zymiIO>p`t-X3bDh4vHEjD!EV;^pLmGxk3f!{)s(rKF`a~InOyyF)`!>8fA$B0H6s0 z_;3JVTNMTn@GbD8Tfg0cEis7XFO^DVGTFzEA6Hjb<#M@1BGGEK8jVJ&R4Nn-wOYNf zu%OrLb*~3!06@?QcwbWH+XeYh>iD_cNa|&{%_LxNa~rHWE`wV^X??{dbuxxBUet%) zMcIcOBdLpMQLnxirJKG%l~~W_3Wq%uEgapNrT~u_m^y~?B*PyNtj3qBqC1A}rJG#X zxHhpTR3YLVoBe%D@c&Azo;5E+(hPUkb8`-dvV!qN4{-2W=e9-1LG)x?*W6-%arlN1 z2Ca)-(zqAE*kj>Wj71Y9knN1O<5VAdXp|`){gr@O@($gefC+h3n%6X|j}A2aa7ASr zn}}uQIM@!@XgbZ3>_;H1!EX$TzakiwpkcW6U}7wj?|)+7*52yi)b4J*uE?6snpmpJ zBjfkh44>lT-0NK&L^{zO+`-mPbEa*1K%r%{xqNCK1Qr}$IcItgHf^(U{m#3c301d` z&+>dc1%<);&*acq%WLfQEQ^$~ID|(^%*7QiL7iO#)3yxv9iMGv{zu>2T4#?&CU1rx zdFv#>;ckO7ZCEE3d*2|KIyI7iX6?y->8n_GJ?f=Z<-}MRVVSX=!6{M|m6nwYbVZCd z1mzNnerzt@5V&>RwXd%II;mA?9UFd=TB*$VvT|+5A!zhrX71!)KiNN`IR0W_6(OOf zr#EAnY6R8(N30KvTVXy)dIlE5rtB)cfJ_CJ={P_S2X>pUH*-iLWI`fXtX8j=%w?Y~ zUnu(wT+pm?@{Kzud#QQccr>+}EXkgBmH*K2u8rk`1lC`?dDqx$xIv+Twr+#f6-Kl` zw6#@DkyJ5#B(ZQ@@RHSSQBW7uTF&YiFoZ@3?T#h)D=5NvFen~6qNWEyA{D|W!&4G3 z$MhtbT!dZ#l5u2LNn`-y(}Kp6!|gSNM(E>B+|m0pX*&DtntKQERxn{&_3}uBI4&Zc z9aNN=pGDub%c-9e979gqv61S0bX|MR`l$xB0&gDm6U1ewfW89Oi*MRdSCK^H56n$^ zePJUO;4FCU=TBqIp=58K@x%`FXGfk9_Ot_ww12rZKMGi<(0n+(h8`nQl`oOf0(iBN zp+T;K@vBKD+l`3IgiB>E`(RcIwGf zqRCwPTww6C(=I(hen}?lP$})u`Hsi(NM+B1Nlcm41Ez-!HDmkh&eS&jcL)Uk5Io;6 GHuqoGD=R?& literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_7_3.png b/test/fixtures/images/plain_1_0_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp!-qeA{(SrP?bokg|NZ;d6{N6|fq}`x)5S5Q;?~<6hTexA zB#wQo;Vl(sNtZ1VcG)tyE7&|x#>&E?qfB_~6+J%JBRWcprs!xXc}xq-ofKz3#cev5 z*yUSKJkS1b^Yi?5+V=h4lSi|<+gTN=8?*$0&Ov|!^BE4dNE!I?E@AlK#sU#atfgc}zUAcCwz3R85A#CTiRd1QI zm)<BWne>$7^J`yaC*E4c zF|R@q6z&WRGa2UWN;;rz%Ala>;K!>Gz?|g}$t!WXhUIhCfoa-oGAq*)Cb>=Fa@f0q z)#Uw=hB9xNgWbApGuEtUTFmytPfMvHjOmd7gVUCZ3VVJlOnWW;RqKNi(=69Q!K!t2 zq6{yr?xZk?-|efo?ZLL;#@mj!oT)6oUr9xDEjF)x{WC1t?99&o=MN+IH@vsK|LL%j zd2Prqx55R2GiuiJA3l4>f$^Z{zT?K{+jk59vf*xH7RZ|+*1{lMw`Yeq)1E`e&u5(J zUdTM*zb2FLMJ9B>!ri=!M3(b+3bU9>mF?U)WHy(tKfq(ducMA_dlKlB@+j@dF)+ z9sChZ$Y#MVMWSeYN+QUh{frXs%+E9>Cg>_c4LI!EbM^(%)Y8B_JtJS3j3^P6< literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_0_9_4.png b/test/fixtures/images/plain_1_0_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8b6e25544219736f43832f1e9b039273fd99ac3a GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJ5z$e7@+O=!nzkh%F^y#Zt zuO2;m^zq}zd-v}B{Q2|UyLbQo{ab!)=PaPgN1iT@Ar-gY-q^_7Y#_oCFpKA)lu2Ne zR+vY($daB1a*F%{r#I-PCN#Z&6#M+$%lo14`W}=3_0aHx zUjIMn%?cFuWx98<;T{`Q!7b)1cE6ZT0=e%rwLoG!(&FtlHW=nlYzSGlhmGl*``phT Z>gP{mt2dA@%W4Lx@O1TaS?83{1OPh?U+e$? literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_10_4.png b/test/fixtures/images/plain_1_10_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..48a9a9f75de064f16d59d0818ab3ce62357f5734 GIT binary patch literal 2786 zcmV<83LW){P)~3^;o;%k-QC&Q+5Z0i?d|QKFixoe019?VL_t(|+U=do zZ`;Tjz|}(!?X5uf&?1*&_mFLF?V@PmON*k#F5E-2s4Pq2txzl}yrhLBTRVr{q_#zs zhi12yC|SqSHn}|PI^H+|b0vpl=8vjKQ8GylAEO7q0@WNM1-3Xp&G(#d9xf2zR@ee; z0k!~JfGxllU<5EfE@khXg=Yv890l)XrpC!517505!TTZ%0G9o4UPVwjAqSk4VrT#d z!2)!K!1IFYPl>>Tiolfn94G+k5nzD5B7zmc7{QvM4Qz%4mqp;|d23Vyt`C^fK6HV? zk~QcGNf%HF#Ulg?U>xts>H!A_;C*))fdN<=a5&DC4r~yhDFOpr5@3J}1PpMb0Rv!Y z03t&JIM4uzv+`VAF$XOI;1RI)VRhi33F`?R71$MDWc|g>0JIuBEP!%CU;zXI4B)66 z&;fH3!8ikeQS$qLh*$v3wE;L)$xW}NCLXf@RM#Z}>q2XFIpPQx*<#DQHc(No)&gJ@ z$8N#V^{aihgs5Fz3qYq$$Wxveu3iyD5N4Q}tp%Xr8C6krAK0tNa#72!hn33e6%u3G zAND-!si$4pjRE81l>zEYCR*8zvA{aNvw0R(EUgA`B#X5oBIcEhkOj>W@h}N8s!rnvgmpg>wtycj^T5+l(mH45??jX-JdLx?7tpbpwz*w%0 zovC<*DaeQugP)n@q{i|9=2?>d*e9AVZ*3uRcpzNn+%OJcm}u;dDH4NU1n@nFIrd&t z>%<8FDF%Gx+Si^t6cJl72FSBMqmM`<)8sG)pqKoqzAJ5~Nbo||)04{sSM+tcm@R5i z0dU%fyPl0$8qF)?Drzu9ivpt)@^xTZ|M`Nds1=o49>B~7kl4Op3fK{VGRGcrS8Ihx zwo%Pq-Pr`d$hSYR5#W3SyaWPpmCqIfE;Vle&$>&Q=M)H1dM#mps+BT zb2C1B3ewvHu{zY`+0k2@HTkAlm;DfB_BAfd;5S0}P-6G-!Z5 za5EeO1F%&2Hv`~60~pW%5-@47FR{p6G zWy!{X2C&A!0OS%HpveORg!{PzgbdLd{7LBN4G`Qx^p&pb zuh7O^G#wz|3`aW?fNS^v&xb=XFM#=mAba?M?zZ~_V(;quhq(dFWbmc#w?9hm+m~WK z0IKMFg2saxfPTH}{yWYEz~(E;G(mZyN80^d0OniJPNMzmZ}Jg=dtA3gy7hO_{%;2P z0JMgP7{iaw7Y5)DC@()ClfzwovHd(ZGsNW=l>YUbab5t#enJEIU48(azt8}>m$`}H ze1`^L<>Uzos?$_((sBZDgm?7*b8^KL7wor}d@cZ3{AUcnt9%?$?bqiq0B>?}MELaL zQ4GMr#sS>@gvNiA7#n!I@szCjVjy&%?Kv?@xc+QlVLzc_J=gV5Zg%oA!UYlh>&dq< zox53?xOss0-hKBj79hj;K-L zm#S?wZ^~PTJB(H}%-j_p?Q1H2{m+|IOgkcac)eEcN(mHZ;sa2m}0;3h+85 z0@%SLU93VVM0AkWJ|W4<7e3yptN>sxn4ssAf0gurP9^e{8HG?t(!p>3{$n=+Bsf4U zU#wW=3jsWf0Mu{4p7_6{@<^4|nX)uM)C+X4Co*}R^l|D2IBVJM{R=Aa+rOpR0DT7@ zix7eUFQRF{TQ4!`GXt;)A-Ht=K}-x9GXt2VB>+rX9PncE$IJj(FQN$n(Bi<$p(Kp; zH(h1`GGYgy#R1m>?46tU$IJkkg>VPZiUA;9VaN`USqK3U?8X2Pb}L{I!W{q>p05=k zqYw&-*}#o(f|dm!9g!J;k`VvCj+O<;CWKHd=rT_R5&<$@f)LIJc35i?$-A+8YsrWX zmIugkQY4ZSUZ1cfWGVa6uUG->+di8qrT{oRBY;(Z#5N;L+mX+F`u-;m*vudepvemG z1Bw=!D*!AWpEmarMX<+M7)m`9F*`Qbnh}+oC;_1NDJ>}&tN`Gxzge<6RON~^=~_jR zK?wsKJz}hlr5_8C%(KdL=7?(})&08-jU+Rq&dpx00^le-ZBXKrkXj#ji&g+g3sMn) zFKGa`@c>KhG{F1u00LuycDbz%!OImQ0RLuG!sP&hh7hR{eMSTLP7?UF0tB}QgaOPQ z#&v=v0h-JJ=6V4pO29MdK!O@9c|Hwm#~dBNj;WKrMzwVU5Lt`?AaP3-(k}#QjR1(m z0X&N@)V}Pe>VU!^gc*Puwy=LBl!{;R$pCeti0l9;oHad80H7piK>+)rsAawpZa!xy z5CaE2t$Cg>0w@u{Do^Z7%($*LKU7p8RwZ=rQac{tO`;CqtD}jCM#XFZR>%)<3B}6f zC8Gd{@!-%s7eCdVjurtpJgsZ= zaGM1n;=m5$L$bn~LRSnFseJ%@uNTVQ`-}iqXtrX<0yGaFi@VbuZAu6rdR&$jfOLwN z=}EyDm%f^3>3(kQ14Jia>Bra&_b)63gHdyksstZ5+fVMM2|@s%5%tk_mU4ML91Y*Q z%li)LuHeIxwR`80jle?|*9Wqk;_ie1I=phH#$_tNF|q>wAPBHvb@rcG0qm>5Re;th zbqKCzp;Ej{tz$;Oz?q$)58(Qux%)840e$^!&LA~x?bJFQ;VwW5=83i zy&WptUCsgOv2G?kD=V0#W6ue>Uf!51mqkm@Z^!;nOuw;vU%|9%1F@IqW~x)@`D+XA z9cS)?{D)EP;BuB4iN5IVqI7_0Iwxl#n2x}`S%PS|6(ltCqC5?tHhc3M@A=i@1+Im oRT7gDv$vmSDxZeSbSXdoFXR{vN*!C`A^-pY07*qoM6N<$g6>QU3;+NC literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_11_4.png b/test/fixtures/images/plain_1_10_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3908f84434c55de8151dfa72443b407389e6ed GIT binary patch literal 103 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 Q761SM07*qoM6N<$f&ku=UjP6A literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_13_4.png b/test/fixtures/images/plain_1_10_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..9bd507c1e3984525b1f0ddefca661a9cb2e52a02 GIT binary patch literal 1473 zcmb`{`#;lr0LSsqci-8?EOQwevT}`>+o_y5P3FYOWi6MHq||Y+N2DT4_6_TT4&@S& zO?685MSAo|(;i9@YLt6NBbQv;Xjrn2KjQrKeEt4@Jl^M+0o#e16iomC(btE;0svY` z2%zB=?nl%HuVBse3-WGjYin0B8jJGCYHh_f7W&CVXb-19{SCJ2{juO-DV+l!k~O+FHyK*IpPhwqw0^L%2RB zW9Yir{bP@J==Qr!XK>zq%c#2ITA|JN>gT9)U1BFwkE9ld-(nT0Qr+hU%2t~>HFoQu zNC-ev0feK2|0f%#_u64B>i5&zLNuE&P_U+aeX!>7Lw1-aLH5G9+ZwG_D{dph5sgUc zEu%!gBGg59jIG8;=4}Hhif9YGXn+k;{9lHVjP)t< zEA`>a`IPfhSLeOlkn1j`)e|Spqr=lWM?h}zwHlE(KlFq9MZLqHAE`rYqX|%Pxp;^t z{$#o|6t{K;sWhSA9toqdcV`;ber@Tq7hns^kABaX-*V~c273C}F+w};EVqSM1UKc* z-AY6sEpZ3$zh5GHE)6nQ$?lf@tadNZte}60VS!HHxs3}s804BS)VeefE1t}OrNe4H zOPEq0v(w86y5~>;H&vYcw8$=p?phU~oA6u98s?h|ec@Kjr6I*ab~BvYxEvU5rR`|A zz&p@wiF*5T;p?UV3sl6ur8~zm^yyYLbX zsnqlhrnR`mgcZb35lmJ?%i}pi)Sk`5#uXTL&kN5%J*vM7$>*Aizsqf}yGoqV#|Uv3 z*f7}OB0XDn`YH`qpzR|V+2bhFMkqeoUsV6{UhzPukq}!Pe*wb_q~52yqc+woKTq|N z+~^v|p+rXI^1m6))|sP~dlkbG%)HHeq861-`m&y}SEprTd~xf_oQemZd_Dem|vcCml6 zEXl(t>vuJbE-BNoUiFM<1EJ)G==WW4Lp~a`#}uq3$^KlTs~zymRS@LN6Gi4`nbs__ z=^-Xn_X0tRs^cZeK=kEq8|*wgz^Xk@6Zk%6Z zg4AqMTJLxu1Lfj&ouwOitjy#?{Q*6?dAOdwxE+h;yhT#X#BW34BN%K? sdW`LqKl;oEOE@_WN{ZgPPHVKA*NAQ=3-0_vUioC;>m9(jzbz``KOE$L@Bjb+ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_14_4.png b/test/fixtures/images/plain_1_10_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8023d372f5c4b17cf58f997be5de6ff1ac39b004 GIT binary patch literal 3474 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 P@GmBY76vtXE>Zsjn6Gf( literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_15_4.png b/test/fixtures/images/plain_1_10_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpbq1_Ke63p~jWRs0er2A$x$ z7^d>$cp39;{ZH%mK06rO`9uV$oCwfxy=>NG#@7>hcFg&p-LUbiLbX>}LEwe3)+m`O6ta z*b&^u>QcW`41RB%wpS;=^)P5)2@@SD@4FxPFp`0)4cuj_i1rdSchqq zADFQ^{%qyE-`}~Ij_uqZD)gb+`t9NdE_R@w=>Zh@elQ!ZxyW_w)}lKg`#fF!T-G@y GGywoH{(vn2 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_10_8_4.png b/test/fixtures/images/plain_1_10_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..6919840e881d452ce178d2068d36ef19d52f1ab3 GIT binary patch literal 1768 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_11_11_4.png b/test/fixtures/images/plain_1_11_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..30ddcfb40f001f72573c936ec693506abbc393bb GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJHz$e7@`}gn9o;~~Y>C?}j zKVQCldGFr6hYuhA`}gnd+qc`~BL4%Gee`s345_&F_L3pjAqN46i&Nqb7(ZcKwtYi* z(iYK43HrOXDkS#lHk~lrw)^bwqX$AhcV#}hZWQyqeM;W#FK^{ovp%I-F5mO1A)?&! zL7<#~bF`#D@a|ddFD=TpG8o3&eKsu(ty6eC#jG~;zzy-8|K&g2agB9Y3AA{iz&*{C VKfdJ}?EejNfTydU%Q~loCICP+Wpe-k literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_11_12_4.png b/test/fixtures/images/plain_1_11_12_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2a24541d8dfd2c3beff2d7a758ffd13ccffdbe24 GIT binary patch literal 3689 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_11_15_4.png b/test/fixtures/images/plain_1_11_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpgWP0 qbl*ktO4xzy`e2=~loQR;Sqyq!l8iH*gT7dRWISE{T-G@yGywo@=`f)H literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_11_7_4.png b/test/fixtures/images/plain_1_11_7_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8f08ef6b47d8e992c61115bd5fed0a623c0d07cb GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJ8z$e7@_3PJn?%a9!@Zp&= zXWqSgck$xIuV24@{P^+d)2Baw{`~jv->LX5ia^D;JY5_^DsH{KX~^5)z{46)qQJ^- zaez_EflFA?fiGlILPO`DhjGvO^xwX}@{BK>`NPe?H45As(GnYY*8#O-1q-4M%wYRc zU$3*D;d5;oW4AT~!wTtuX}8o3I1{A`mN{3PWMDWDT`kQf6DzTy%!vc5A(ROQFh5|d WTF-dCGgcxCWRj<=pUXO@geCx`kXF0^ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_11_8_4.png b/test/fixtures/images/plain_1_11_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..dd241be4529df597df9979cf646af6b015972bc1 GIT binary patch literal 1909 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_12_10_4.png b/test/fixtures/images/plain_1_12_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..345d4cfe90dc29440214da3e604350a2d1f62c05 GIT binary patch literal 1432 zcma)+`9G9-0D!;mjAjQj?qeKT6Im2;j$@WL5u%|&8bmS@E0Sc$&g)#uG)XNvDk?|$ zxR%D5CLu=+jT%=n*h$nxMOs&Df7>7Tr|0wOo9*-v!3a6%~CMG8MeE!_r-00}2NF;*1o{Iq3X5-?p*E4QR^xEaZ zn6&~3+(e}b&Ko~b-4pUWn2jgK;R*CLa?k480PLLqi!1x?_|4-=5fsYBE@_6LF%yYGt2NkI1R zK88tHAqE7lYz!r|hO4YXE9TivEzndVe`r2A4DlQsmcX`^N4EWxa0#)Dt5!N=$r!?f zwn^dNI4BFQe_BZJ2X^&|JTV{fj$m|!G%f=t*qxE(i+zAZ@EO_#pjV8*Nxu(umWtXg zG&+9SF9Toh@BEOLk@~^`g~$ap7gDBk_0o2UBW3-(Q!DZ*i6$?28Y*&N*k~#)mD%%7 z=)}wKf90-+Zc-C9G22-N@0ksTlg2Hm_{&r4`*zRU#i4_+5PQHs(*Y+lX`3Az5oUF9 zJD=*kEGITtXxzcCbGNe3W43>Sa%@SOt?jbYjMB~Xo5e2b3Ek+ZmDdIV0%cY~JgGOw z+v5=-kY1A+WvL{!T1X66St4GFPeVfXA3L4-!^VS|1n!fkJGVL3h5ViWLNp{igF6s2 zQ;mE$EXO z`oRmdnTSZQ7N;1NwtxQwMSnSQW8VKy+3~M?q27`{v3p`Lh2$t-%nO&mXRL8R2+aZI zs*F^d#LJF(yIHuqWV6t`Tvs)OD_Tl=)Ozrx4z(X1%QNP2*&A!`Tir|ryrP_v$EXz@ zr-qt>hvgHrnsKU$E~oT7*~ACHn)d(62(}Pl@dOw>Hi!h{{IMj%J(@-E(I-320wwXz zn{*h5$Leqp{dz$(FbIXGQRoqMRhe%b5SxlID~62CK&{5Qo?ak8@0bY~NH#D7WSJAX z-5xk80))1IM+H_U70_^pDYD7|9QLBLiZa5Ygx7AA)KF_vF&ANUkTLFkzGrMYsE03KE0!F(bqq>H0guEQkKc}#+b^c zD-<7DMDAo&)U&VVc15jmB9RyOFX=2O?5UfY2GZAcZ7by_b%GIy@%-w}tw%Z9=w4$L zxJe)}Ez*6&7f8{|l#~$?qG#he<$_%PP zBK=2GjKqkBiV=L!T*gvRduUkhGlWv42b%nfWNzR|{mbSh7hJb1pF=BXC+T6b+n>L+ zIM~dN>Eou14~_UCCnwbDT$m3FtB;?BJ|u3K;%~m0`e?=&sm^Q3)N30z)rwVfA0Xbj zH9Oj7PW-|?ZPQ^|^s;@jUaPHYWkOrhzCE&I-YV#v-qI&()%;qfjl@{Q%Zx;nbg z;G#9toE#mO)w7(7=|$Ghl5eDEb+MY0ex?mHX1YLwMQ_6*l>H9vphY(4Z|{;UPb>xY zr~DXJ$@2;ir0zSl_4%~-#u4d- zm)Cq;{s3|_d92;3aa+!X43h6`>Wg4Rg?4? zDum*8^SUxjUjDN>yql@*`HL66oEL6g;aIfbhuH5;4QpcO{&Qct@5ZKvy3#+B`Bw>N zMLN6{U^#u@`lg00Wz4Gi^K*BYD6D?wK2MB&$<#k@d$svj)HI*_6fdpE6>$F=)l+0v-P-MEa5i& zwU2M!-Tg)lYouR2slPd$P3PU8@He{@683H7W$r0gFyakZ80hdX{D@A%inRAVOlH>M zvssp$-D}46VbRn;2dliy#SH#ydzj|5-vA2P`)>_&Fe*OF6c-OnC3FS{l#SzerhM)d P2HWlF>gTe~DWM4fYCRql literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_12_14_4.png b/test/fixtures/images/plain_1_12_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c73ebaa8a893e9d5e032f9a5f2be4b834bbf3969 GIT binary patch literal 1907 zcmb`I`9IT-1IOR*F>{NWqnuG;W<^Ynh~>5@SLIVf))Ypl_`ZI5zJ7W>UcbGlu2?%M@q^+307yC5W6lEr_^X0| zu+T5m`ZRg`!ZBB8_p>Y(i^*h;jg3uAOsuc3^ZERpogFThyRfjpX0zw!=6F1wKp;3C z9{x)JgE?T%xW`QLrk{sS*(w6WA7X!emx&;_MJ&I6a1-nunq(NCED!udMC`MuU}+=W zoU;4kQvZTepWK54cJ`8VF#|a(nYxw7&Z_n^TFs)iO@tE(k1c1?X0|>~82PMw{I~A^ z7VVCB->QcYrdarMIK=a?HNjg0r(~fFO!=FE2kcx!8C(Kzx%E4J{1&3T5DbAd9ZzxuQ z@&}>QF6zrIo%Oi#5%q*aZ;>vs_6drq7G`3^ML)X z*DbN;c=WVds}L4|F8JKU0%kI^k_Zv{z`4_^WTrmM${Vn$f9fq-(y}Ag|`bL)hqJ3U~!O0B$i|*7`m>r)u*Ja~Ij(HOUT!I33g-S|b+ra(X zwB7YI=;Y7AdH{E@*!uOg&VzuW&w*gvC(Uw;+0$2dkhQt|v_D`yI%}YoOut zSATHDrswWZC=p`52vY9DG>YX#|L#bx@_|i4Lth<|CbxIf0`s*&Z-wN;<^ZBzbT*8W zG%vr;Bt6l=&BXJ%jCatZ9GMuLly^&2wPiJ3qCCtI?}-*wIGYA!%D3nyoZdY{$ODF^ zL@qNzWC;areMZ_&knh91sk#~AksCnKsUPcUmHJU^pD!ws(9QmM|_RWFLEyaeT>?e`~dOYQ2``9)4oq*RSwn$UB36gu#=8P(7A``#Aj{&pQwIQ z<3x8Zjwbnk2^*4CQ(x=tY6*!SXVRSPs&v@HFrU?;;|6?Ng2r`@gW|a?v}2x=&D5W< zC4R6EDZWTbc}#8doh+&LX0bE<)8)#l?+wZ{qEp9z>kY*fE9OOM7uPc(Sqd31sY!Lg ze(soE`mGFC)vrct`NzHbcII-zi##>q_I8ikBR{Q<>)cPie3-GCgMRlr%PZt19bF=6 z54Z3AeEZGEw63Ks8komzKDzR0X4w{ZL0@4sm9K-olKkw*uJn!7f&uP%sBmR*bfKwx z+is;-AB%9z(Tt&8a4(?xwcviIXF>)oJ9wD>)lu)IpR3^{OzW6ZKh4Kb2_fldoRZ3U zWe{mb!d=e>ow4$1V1QLzE7ii$GPZF{PU(O%7O3{;aAoBJJg&K-Og^5d-(t-c(xpl7 zybHOND&i+uM?UOEWD#pe+^~yZXe)XgPG~9LyJ@RQ{go-v}(Hd(9-&ggv8|`wl zpuoNiSY^6#uwDGdB7H^qX7b4OhlM%4IJ|u$UJ@J}UecU6pa?lo6S0L0_KPA148jM2 z*GdRRKKa-clA5B13uBcka8E&maq=J)Wls+=<{K;@K!YxXg>)=QGBzzU&CYv0irzLt zhXCe3&1D}ou6?4QfuE6k6-&MAa+y8TaCgq_&<*Mo3 zoP3iO-+Ji?y*P`aYS!Sz!Wu{5AivCHkN-4#%dfG99C`2vdCOC7Z94*63hgjr@ituJ zb+}1eGe=%JNpN316|%lyAU}M1@`Zjr^j+>u4?8)$*i@u+i@_7@(l7zkMy=p(Fx}r3 z(5jPTtfz7>p^X=4hdKaF*%y6>ta4GfN5FQ0Gkd%hEZsZerrmDKHcsWYfGa3gift)$ zI)yb7Z5R$hN9gbmZ?0iiBR=VG6MLm*$3ru;7%JUwBJD`~|GvuMEEZF1jZ69;EH-9} literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_12_15_4.png b/test/fixtures/images/plain_1_12_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 KMNUMnLSTaEdM=Rw literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_12_9_4.png b/test/fixtures/images/plain_1_12_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..647fddcfb8fb2d495c5b59bee49011a17f2e5456 GIT binary patch literal 1528 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 DP?C%f literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_13_11_4.png b/test/fixtures/images/plain_1_13_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cd3908f84434c55de8151dfa72443b407389e6ed GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd?%lg)&x^T0uDqv< tV@Srmw+9({fxJTtzWe9$nJ)k`!C)V+B2a(5zO~Bbpq!CW^;{THl^O;`{pL_4?`k>pS6?tu;~{D-Hla(hgDV0f78T2oQn&5zD34 z@sHGx9dV#?IGpb8ZZ4NQJUqOyv9Y$cwz9G^H#avuJv}}?J~1&N6bc0b!MRf6FaU@; z8pYfpY(y|hzcOMa1D01US2K@C_!=El)jcYh8ld%!Og+5nAK`COb+DF(Y%>gA^d&Pb zz5TaK8***Q7Im)em8La;BN=a^OKdE}I;GvsGlRn;J20X}xUH|Rxl1#$@9RHVXk?N2 zZi{z+Vo;UXb>XHU3{*+({3tD61^kT0e{D&#+M)cQE^HY4?SG zciD@*QQaZsL0Qd5&6pDf8xqSLuYK$qxl5HZS``Ct>Kr~tf7W&>8-%}~<|Kk1)h{wf zi%R2mm*VAJ^%e}ELu&mhJYR5*>km#u27)04>#RG@Y2hdaLA=TFgr+~m(La^AaLw=p z(xE#tm{yrywy#xnBW$K_Ocq}+9EiZTC@>Q@x6{33&ksIdDDOul6wbLgbww8i_xk1D z0`;acC#CH)Wk7#I9w`yJ8OOJ*8agH7I;D?aN;0D4OL_NPWAs%XKEiIW37+ZsMVAA! zK9Z1+1|1dGzQOobX|B2&`8kOv_jRsO{Qwewiea|UBToD}o^)f^&ZfJfBmbTfQ2ms7 zSza&|))Y*V^U6M^X0Oo_)yf%)!~5m3rQRFsw5 zUO0=Ekhu9pr|+x|EKKU&u4J_{g+r%-t4sVmk-?vBtsCQ{offHd!I86CJ?6|s?)L#k3!Z2`71jrh;$PqL&d@7`{H9RbIt~W@*ldSi4q3efWhCR9 zg+#)RMq{e11hg=_e)-vK2tY0Vs0$WB5p5Oz&gIyNN=038A)`x>1 zyvt&DzUBNLss2J9E>3nI_juET2)Ogy^fUKi0chpntw)fTe z`_>DsI?D~~j%imhLeq62rTTuCQlliAYW0gWc<)LsyL~BA{&*(`+WY{ejL3iXV0|+E zsiLcBVVCY_glO+=Url9F8P`aj`S}S*Nxk-*R61)i;5V;$V0jna5v!h?@8kWp&e_7T z#%#>36w5s^N6ovL`HBrUF_nf)_VMG6LPU@Sbh82T_4 zP1yeSXK22ro*Xi2D0SWyv=8IX6FGd4EwMKv`_&5hrR(j|2`ZE|<6THNpo%i*5WOz*eh^ zwVdLD`6cpeO27?z;jfzICJrxnA%mYf!y|w$@_k=UpkRTn zrkj@EFXDQg$BB$2j*K#$-5LWKr0w7J849`OJ&!az0V^5eSz}_G(xq_*_$E8iYa46# zUKEr*b%7Pl4@4o?aGo4Q{6BUfDk-&Plv9`cMN{&0L3xyxzFcxYq9kp4bN!k7#U?h0tE3M{Sq{EsH;kfTrXI<=eHl&P{jbKl1z5ezG$ve2D!^QF^rt;pc)jfMHt{CJIa@!@u0igT$BN<| zS|REPuIr82N6!xZ<3`%#A-nFvG}TlQvHld9=oxc5hR-sQZ)h*r5{zh^WHd?LqaKut z_`=NH$G2HCR=c^Rmzf3+t4kg&h!RoO<$TqM_F~j>;*CV3IoPX7{t@EP0AxH+GH6~coUwk;BV`-A z+NLIN8#za~|B+laFs_y+;mHRsFq9&&W>ofJU1U-lYT~H_46ZkOE4eKgP?V6P6Su$F zLsKSm`%Vy#)t17taE<*R;c={9 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_13_14_4.png b/test/fixtures/images/plain_1_13_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_13_8_4.png b/test/fixtures/images/plain_1_13_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b05ce1ebe7c939640f2825dc4ada2a61a9b6389a GIT binary patch literal 4079 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_13_9_4.png b/test/fixtures/images/plain_1_13_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..50ad0350a040e937453dbf656c0e8ee0407b3a2f GIT binary patch literal 3709 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 b-~{*|=?B%i?!^vx00000NkvXXu0mjf88x?V literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_14_10_4.png b/test/fixtures/images/plain_1_14_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e72842338e674f4239a103d04fd60a5e97298a2a GIT binary patch literal 3238 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 Y|K11i?z$axtN;K207*qoM6N<$f_4n?ng9R* literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_14_11_4.png b/test/fixtures/images/plain_1_14_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3d91bfff8c649d7fd78239f540b107812f11f6 GIT binary patch literal 1235 zcmb`H{ZrC+0DwQAFE0`YNtct%5_D#r6&k)QYqqaw36)CDjM9obX>~;t6U(yf8*A3k ze97#rXnN&Y%NOV>Brqk5=4E7WzR_}ENjZarbmBytx4&UOJ$Hc_M*x1)!vc9 z>;(U{F9fK!vEimTd4W7Ua?#mX>_gR5bGVP4>xiv5C+Z8zImel_Lx(Pg7AXI8?XB*2 zUHSSs2bRvk0GUxjEMhg1i}O3| zNdvz6$#$NAfD%+hb~RN4?EW|oN|ctu<`WcBxJb_?_$^1{iOcGMw;raWf*7I#vQVWN z5zr+t(u{DZJ`$n^t1hBkN7(vUB7Q!*n$QkBeI#M@I7F0;MlkW|s68yGDXJD)w$h;i>u~NKGh}c>GI915+ojE8|d}*-*0SjWz^J zo7!9MyXl!SEj8@Lp}dZss}kugt83BWBNr}~Y+d)Tb{xK1Xiq6nws|HQpVm-b=SwM> z_3x5B)RE2$x}5Pz>czfnL1-}LI^#^zkIFh$QH@$$^2RDYY1rakS&=b)Btc7+$Fd53;SnT#pvxHFj2deDH9-oTb~39LAF*08B?HlUAs(vf^<$6!?1`tIZBhNva(4-VdRix| zc+ha==hI3}dBYxEPtuNV=I!%$Dz|3Ms$a3e_k1BDb=5}xb$G;TeaUDlU-9e=Pv;S+PAF`Nx%*g2MYD5&IUx&?<5O^Ll0)HlM zRWHV3W8aj*69tsg%RlXd%f+aNulZOHCc2#3);xEi;(j25HoEH(!=)X1hqM*H3Lc5- zi)tq*HYDn&BEZ2wAIVK3^By^|=qSqc4OL}B?P&1ICm!4o**;)Medk$;(~i1sHHiK7 z|9rm&8wApX{G;u4CwG$vI{$WV;Fep4y=bsa?sl#2T7V|Rc!Z{r%&Dq53mUG3-#jj`9h&kBoa+bOsG_d(~n>RAPR2(5YJxCv@oVdI6_> z>1G9o8Ui%03GNys3gRMow|;&uBkiuf{Em~mA7x}}B1>J`(kQ|%-U#gBXD0=3=LjMj zzGe}hn1*uWUr$%-y+>rNv081M?16qV@FP!WQSg4n6SUd6r?zjh*EXx-@((qLiiEvC{*?iY&XcX2l6%xs{Nl?3y z;9v!_H3?NjLP;z@V`{6uFlQPSIp-Q_3*nE`nu=qV`n`z{b41@0vD z8@909NnQaM+mm_DpJvkQ`@^D`?Gm|t-<#v-$zm>ua=CT6*s-oP1iD%)SjE`wnz1Y( zu$t;mf|W(}@fnwno~?ONIuU!ekW_EJ4JB98K7HZ0OcPYWcN-qc{(|LLezFtf6Qk;x z{iW}K`yacSKE_?C>mu&o4`gbNl&KfciiOG1SCJ!g-@lv;K0AwrjmL}MA~p6M?e%y{ zpSGvm?q-zXXG@@p_c_1kV4@e3es7ydJJoj}TJ^9xNQ(@wZ5U%8--}YTtV5O7ry71O z9m+ChHnW1{Rjqe)INss%h)u_1&K%B}tt?ml@IvorFYk}G#kkcddAVXlf=QfdssC2? zK<4A?8e*N~e4N|CzI)mZM@=C?yIPVc*S7k7)~c;4p+x8)e?4Z!u+#uR_V=ML}OPH8HA_9(PCmJj!%D+RK}+$)bfH1kvN zOa&XEXu7B$iz3F{omc+kpDu5fe{$k=EI9N&FGWvvILG0_FR`MhX-2{V+UT$(mPX)K zXJ)S;s@!6m?nv0P@3Y#|SjD0gO>jCRXJVi`YJfyNt+30^>o0@S7c8+T`Qpm{fh)NwI%Rr^9o znZhRZb+}skt=>a3wJJzn!!FTu-^X*qnW4usqaGo~eVt&(0)10lq^QS8`w`cZyW?tB z?auQujkfQ|>l+jz%H4P;zV-|_Uil^%QNizBPT9b(vn#of;lYqH3u$s++c0Iaou`LC z2;W{YH@c9!L$?BB3kOLVgV$P?BZJm;!Nb1>7nQzUA?PghO$bELZce%M#X%^{fB*46 Z#TIm<{0A>-^D(b~1xLIBNR31)>mR4D=ez&_ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_14_14_4.png b/test/fixtures/images/plain_1_14_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_14_8_4.png b/test/fixtures/images/plain_1_14_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0b9f67b73004a7259e7041d9fd29b4a187e22647 GIT binary patch literal 446 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_15_13_4.png b/test/fixtures/images/plain_1_15_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp$exaW;} zmR)-KZH`7+TjUnaqTtfSdpwobD?M#?6vfAgT3VU3C$ZkqiwtIw?g6(dKZB(+B~j(h z*4-4-lx9?|Jvwg32(Fd2VwB+N{H?9D}?6zDm2;#)snhnIJFFV}2rf44ONfc=g5#NGFIh zjWNfjhqV{swS-JpdU7hZ-O2vZga!3!+j_<3GTNbl6ib;Bbemakf zU_muT^D_34T%}jQEkxG83xry<$t#)4Acw!N-|`+k-P@QPX30+K@J(~7mLP?tix>K8 z5Y_FqAF9E`y4@NVXNs7r1Zj%UMv)sfH?V2Kr3~uG`Y>c&@`HZ?)qfT#?SOk4g<&Xx z`yys@pFkWv3JuPkQz>7E29M2wy#s{TgU#;Xcw}RaYcvaEpE901!P8#m6G_XAcfrLb zTPf(=?*8h`^hfyAce2NI`@pBE#DXm=nc}+XBZo<%^mjfAj6D^(Kc2`|$WECG_AJ`# zi0)fg6HlV{ZH4c5lv+J(PzY`>SZ)#i2UUMGk5vqWS&dQ(q_$g;n0P?IA+SXYQ`BEC z^3=kZh}q$}yFv59p#5U(*L049tRrAEbE66@u5)$sR=nsOIAm|Hxg@dA0r6;Hq_W1& zlUOpEbVrDdO95Yg>q_efffUpQb#AChen7y@`!?H^`rB7u8+OzcwScjlYW2aTQec^F zE38|`B`F=ueJ7V3ScpX0iTcILFhXR)M=#am@y*R&sg=8zU#f{_YZ)ed@zm;FzH+H7G0pZ-uQ|AWr zCN@^YyObp@%_aB|OU{N1<}sR9P9C@CTIKr0AlW)B0ED}2@`)uB?r*QTd|>iIDi1aQ z`6n^?0`SEAfP(_9rr@zfX|fSpOvB*C;Dkp1P;>t z{+8QcWUe)1R7G(A;GMvfWponyV*8xZe@ln_SfNFtd}jt6tLknJq<8S)%TmWLQU9iD zrY%p}l)w-QwuJTn!p|=B1m{sP_hbrIPV=J+iHU#l;cD*N!udCC|FiE$lTB~|t2?Ru R8h7T5Km;d>EeYWj{sWOQ4ov_6 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_15_7_4.png b/test/fixtures/images/plain_1_15_7_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d0c0d115e6594f6245ac6a8e882c30ab1967d271 GIT binary patch literal 1743 zcmV;=1~B=FP)FMd=;o;rg-RY0D0&t zxH$$L0|Lh1W$0h{PG<}}d%YL~Z3XJX!7Oky94#kc0fw*y1!z{jTrN~$08*<6&@x5A zVS882fZRNY#?cN$LL5+9f435^>_Jq)yY1+k5EPP-)K$8G7v)In`2E3>^Zr$;V@gc{ zaDYm!O0OOOCnK$QhZ08S#L z99Ik4eU1)5716Qdq7;9F4glA4I~R@_8j8gTB>=`>ZyWf5HQ3B5(|7`#lNFL}*no_vfV^PO`)hV?gZXuZx5Ti003J9$)|lU;sZa4jOQQ z#Q+1aL1_?xeQ3Y|2Mn;l0U2O`R>D~2fSaL}0M7$P1{N?8jllw>Ja82#&;SEG2%!P< z31EP*1q{fQ*of#H1KxuM>?D8z!X_|aL)O#o!7317S~d&r!6?+2P%#^yZ1X?>W1auG zkqvs-NKV63F4GniVB3HoxjZX}$JQzTC?}#wr0CjiAUp)gC1M6hpX%sF9wQRA9=L!+O zm;d$$?~_v=i^%8pTRoS(<{eNOF^Z4<0cMa~^*%E~3f6rM4#$fkO6r~giv`hND=-Cw zlpn8p2AEDF_|nHB$sG|Pw5f=`CMJu!Ue0p65vzdE@}jW+iZ8(ULk~05rzCx@E;!|% z8G2!{=nG)4c_;$+UY^Y8 z*zYC+031qk|J{*$4*@F6+W`RT(G=$u@Nc5=-$?w$fV$TADN5P}AW{P+L@N*)*C#t> z%_;<-+yum(_E3TVSc~NH%Q>eb*M~t8(d}Fubdx&a{#3i=e)2y+&C`klX9m^^>R$H7SdU?wA-3d@0s3ixG8yD= zg$MZfG@wW#hYJr-JFRI9)MxoqJ{r+u;Z{NP`YElvwij{? zC|9ME%P1c*z)W>Mvr4Dm3M_;=_6kf!r~_;PRgRX0CjoZVlACbb-^>CeA|s6|tvJ+Q z!+36!GJve?l$+0wBg@Ri6m39~EGrx}HkGFhu*ve?QMyTbnvMACjGUI(5r^w&lQuvX zohWD*fgvOV+Sb~8ckC8Hdq6)u(mlvNk=8JO?yyk6G6FslT9G^$M!cWuK%7!=t&Hy6}Yv~ losj|N1!mDnM?sE={sW@FN=f5>y@~(;002ovPDHLkV1j{A3Y-7{ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_15_8_4.png b/test/fixtures/images/plain_1_15_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1ab4b4b7ea3eb22e06bdf5cc282d8c054fd46cee GIT binary patch literal 517 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 J(JZj{{s*x;atHtb literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_0_2.png b/test/fixtures/images/plain_1_1_0_2.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 F+J7zK>V*IR literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_12_4.png b/test/fixtures/images/plain_1_1_12_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e0feec70d21e023d248ea3b72977c0cbd6c5551f GIT binary patch literal 1070 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@(xpph&YZb=_3Fou zAAkP*`St79r%#{0eEIU`&6^J&KD>MP?%TI-|NZ-SR($d+1_tIso-U3d6}R5r+Mj>h zO@zH5cjn%2@*d4^+#Y4|G~M_bz;Ytscyy5DFT<@34=2rwW{KoFF|Ej*zfrnV?d3_` z3bpy>(Y!wQkp{I-EOSa|#E#E^EnOsyAR^E0OYB*iSx!_#thvRDY z3bXIsFWL0tUxWOG8B9Uddw&}|tz+3LozG>lMgLI8j_#zlAHV!N`OjBk$CYPnQ{Fdl zD(z0Z^T^VGc@>Ms{o^kMY!cbt@OmA%_~g&lSD%?QHp<^k()jjy^4fr(BJwNZEf`nc zUG#}F#`jawd2hC!hR+-9|AkfU*YQ2JxMVheL0IUMy!opNAF_n7o-EXMm|e(`6vcBn zkwu65I2SYD62|sR4C%oV7kH``HGFCRVDW;R=~2MSk0zRCEUtg-^5)N8m6t2wVxL#U zJg0E?rJ|Mj#?v1yyqChZB5l3hrOLuO(@)3M+0HOLmYOSKUlMT6e=qkvnG=uaS{L6) zVpn;0M`Y{0hpcCgPrN^YHN#x4gQ-iYQjzCJmF%7AOi{h}Qy5dq*vmrO4`ypR{3~la z>U1kGR?}hXgs->7_pIE^tT8L@&B{+x^Y#LbN_DP&I(cEsqy0M>pNPn=z4}n5gWth# zUdK%9-5rUnPgZX~u)lQ6dA=Fl>r51;vdvIVWY}tx=&rl;>Ru2ARg z(Em4;^}@^FeL4p|)`x~_ube*Rd0@qMhDF7f{?^a=P+>iP)ijfk$lvc6Q>64%wQukK zcrqz|?pz}VwbYls-ujaNwNJC2$o_o$=>(&}Lc?yEpcab4u@*cwly+p=uAq;&J|*L!do-nh4IQA0k#==D%=a+%`#A^ qeSVVZ#EwG@4^>!*$ukZ4OdsqwtoZQ9?xegSNQ0-VpUXO@geCx>ZOT3X literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_14_4.png b/test/fixtures/images/plain_1_1_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 h2rSa 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 M*}Sa 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 R;g=v2Jzf1=);T3K0RWD+UkCsI literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_7_3.png b/test/fixtures/images/plain_1_1_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..a8574a815f9f9745067f2eab8a537578dc58e7f9 GIT binary patch literal 1072 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@+_`fXFJ8QM?b^+o zH@|-U`tjq(pFe*-efsp}%a`}=-Fx`(;oG-w|NZ;-Tc*5}fr0smr;B4q#jUqDz4I?S z2(W+X@^4^a-^XlTm7!R^#LZSAP;^BVbC*!flZiKu2W{P0y;!BLV0FghQa=U3+p~kE zpFjNJys_?y<5ii>%}4B~yJRi>n`vWhygSaj!#*46A{v7O|M@EXc{ubk8JXKBGyR(8 z$lYP7&dRguNJH1si%c?p(v6Mk*UUK>YZ+hU2{F}4+1T)NFvgy{s-nhXbNh+xrL-%t z;thg|4{oh2oit$+-;r%XmPg)NEXj2{c|w^j#KJIP&Ces23yg&hoV%b?XZt>oq3z6? zxq*F84gWu7{oT@FC|>(wl0bl;y5fIp*#(oBDx6P#YGk^wJvN+UlYq?RoWqSmorON9 z*@9O&si-{)sBx83R8Z(XaP{Q!5|#4|DuNxpv2(nBCjN?^%rCKV$;7vZ*GPmtVb=TG zH;Zvot%N6g$MXBviVnC>^3vc-Dce`KjsGcg8{6|G4SR3?vI)>&SnpNr*v=Gi^;yGv zk%n(Ie{-Zg*k9=V*XDkje^@ukLCEsB@c}!=2MU$tPkdO{l^nQ`dhWufWeopA%pPpb zW=Y-`!I@&;6k8_o`KXtIbb-LV>d!}_PdMGQJdhRjd4bVuwo8o47r9H*{GA_M&pp|o z@tS3!`FWhZXnaIYtH)|r5Yy`-;$9CW_Fubzi8sS zrVSrYJf2l^;B=&B-ff$VicO5x<=xqys*;(1q>ELU+uq&FtTTT2PF-uY)F%0Z^YZ^` zm^m7EPTBNDWlo$2r^AKaH~CZ;E^)66IB9iIHZFaa?r*^*&K>hr9qrHVo9yOkq)_WQ zckYqy!Xx(=FdOtP647TkrRJ%h5$RTEI&aG@m4@wIkqk1c@*?yYqS+)LDCu+lG@HPG zLtAOWl}o0&KN~t{zHfR{8fdN};jymjXL*$ge-c-N(Q3|K<1UUb%k4|b3_oi0rzNSc zSdxDDNo)25rejhcUsjy?&)X2ch$-ZA>TCWGH)ap-hsn*iU&}{nv%S&NJe6d&Bfn^M zWp2UW*RL3a!);^B0-u}jU3ahh)w<>DI0UAK2;SdTWbKfAyU#++r*BnGXn(>D-)!IM zcmIX2zW#mIqd7Hq;v)Hue7-KY{iwT1%UhM7I{%!vp6?Z9>hi3JoVF$AoAs73p~jDg lqIagsdb&Kye9^`DlK--19`pD1Vm452^K|udS?83{1OOInyg2{> literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_8_4.png b/test/fixtures/images/plain_1_1_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a79d4e0a4feb109a5a6ce16317966d69332929ca GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@+O=yJFJ3%z=FF{I zw?2OS`1R}8pFe*-efsp}%a;!yKD>MP?%TI-|NZ;7AZgzZp#E4-7srr_TW_z~`ZYO< zum(I9i{YL-buOp$g$q#$F%75KcrJa8mij8}B|LGVNY8;qE^8tV>RRM87f-7EeoiL$ zP%#Sw!vyvk(?bo@>q5JkR@Iqirj$R(GL2JXy#Dyvnkqh~u+3@P&$wA0*mY};{j~NB z{x#9%=RFUUudV7gdzdw)cj56D^=!Qc34f&6zS!Nf3OwMd`Tg??(J4V~jt5e+xo6yc z!f^QQ&s3{ZjCubVQYSI5DQhURW&3fH@l+$e NLY}UEF6*2UngHywqL=^x literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_1_9_4.png b/test/fixtures/images/plain_1_1_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 PcLt2~&gzzHGb8^85Zi_F literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_14_4.png b/test/fixtures/images/plain_1_2_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp4)PZmXy=uiE+nONVVAh(NuMTL7KIs4@Q|0d|{r=UUyxvh( zoszYcxuv9w$dq~cuEWSvU4UL6C0r7XU97FagavF)t^_odmv6}xc2Ix zXJ_lal@xF#J^7j2rlVgVEhJg2f`=_{Xj-!zZ#tsm!$;-rhkEm}r8J%P!L?mC1-?!R zoYLI-wWy1zmf54PqUS|uqBApZL0;`y6ggA9m|c~G$x^=@B-YqJ<+GQp)QmRG-3z2uqAIUoa~ z>^Nh1_tk@S?tP4^PkUNXH4Y8GD}MZrn(}% zXWT<2biZ_GbW@XT`8-I&d5f=9-)-lsolbr2b&Bfp>I_yPt2{ex&~i#;!Uf1Aj`8*P#LXjHvPK+l+-j*V+-m&}5?S2crR~Jbr!__78L4NU3 zMzUyl)hJ|7gv$lmu@6DC$(E5w!$jvK;g9-m}mY6W9> zsRPXC1FJ-DYOxuC+_@YlHpg^E4Of9ulL{$9s1`4GkH>FyIK+~gC+-ToYEWROVmP2n zMhHb{cIMMr#RonXph6}4HVQekhWQ|T7mshy3FCz3B>679$s`Rp_JPbHW~-C_TJhmE z-HN(wrX1&(0-_(ZrQ;NW6Y}cj#)ZfFtg~a=oKtt#^Jia-DB%BA$hANTKU75*p`d`^vgT`B;+YQ?mzS}&9MfRzT?(=8&=#ZJ-_wayAs1uu4UXWN)u^U2@YnD59& zbujUe9K>Q(7k`Lv#UaO7#asxdUCm$Uya=CrLG1BqT^pJ`4tvP3E$3}pM=0^$VbVB# zlB!|!jECHVQgW!i{KHh%yT;WCHJ*I z7om)Hs(i28kQNt68UeLZxGSD*#)LC3HQBz|;K5!Xuu>dM;Q`x{k47tp6ZZQt0ONs~ zcw=ehIp}SoiRQ&jFJIswq}?GsY&3oPI;Jc&OnW2JvQ#4|Q;GCAla>@Bbv}KVJ$1>R z&lS%Uyaw;(-SK}WH@i34BUYF zom4^rE$UWKV^+lF1Dw)?PWwGWeEA1+fcKHkZ&X6}>`aWfl_xY)&a-+PFj} zm|RlwD4pN%`6{O$1Sw8z+KyjTv_m4Ow$;8c#6&I$@W{+-fU(Nj5@65$>Mk$2sxW=} zX3Ej_j155oCuyPME3ZJ3!I5HVvso(OQ1u~Utn~)TFEcne$Yx#z$pK2IvYHwpf*?81 zQ*n}mo6uC2;2{^^?Eet#HASZgc%J*_DL^d?&X69see4k0pBT5R2!j#$NV42+u-+wM z(lir1po>KwTmm;a1YW|CGp{2`))#Itc}MVuT@dU&DyC1L?g;ghgOM?b=^w(Fj_G^& z6vy3XrP|43XObso;7uZ+(4($Jxw-Xz52HB?P)~XyGW{GzmWG(Y^jI^a`q-xT@9zx2 zR|=G;&71{ahH?GZ|Ihhx7t&f&q(<(iZJI^Tto{U$8w0XI1A7lrWq{~P}QK=#}4 X5-LA?o%0-K_IJxz-%PJmhj8y7-^tQ{ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_1_3.png b/test/fixtures/images/plain_1_2_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 Wq{pxoonNH@0000_tK2?C&yzp8a=u=y(~ z3lr<>+uPfFdwYk6hr`3eqobpXi;JtPs}u@_Mx#-w)c*edjg5_ylam9J^X~uvremb1 zV;wfRG1X@!WPk)Pd2k`CE)SXYkZ!DDqnaNkc)~hKk>nEEo_Rj9j%0;k8-Ij`b33Y; zKZ$#yqmSgKiAxNu)a|G8_`b9pOO<#I=>|!Bj~VgpBq5NNA}W#1yTZYUQSB(|ama!C z0N1NUpZ4DD4jc2w8JsDLb+O)2_q~6I(jEX3^`G>*RUtcNW31I6d+exz(5xFLoK_f^ z3sdO;u%3tK3#^~uv^XKZ9#%0GN!1`pH{gXAz0K60M;Ao5zZT6~K^=7`0uVQ4zRrYe zjcc%)jN`?1HhTR|dA~le)^D9c=lsm4`mxa|P6LT*sz4)Mt!`YKgFVcvjaVHD z+N82{Lz?P(hUV~6HoCJ;I72<|2RRpSzwoRk6Oo3J(@ixC$!Uo;`w+3pUu8Qt`*ll4 zofQCrI4u`0`X#H0orh(TcTW{z9%ycdiajHU9#m#F&ArWwr~>>HaHR#>Gct0}{I$^) z0YP-!vVHdNMqz0%|L(rDT|eZ5S)9VMK|tF=G_f+@U=O6FGv`3EBTUS!bZL#iz-|bq zyOUKCu_+%hxoDtpQ#>c>Gr@>T)xPC#Bo16OQv5pZZnxH^z*Pn+B=$d&PslC)Hn-lp zAMV2iQ<&s?dF#1JUcik-56iw%A7t{1td#>>Z_suYh?_^5arqiJmMgp<$Ntk#Dk%kRPIOCq!N z+2P@mo+W^&=GLV7f%yDlU!bQT%mTAeQ!nLzi@)-oh5M|OZW~oj)jnLQ@5mQ;{x}}C zQ6_nuEA*-a!^56ojCbH%wUru$P0%l@+J-1qd*}?k7pGBsRp_rZ1&q=ZaNz9eDr6kS zxh^0WI`Kc>@QzbTFgS~-)Jbuu3YEeNT3DJ0vvo6G#9STY$V$=(RIK~NYgzqND-oc} z%W-tK*1u7L`ArJOJcKr1W?2|`J@5$0?TG{;z=%vGj(UL>;x|rkcZ+T`1K%5ARoPfN zTp>?}<$`hYpVV{1!4M5yZ`7XkcsGGnj0kFy&EqFgjERyXcsel-L-?Aee!=+q~6|nRX0^p}k{VV$8}LA>1^tXxP2n@CjONgMK;7Q1g%{uZ-ty_7F`j z3@$?aAE`1KhTDTTi9xcsOtl!bbeXkDw~J7*I5l)AIeD@b!F-1XbBY<9YpU(n?K|rx zBA6j+P@cu|b^B5Sf;@JTy&=JsBUBN?k48p+5cpW)TpUjdVG4_B@` zhi8h;G=`+3*WG)*rvtp1qIE5{2tuQ<9D zRamFB_r@``c{vuI6!hhababPT;?7z_{w<*!B9B|I{T8?|<#@gQ^u(ogT;P|ALXP8> zh*vSTOcTRGVdy!#r9lItB4df*KH_>cyyRPGW>03uM}{-)Gb~?BReQ1)>*12B5X%<5 z$R8IJm_98rggfz)KC*|2a+};%;IUW==Lm3%)%Ih`d_`YWYs8!<9l4Z zLX~*kez2SJZFN@?1LZzB1SL$(d#2j95%)naxVOLtL`-${!1Qwaj$XTuAJGSu&WdCX z81O)x;mJK==bO+DDY&9o5P2+quPf&*>}S?gB=0Q1nsHE={@#agzRcAjs`pRzr1=UG zL~iPU%r}v^mn9>xMHQlg=;!5msX^^5F?Z=u3%>>zxWWG)zyzlGb+u*rH1G)@P=I2EWE?doooIAD>Cl%z>`c+yyD|5{ z7#;*cGJE{4e9lvZ1D2$(H(G?|3mr42QTC~6&a|5P@)0(=LUH)smhw`sg)jJVj zr+qXk6&lyR$!wP675j)E!hZO?@4Jy!&0JO2zJiK$nYXm&LmMUc@dr4A7FOGvOKNdZ uo&Doy&<<^9Yvqdz>v3S|{~ze0WoE)vM0rC(#Nyxo0F17i>DB7GJ^BwuiWzVK literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_3_4.png b/test/fixtures/images/plain_1_2_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_6_4.png b/test/fixtures/images/plain_1_2_6_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b27707bf2a191aaef7246190ffd72d883f7d271a GIT binary patch literal 278 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJBz$e7@@#Dwu-@m_d<;tf| zpI*Is_3PKKfB*h5U$pxTRIta>#WAGf*4s;gybT5dE(hyEom3ST3QY)L-g|gIOUMC7 zqtywMYTs(bfed9}h`8F|3}G?sXE+kcb0d~np5;jaFVdQ&MBb@0OKb?I{*Lx literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_7_3.png b/test/fixtures/images/plain_1_2_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..071d2199c4d60ee90963ac48fb7d28c8aa56f672 GIT binary patch literal 3907 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 M3@r2;b=~6s2kDwbX#fBK literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_2_8_4.png b/test/fixtures/images/plain_1_2_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..896662720f8c150f0a753341b0876c8ea67ab506 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58JL)Xl%kBoS0Kd`;1lBd^XJcN*RFm1`0?Mr zf9YeixB$u(vq7Wh+;w9IzC`3hGY@r*eG+WBV z5ZSdI#Go>5oo-7Z_v=Vvv}86iqpkJw@3#R{FLz((uCA{3_V&KMKAB9mw6ruhIH*u4rlzK(Qt8CR#Ms!_+}zyS z+S;hxx)lH{+s(<*H*IKcq%C3ir!Dve_usoLutT@UR4A^)JC*ffV!yAs?nAkM+1;^_ zcCmO3!`QwDHa_M~jQ!4(BsGcEyi|6ERAqE&vD@{w)9k8ug|m+^Qn$|epA7s>99)Ud zOkAEHZ8hvM+5K7j#j&9`6~3S!2ivj*5RPENq~;j7;slGj-KXsUpG-`q(aWYW ztWK23re?4_H@S}EVDG(8G|grP3*{9T0CA;!e}E#CugPo2i5ak$C{ z*kByPqVQ(ixk+JsZNZ(70bnVr#-ko?r{DrHJ;xKWp3hLc9+xA}l6nZx*a#e)M!Q=E z*=^K|WFy5=vwdR5OKy;O4;wl2iWwv(v{nvcs`7BbwptMcswz>Gs2Q`MH64S2F z%g|DmS94OD`Bvf@&jXepurn7nU#bt{bIjjkXRM6hc{wLLN=tMViUQ1fk|C~Y@3_kw z@$r=-1I6i;!T%u(+;eMN#zVrMe)2p0GcG zF-n+k=F=S{qbFztb@nN-%xU4H%`POI!@Oo3CCbH#irJ$`M8B(~kar9bKxo?zpRQ#q*DGD3`pt>PDk^aCqspaiff_ zv@D`VsW8CgPMAZt2$C_GtBSyyHG~Pj>(6Rj9XIGH>yI1+vc{Xq47vhLhAkvqT1DW-W4f>~98E_GspbKC*xMk_RC&xY4;McDGs{vNn#?jY@$V=B2`uIP zd}uyGH8IsOvkuG8oe;4bi>}fRlY_PQ<{r_w*T_q%!+zsTD0#_g=db?O7YI$virp)t zL&W(ckvi0%9)>P>C`bg2_+RZkBBDchT-~P`%qwY7R~)kC*qHetVqzP5ejxQ5+$@^h*N^|zlbb%2Mdm&pkN7n?D6)i<; z%%@YTV8Bb~Lyhw`o!oE0e=g22SZ(}DLO1GL0ca?xYQjI@Hb^b7w6y{dyD-(}oGa*EKe5#jdeY6y!TkAfvzfT-FSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpC*(A3nT$_wLJ= zFP}brdh_PZYuB#5efzeCZQ(wk26Imr$B>F!Z?D_>9X60)xFE-Q z%Bb06^CFeL_5K1rJULILf7w)go&4u-Ue<@3K=a83bN+Q&N`1Jlqx-rnKi;r{;q?d|OoZpuCY00YZOL_t(|+U?xG zZ__{&2k?psiG_h8l?jkK03ASLqC2X{#K2J0sX|C73v{4%oB^pyi+?OART9Tps)Pog zy#@7$ZlOq(edqh5a2pCGsk`;QNPZ_JN}T26yLa!M?btKwlEyrBIs0n_%N1M@nhW_` ztqq(7_0wRaJU{>f5P$##AOHafKmY;|fB*y_009U<00Izz02%>nXu!|-f{nIDK)P_j zMy=Ni=Fmad?@et=bOJ>5t~0r

qgo+};T56Fm@V1jx*A%*jBEb;dyRus-{6VlE1u z06CabzS;eEZfZ@%GT(hR`x;#f`rXfeLs0?%PN=@l`6q__Wgx1dcosKDEBS|;vD!rd zcG^mCd#I8xu?heHJI{y0&z55K;ROR+JC>ciB&7Ei`1@-gIp_KT|Cj&4*R>6QY0|S(c21KO?1f>U{hd^NSfXRB;On4Fi z7=YuMUY-Um6d>8GZA#yBIIIUw`(9c&fXB}_0ARfH`>cWjD4Q)FSH81HFaT4*r~({< zbjyp7F<^GNUjYJ=fMaKY^Arpigbx@LuwguD;{eJ1j+yOMfjuC-HaG}P6AMU&{Toog za4EYB1^6x>K>A+&4FNBGEvTZ)u}do=bP!f44-la2iKy^Qb$Jp| z9}T!96KOh47oY*g!SgqAlfT8Cs(svLo*9OVC_oyHZ~b>+S4@uLf`p(8a9l?N6afnI zfiA$>I0m+0fSsb1fi8ewbd016aQ$~evQU7PqN=0|aQ4uL0rnr27et|Mz|_)2Hz3K- z01FJ5S`lamL});O1`N;u0}T*pz+^enf4?F6cE8Ce1U!od4G?HRnxSuejtKCd0HohW z2H~FVsWcqGrs0U4E|WzD0GyP={j&!ZG5}!Pxh30wmWWOL)zCLyd*>3fcEDP1-aG$Y xH{i!|5-TKNsu6$y1Rwwb2tWV=5P$##_yvzg^dcDDa#sKV002ovPDHLkV1gq2zvTb` literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_13_4.png b/test/fixtures/images/plain_1_3_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..4e559e8977a7b28086a52a8f1b9662c60e012d80 GIT binary patch literal 5778 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_1_3.png b/test/fixtures/images/plain_1_3_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpAidR{{8!xDKak^s9)IA#WAGf*4wLweU5<= zZHdtvIHx+T4AENS;65eTv&2eOwfByfvSD!l%oQ$r#qF*)Tb@k5^F03GQ#!xAPD+~vgZfLs2d`e%Nfx(0MT;_rKYz$faJNOSZ+;(7Q tNOYLUR$>~E@37TtzC$!9h=>LHbJaJM{P=Zq?W~s|EuOA^F6*2UngBzIf$jhR literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_3_2.png b/test/fixtures/images/plain_1_3_3_2.png new file mode 100644 index 0000000000000000000000000000000000000000..a50b851e41895d471e40f65e2f1eb8f1e289838c GIT binary patch literal 2483 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 SL+JZyVSv4@gH6?0T+)9>n~nAW literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_3_3.png b/test/fixtures/images/plain_1_3_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2473e6545bf739935517cf30e0fc673b9b1bfb1c GIT binary patch literal 793 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@;>C+suU`H6^XJEp zA8*~d_4Vu5GiS~`efsp}%a`}=-Fx`(;oG-w|NZ-Cb@K8o1_q|Jo-U3d6}R5r-k&|$ zQReu^9hMfBC9hs7q?}shq;~g`-n;V;0-RRfb>Z-ze^j%x%y8M1W#=!=ir64|`;P7T z)J+^&@A@xwEl~4q33?yah)08Qp|aehhR?SaF-AUQT*k$GX9C+2lLxH485bMou=Nx;urQyI zVB50V;DIQw#m+z9-NKD|^zU-ouaDzY(Ej6MqVX#$L%7O2tc}sP!apNe;=(r_1s`S| z29}pi-3-U)u|7$b5O_5uMQ*{|4Gno4s;5{s@P82Ot>j~N?-o0CpTq{q z!wqK+H!$*S;N-Hn!9Vi=Ys1nVhnd{61-V~T_cML+l`y!aQ^h@F%M0BJx`!Ed`??1# zRsP_b&$x&GL4!hg>UHS}_i_%HOBMXTzgS_R`XUat2f>E>#V$06@k)ruZE$6tWuWlI z-z%Mgm!COELZC`>7UK*po)e1~F@NB2+AkVo@37$ZshN}5&ji>Qk{{$dG_%QEYEb0$=$31IyP=`x`eKINk0TwPIX1j) zwU_+KyW!i7JKNT>v2NHK{Wa?Cik-fUo7|;E`NLLLUtb)$szTxctAGOoBMZqyo>9Uk spY0BjwJ5sluGva`2&r{waQ!O#;H=3cgFA2ZfN7n<)78&qol`;+0L@uYHUIzs literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_3_4.png b/test/fixtures/images/plain_1_3_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 E0F0M7&Hw-a literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_7_3.png b/test/fixtures/images/plain_1_3_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c62d43e0428ca3d6de40629b3d40ac2cb6fb5694 GIT binary patch literal 2729 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_8_4.png b/test/fixtures/images/plain_1_3_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..ae856e3e900abdba4ad50cce7a743411637ea476 GIT binary patch literal 1259 zcmcJP=|j?Y0EfRn?wBMkmqes&*|bAbGzU=)4VGjovsh*3F_X+y>M}(%!DD4Cr?zT# zfQ%yTn5&VsbQHN^si=@xDB*Gi9)+lrOf#I@|FF-S=kxA)_Z;IyZp2}USO5Ty9mb3X z0GhoJK)`2F8(YVng*RvOR+e6`*J`z0U0tK2qmz@94u_+=yW3*13=R(V_4S#}W}D6C zbUHahCNTgAA)6VpmEU7C-%Fd%c0;Gv7d<~)V#WL73b1oBrc-?I_}Hqju%gVCZ!UgR zy~KFwL+?IgxQ0b-IET95-TOv7|50M@QIzJrrhK8>%ewE4O-+A4?l@zmYidt!S9*5* zHj%}PenA+l+pkHf4!gH_(c5E^fu0wD$Ant-b%_DMwS5yzyh^_F3}jrs5(}e5UDzpx z9tN+%z=%pc-Vi<|>akQIpxxeb)7m5qFWUJR5tuIALRRvJt!4v z;QJ0jr(O~r@9^oluZGUAL(_>FhcR!GNwVQ|Dm>&ZXEM1ucNX+ISF(rSsu^q zb_-*Vqz!icpx$%wk%FK80z=ET)ezkcfUKaSR;o=E%lJI}b@`pDYsy<;ckUfo+88nA zXlxMH1ZlD>9(pkvEey zqUhDJ!ZoOy#@yoJFAlY3)n;OwlkCM}*Mwn%>o22@z1$tc;<>^P(CMwuVU)x^wv!qp zcn%udE5i*jYX(chq}zd{Zs@V+)=q zdh8AHU)q8f%4lr2lOI>XuJq&JHQXQ<*=NoEqTJ%;t}?zx9UrsC4}m$K>B2a~lH(7V zPEjicey{+;*q4aL4Iuz|dA}1s?S~m4P57Idu6U74=ApkjO(w?<+rN(5al(s0b1b^ggq8 zWzF1|aSq`_l-Fhhb|L>saT%a>QxL`#M3hddl(3K7 z-yVP@*YkGO+b=%RLh{q}0|dt1z5j(|wjTe>L~QlyPSHdOG?hTm2~q@z1#M8wOl4_- d+B7p!77tZog=yK-B~SmAvssbM+R%i;e*kiiCh7nH literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_3_9_4.png b/test/fixtures/images/plain_1_3_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..26b6b1422950e9c68f8019a91e386e3e8c4c2087 GIT binary patch literal 1845 zcmb`I`#;lr1HeDC+2%4fb8E;o)sZL6l!UKanp?SaO4DgiDAS>((?w_-kK5_gIP^T! zQ6w*SEtgQ3o+$UTA#7~TN+rZHmRKHt#Piep{lokBclOaBUyM3I9RPqKANCFb0Jfzt zfPinIE~4q!7Iq#D2=n3d`7)VoZEbC3Wo2MsKp+r|jg8IB%*@WtPESvZM4}%*ek?33 zoY@nH007xb_Vx(7CR`8>Ucme6f+f{TJzL|d8;5tywp(;G#_rHfjwMreIh&VZ-+9@P zOdlBo4;_~z3DfAcY)6Ut(*_h8%h;Y3NS4ZAkGh^W2;8eyV7&Lr)2i7$Y9QKwiLq^%+)s*2{(1MOgOYci^n$EcX~-Ua zap*<+m`<3f9h8m06yrVq6KPMdg9-ytqMRu;0-YEGO|3VVA4KrvZs_~k5cu<>2c)f5 zVbd{9qUItrbG+=pr0zr*zA}IAEt+SzKJ=+mj05NWtR|1Mt38JMg)cv6?m0R5G$5-6KKv!MSPgwMFoc%! zIjW$sPNPs?BK51CoJmkUiq);L6|&N9B$nZJ>-F$gF4vt1;HS5(zM!$H(=2F#oVuPT z;`X}%;#)e(s`S{hrRH!92Z{JCV~ST4pwKE>3w=M)RNEbzI++&d%C??1!w8&%{>6sB zpR7gI)B57HJ2NEHjrK^BxRcx2+Zl`mnssf@1O2-ZxMz$0Q;l-#_5)XFU1tHh#3wpk zb8}GbYKb!m*VJ``9kKLf&y#jSt3zV*i!#NF@D!)e)ch>xb;ZuNnsK8}lsBAkn8w(^ z-roCvWg7I54a%+dKKXeCPa#!$1|fA%hlO7?9^Tx5SK0Vq2eFxtIu9ULgA3R-HZmD~ zFEqzJaK8EcgMPoY<;RD#vf-eTgJh-1xeV9(0Atut1Ck}$Dd`?$T<3C;6Va}lS;Ccj z!w;gRScs6S2tJW~C4E0KN7INp_@QH`sg?@x`h!xld(O4BHCI&y%zqVId)cpjbzp%L zdAX!*enf6Mm3iIcjGyn=Wvfky3hFOe>aXlExZ|+qpbL2hT%^VaOHaF5Q$Z!sht*1) zYMVF2uA=Ewohe%vWR$B)!Evd-)X?m*#w#t#G5zOyw5G;KRJ@QOv zb{iVvj%-dvf`g-zY167`D6uS4)Bhhlt`N_CrmB)3A`+geJ*q&YB+-=wbdKI{oQ>q6 z6lWeK!4Udo_+zo(YJ@gRjOT@#F++L`7ZZwdXW}hN0}YE)eyuzGa(h_XK8P6=;p9?B z{5mo;Uj0>J{u;#jpBWH67BOti#9tiKZ(p+CN7u|b@H$7sx>3xL?#IzxK5Km0ruBHp z{*CuS*XP!E*9YE=79Y{VTpuko@gB2ib6DJpyj@GB??fLQds~hfsM7ptDj-%#zQP{K zMsdTirI8G0RK;5p-bk07icU4v>2sUyxWj`I+waGZt_o29gad5j<^7|r=OIGm4F(Mc zS{@!M(W(dxvWLeQsuz#1tovOYyW|pjZyaw{wKtsfUizRAwoHeHPu!N)a82Oz8i!Z@ z7%VP2*N@cY>E*quI5km2TnOF;17hPQTy&l!<@ad)`z^3XZcZee;(~k!LdfKoPRVjB zv#-fL+`m$dmJ-YJ`tQ{rPq|fMXyOUh*GdJykQhyO=X?nv{j$+#3tbomhVDPdvhp|W zrJwQg01kOS(U=)D%~;F2B+Ko{mi`;}4Tfg1gdBk-aIsei51E1flQf3_(p`7Q8{$24zLHzo+>pF%dlBc+#( zM{mKtJEW_590`(BU5DV;mm4Jz)&8{U*6s_7DHFZp2s5}#KYrX@JQqsE)CNdn$ xM^T`HSn9!M&cmq&^+)0|+EI>>JsktSX%DXSS!Ks17HoYGkbQ!@>pZEc{{x$TM|=PP literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_10_4.png b/test/fixtures/images/plain_1_4_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1e60f07a5ae69fd5f09141d554ae9edd5baf1267 GIT binary patch literal 2437 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 UdPbEP9{>OV07*qoM6N<$f>pomtpET3 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_12_4.png b/test/fixtures/images/plain_1_4_12_4.png new file mode 100644 index 0000000000000000000000000000000000000000..69c9478043bfd42c5c293c258250b686e15b42e3 GIT binary patch literal 6068 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 NMo(8imvv4FO#tPo(ntUR literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_1_3.png b/test/fixtures/images/plain_1_4_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpv3N_`( ze7Kt&&N|(!clI2hI!v&FC1P&{^KMn=S072$0KJpz(ll=YD2~#v2QQ PL1uWm`njxgN@xNA4-`K( literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_3_3.png b/test/fixtures/images/plain_1_4_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd07b1ab64fcf57d60144ec226998953993e945 GIT binary patch literal 3513 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 Z{{xX1DAr(_v$6mH002ovPDHLkV1nUV(`f(z literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_4_4.png b/test/fixtures/images/plain_1_4_4_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e3c7dd86bcfa87cf871820a8bd44c7e3113604f6 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJBz$e7@(xpp}9zA;b^5wN_ z*Y4c8^YP=yfB*iSwe-9TRIu99#WAGf*4uLj85k58SPsgqbeZ7D=2-HNBk@jpSVH=e qTe}wjs;@3%JekSN1XMq8-~*$UJ>$Ec|A)#zZt!&Vb6Mw<&;$S*{WgRE literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_5_3.png b/test/fixtures/images/plain_1_4_5_3.png new file mode 100644 index 0000000000000000000000000000000000000000..455f7e6b82daefe03b4bab68809860129a043e31 GIT binary patch literal 7113 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_6_3.png b/test/fixtures/images/plain_1_4_6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fec1deb6c6ea688c09c6a940cef00f4772a202d GIT binary patch literal 3186 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_7_3.png b/test/fixtures/images/plain_1_4_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..979fe28174651540980e194727384bfa30efabe3 GIT binary patch literal 1252 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 Hu0mjfwxIx} literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_4_8_4.png b/test/fixtures/images/plain_1_4_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a78812827f98495d97b9c6fc4e1484e87fba91f2 GIT binary patch literal 4029 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_12_4.png b/test/fixtures/images/plain_1_5_12_4.png new file mode 100644 index 0000000000000000000000000000000000000000..95a85965896fb3503bf482a7b31b87f928851c68 GIT binary patch literal 3769 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

oG-p8$a-{)`|R@S(mukakYo(cxY=1ssg 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 Z{{d~%yMU39zS;l)002ovPDHLkV1gw~Yvup| literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_15_4.png b/test/fixtures/images/plain_1_5_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d339bbf13310d4626cc13994c29f8bdaf2542bb0 GIT binary patch literal 873 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HI{z$e7@^5x6duV24)>(aQJ~@B zZ_B_}E=4YquA82k1vX_|`WWikC39dYYun;2$v29pdRV?|o1{PaZ}H8$*2f!Si?*NL zE&3_)R{PDFH!YdoR;9=pEb>XWEFOw%U*V102x`$5d> zE9wcxm#S`m;<&L)w3=-ngSP3^jn_i+8}yYfnLNM1_2=pSCB?xV^B7*wV>~hSTKPPN z@#GUPMtUr^6MGTrR(d2pEOk2E%9CcS!kAn{?FN>3s0<vCOe8rR^hTq4RzWU-@zoFs0*I91nGda6* z*X^JC`l|HzD!s}Gzo?-5yV^Dw9KWo|qriJR>)!vL|9?059-O7iFqt!SdLO@kYT+Lh z6U7_->llxunO(8ZQQ%S9cjfEx1v2l`J7ODdK4iF1diJEvF8)}@9ZWlIpFJ(!YR#>_ zmD%CeIc5d>H@BTO<;hA5EbR|`-{bb`)yubcL>xtKJhYkL|7hY)`Ls?M=>=ELP5-xJ zzR>0ciSmA*6t9}Kzxf;?zCXr`WqQBlhV75aB#T!v?~wd>^WR*dZ`Zry_$;h>9BeA0 zZ%MCWT*KbZ_``P1R3;DEgi77>*LR3CoZag%f6s>fF;l*EN$4D&&fs~_y8e{2z$yDn Wuhc(2QTx#gO17S^elF{r5}E*;18^q* literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_1_3.png b/test/fixtures/images/plain_1_5_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpeDYE{-7;x87dg>vcFl zgyF%vubgw{ZsH93#P*9puQ7)&=*7E$<9tgkqJ&dsh1>jtq7|}H&JaZn^B8YsIBe`$cR)v? zz+-(fB@L~Pv$GRf1` K&t;ucLK6Tivyd?W literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_3_3.png b/test/fixtures/images/plain_1_5_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5a3b576885c174fb29740c0fc3be9c8693154a00 GIT binary patch literal 782 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@(xpph&YZb<^XAp7 zS3iFI`0LlNuV24Defsp}%a;!yKD>AD-rKit|NZ;dezlK{fq`j}r;B4q#jUqD_vZ^G z${hbV`|YDgD&D1q3C4zMd9fyKM|ZsJJ;o^MleMO!+mN>-kM~N;Y?HuOcb^rM+wd%V zsG$4Z{ifJye&&f%mG^w#e}3~}&!?Yt`_J3T_;Kk!udh$+XS={D^W+7~oi)=P7#LXu zz{GG9JpJI4$?MbZ5=_9Ng*thZbblMd)q`aMIcC&s;osKQ%Vjg9 zQeTTRJwNR$9CnP8=k0vv$N%i(N+0-H?6oftm}h=qxea&6HCr(O`xftn|7HpYE7Q_Jy7*Sn$Bak_UHL!x5p@q#%1Yqk;(@*`Q!>=xK&EynnHS;2;E!3LYI zWsGt>9J>t`Og_}0#hY<~LH{+w1N+O72R?}(5@lSWIY-5TIm={$BQulKgM$n?T*n(k z*g`TLCbLx-D7;(Lka61I)8Wp(=}is%7q3r=Irn<+6xJmx8JIXgQAIp)fR)W=A>;Wg p%uFeAA3{_i$pn~IrbX;$So&av{&M>*Z-5D$!PC{xWt~$(69DZEMkfFO literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_3_4.png b/test/fixtures/images/plain_1_5_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_6_3.png b/test/fixtures/images/plain_1_5_6_3.png new file mode 100644 index 0000000000000000000000000000000000000000..c5564d7c2df5bfcee8997b510eb315bacacd9040 GIT binary patch literal 3953 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 GdjEfvG&Yg| literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_6_4.png b/test/fixtures/images/plain_1_5_6_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5b1d61188e5857ef3a0f7c3e3a8bb6a53949890f GIT binary patch literal 2371 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 poGy^00pq6ko`26eX(!MQ{0B}M=M literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_5_7_3.png b/test/fixtures/images/plain_1_5_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..4567dbe49d0bbdbf427b5d6da54f340e986985b6 GIT binary patch literal 1818 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_10_4.png b/test/fixtures/images/plain_1_6_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp+EFj0RXff zA%H@zqxA42&vk4+NMr2p?Ce}vSdhtNt*xy+Jw1zyi+z24Q&Usp|&e z4l5whf*F}ECGO(9BAc$Hs5fuUcUb|3lzFTmw5d^y2^L%+ z#TX0T{vd=lg=4*xiaeJP9J2V;&khnfKQCC>X!iJ0vh-9>`f8tNdGy5c98fd#N)O}& zFyrfHD4?m>7%vWoTOYmRXp%CoD>b0r$GqQkM^x7|BmPlW!J)=B{R3pSJ ztyY=(V`me;iQ8o)K(V)D=)ou4jE!+W%H_$V^QG|#4 zF}Qzb&i92$l$oNHocbA*lhu6TN;i>8v(^?wU^+4aPFMXA3zpeS<)SIOHE9rB!Sy;k zeQI*q#Y<-kj;yd19q8S!@5Bl}Un{PCvl_y^O>p0xH@AzLLlG)d!+o9@%8~Mwp{Ga$6N;@&DLwZMCQdN z4#YV}+RSrA(>kLWAglVkZZ835yCA+PbsWYh^Ss85{P0RQSvh_9EwEWZ(_%!5w?cL* zTSa~wj8^rmNCO6a=?6j$AbanxO4@?tW(}m|nqK%=e>sh1Z*n3her15Unmz|GW!}Gs{G(a$o9G^KFln?MaB^=NLTN zdvcbE06+UwqWqLo44`znTJtbO@zFSr#fg6Z+39ffGnat?NBi!-dk@7NX3o(c=_fQ zj;>LnyvQ?HjJHF<7Efzlsj^AtbxCr9HgSogT`XKVK_0>2$ZTFfz72}ekeGhXLE;al zXD^r$y?fP&OrcYk1r~P`(oMF#<9;10gy1XuHE9XCI7{m=Xuh0hhblfM`llrgHuY%P z#0Tti)(hZw`SU&9hOfycfvTPiuu!}9jYtU&muxeGnaH`7`9H|17y;~`#@rLPS&YY0 z6=Tpu%$O^aU_t|@y#9&g!|6tPlZH@BB{x#R6wMggXg?41{^!BaL@k{0^8H^P9}+{! zXUpdu2UJCklr#8C8c3$ndf_Oa;mmXscn{KxZCQU%A5wdD6ET}sku2{M{&aRlZ412A zM*lbx(WoZsZER>Pd~EY^Nb^fo@|_HMk#QT&jf~K>K9HV|*}zk&q8rmBpPzj9Lns6L z+R8+P$bYN(hM#e%p8_OpUPE8#1XuwBo(yn(9*$Fv#^RAwCTy)nkc98LpaxCYJpz{&8#Kx%vZ z^{1*?SwRAs@b(QQpJ&$`I6#~fYP*z&-nrteE_upuI`WpEG=6Ak1gQRIMF=S*j!s7U z03xm3_g0@j2Fv+QO*C2GtJj-bZVZqwyEu%%Zlqx-rnKi;r{;q?d|RRTl6jf013-UL_t(|+U1YJv=47*lP$jRYWArUatDh2@C$L-qF%&aeQup2pn)qnK>GMj7bh5XttkK_2?_v_Qvk{Dpa67SDJoD^m(Oow0GPI#*?q+|x9<2=#m2}wQ+pms|Ez=l2mHeO@_ z%nwW1{4ff%0q`=LUpD}T_a+39z9nd#&9Y(I+akW>N97dYOrI;}rP&&Ya&|@Imnp%q zK35!UPemZUoGQP0m=Xlq0L06#^s|dfASW!M53rMHbHyelU#sVBY`Yh~@H4A4#{lktCE0GOXhW)q)mFFvc0m>lW>5PkxiZdMguDh)+b3qat2*EAz# z{?5j7hvGmBfKfFqGcq$5>=Q4}m8v~WI*`sur|K7z12WUY$SCOp$O+_#Sdumz|FgKO z%L=?DdxVi4ho9ej)J<1pi~<1gMQVhZPqKae0BK5U`vABDU!JTe-8i3tgH0eF_!S9J&-0Gy^;IP|MDZa%TT z>SzMkkMG0>>14bT54NQXSz2QHPHWrM10cLmnl+cE^?`XFyqLGh1cVxu(B@IakhHzk zo&)ey7TN%6-Evlm@H7iKnNc?6EUf&Z5fMaAb z$Ox*ScL`#bHSKK2Bps%u*Aq^I5>KaP&5XcKuMV|u+hs1u$pD6Fc+|dO(a0PCoixl( z5zKH}rHMpYg4#CG3_$IfMaD4c)#~27HgW+0U>gx2%?bcU9o+zYD_bM%6S?gp}yesBs>+WjUHEWF4m?CQy z4YO-DXp_E%^D9h}v*BqZ(%U&Kcpt_7f1UjcS1 zTN(iDZg2bgJN=OAFvHL&A6>r&X_;7XlZslh=64Ohq@wb*ra%gghFh8hd@g^cmQ$MmN>-&_|_j! zn`1}-H2AY>N`!bi(C(_X$f>0hAkJAGFMWJ>+8@*hFv!i;diPn!>l#RIe#DrY|4 z%$jra-D@oX#_Vxv+}}GPlT+1+MgTsmi=4`a347TRR*>t-ECUpu6^m~Y)>woCF)_orNQytk!y(Cz zvd;h}ZtxHcnK-2EsM7*ce33*50PMhz(+A&n)$edj z&+upk2;eB4Ulj%-O-}f(ZUA0B^V0O(nTMpYW`OpvBgKo{TUI#&E$^6=RD;&YcZL=O zMFTjlI>MP;`P_b?2f+NPri!!V8p8~90FY;J>{YG>P%nN)*5`Jy00&RvCJalkYX975 zSj7VHNFMC??P0R|E5#Qkq3oYnhyZFKHdZDrmX-~R`~kA%8?WLR^;fz0t5O9MK)l-g zEg%B04^-0-Qv!R{02kof#J~e!iFCY;9wNZ|AN|?`z+3{);E`Zs@1rQZL1fX5X zN|*qR^Nv6T_`|)O2rvN*8vqqx76so`fV4<+Q2}mEI<|NKVaEhi0KPN81)!Jb*9;&? z6BmF#16+VvCW;1NH*o>j)%mpo7z9uOSW?0T-~hM)RaAiIVQo+-fb~CI;BNIhC=!5r z>+YJ}1Xhikk^oux>=ygPd^{)~z+G{pp451}dj6XN5K*#9_k#$&fx-bU-mC&(8+#Qf z9zc|?eWy_PP6yVHo6>>7>!rsICYIS6-2+Vk;nJI>Axk}PZ1^PrT>z|A&u4x+=_kA2 z1Ly;g{C>Uzlmc|yXIcRmr*n5~z==!E9%u!S2a%&J;UZ4t-J?oGpO&-&{QFMN{-rv) zNjqC^&58fCR|c&BygLqlKheM-5dj+?fnET~x?BHbx75{Zm);@(x&hR0{qbLA7XfQm z5CBB^wDCzI8y0t70ANU<3=%eD>BImi0FzVWU&8-6ZVteOpEYg{ppOmE!v%2M0V)80 zED^5W>$LHv_^fc+9Gz^8BRhTaZ<{f;(K0Ytz76@bSfE`WIc8(aYPw1f-r){#(+ Z{{q3Ot7;|z`DFkA002ovPDHLkV1jh#wweF{ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_14_4.png b/test/fixtures/images/plain_1_6_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..385015ae8247ea61e8584db8ea89ea783893ea73 GIT binary patch literal 1720 zcmbuAi#yc$0*Al9-vlaOs$ z%UP347By;@+`@#8+>3I_(2Uz+cibl?jXC~@^E~hKyzgJ|`J{Weox!QG>*85tWJTU}k1$z)Qgbar-jVPRo%a#Ac7@9gYIBof*| z$pioxFBeBUpV;>jVN>*!wKj;lxk(oG)z&pU8fV^%9iPa*ZF*cC%g+ndX=`7IgswCx zDHEF6;?^~jYbh&-%+p@`K4NBL15ewQ4h)v39YQbs9jDo{L9oBYES@9`(B7qX|@OO9l(tQruu|h2#?%D`*c<56=e(5EWJ}Qz++D z-CT9S^Z|VVP4l+2REWuIV%-^Z$o#njTwVto7M{P8&n>sE0@iK4%nyUVZV0$>NOErH z?3T+<^@*$6nO(mR^(zWS#1{M0O8SjjNxpMA+0-^S1#Oe#SFr|IItJuA)u`E|v!@;Z zsNNPDjq>XO7yZB~Qq%A1F+^}QBE{U65vi_(a|6v`uxPz1iHnTlg!m|=N<_pQR0J@myxR&5rM5f1Ujy>$fK>(S7b z$JPbEu{U3Gs}H{r*LKdUh+3a6bKg>QpQYrx5@+6q1fufihVU_1K>+2o;^U|0fe>`r zG4w3c%cE65vTm^pu8z79pS0kP`VaVpN!tAA4l{X}i)6s;3AP=*P}bAwrGT%lo$eas z2=k5P(F2Y8E14&d;;ZV?H(mu&i;S;4y6-P{4AIl$WOCOFXQzkidJAfULON(@i>wxf z(6Ub~s5<9DalP4A=hE=ybVBwL(wZpe-Y=?2d$_k_^=TG2UGiL;Q$ew@JpS%)%c4Q# zyQ0I8w`stWE$vhheZw$jC`1cWY18ExM`w+l0;BBy+WBoob^9H*Rcd)Bz=LwD)ae{CXSfy{H}GI-tM-o-`Q2_u$o&iw%~pZ{};F z8Mn0T{7T;2W<)Wy$7~RrkbCLNJ*{M?>9$wD20{6K$8K?*^IlySZGR zUsR9+`ypPmvZ1XWbU->C)s4;=b=@2Zo|~KQWydC9>pk%zY&X|$04n@}xV5~wqYw9I zzEJVF(J=Nkia+zGa>|iCVR={iY+YXSNptA=SUHu5w!WrWq-XFqUJP1SA~3X$>5(AG#8SQz zR~^9LPk5jRjDEcVHUoqw`3t%#M$(6u1RzM3^I4&02F8{TF!*@asdxTn$P$+A!B}%$ zr(l1?e}3_j@f^X&5=WmPMpV`mK;@+Uzyp`%kQSmz)Dn^13iYwl7Hxl|Qi}7{{|A)s;sLIMtP(<%&WCqE>WrS(xPZz(@iz9;FFEY(>PNAlm0IhP|c;iF2!@=J-b%~T%6n-`Sz^j{{dMN1YZCE literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_15_4.png b/test/fixtures/images/plain_1_6_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2643a145769064d4029c7cb3d84748ada4fb5f GIT binary patch literal 2388 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_1_3.png b/test/fixtures/images/plain_1_6_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 Ef{{JU3;+NC literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_3_4.png b/test/fixtures/images/plain_1_6_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpOjTMJzX3_DsH{K?8w{fAmSQ$Ewq76 zMPVV6!rMMy)d?HYTA5ich`6Q3eleYC%=Yi(>AA~V;z4$OXqNtN@Zj!J@fWTf3=`OO zt}>f2Fa(^s2^25|N;5DBu&>EHpv@}*lm<%JKDc$b;jJKB&9V~agTe~DWM4f!IWc| literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_5_3.png b/test/fixtures/images/plain_1_6_5_3.png new file mode 100644 index 0000000000000000000000000000000000000000..6b0155cc7adcb0abcf9e129a06b90fa3ff7d8290 GIT binary patch literal 1650 zcmcJP{Xf$Q0LQ;G4{P%95+#H@@ zLzD7wF<}*lJC7@mOSh@T(w1eO^04dvh2v2~ke?b{4-No;T7bV#C;&jd zB?M4}e$%7xS|Yy5;$&d>v9-0e;o)JKOeU2|xm>P5Aefn%5ekJOk!XB;d}?ZHdwW|f z7T1a5UI2iya)6IlIB8nU^B_L-)duhf2o!22n#%j&(k4pX%EJ`;G*&%yr1&4*d-eo9 zCl8VYMBfL2|S+)bZs6EeLeX@ul{nqT85*_g8H1#)8Y1f4bB7lvTfp z%fKZkf^)=qgDh9farHj6(>e1^&*7Y|3@qB2t{kqGejJU;y(t6hf(mN@n|$3+vMsFr zoCbbUk-xg5v0011x)4b)&1!zdsSo6MR~hmXmmY~G%ET*)FEx*~$AY}~53XQ%<=2T9 z=)vvQk+D`Ul=;)M603C-tPw?O8HI*u*L3cBM7Vag@Q?<_QoVjM>iB5uQ`WQNbn@1v z+b?4jI2{pVGOJi;QZkWth4mim`IcjEyLWXA#JW_LY>e?EYekQ-pF3iB?Gt&pp13Xx zjo?F-BL}~RCz%g|XIiQPZx3*PN}WsOC%2TaZ2esJTbS+eVT^ZdG7l)Zk(D3d*j^4| z5@v8(H+W(9Vjfbf&WYMH&U3~VZ%((mUW1uMgTYOc7u#K7MbQ~b`8hTNO#6AEVQ5s+ zQLM+8_Kp0X4{^KZ6gVX#maB1$=o*i_=f6~7k=BeS)#ek=|1jUDzGA+SAC~Bf_H3%s z%=uE*HZm8X-%~ZQhAhKrc^1bBN=&>N%>)ooABvYqOV^@tdFSfCo zV>Uinfxq5tr~jdRrt-UioF#>xK5Dsl==8jQDE*(=mEM^f%(oxi8=DTrz}`c0WQ#t( z5^weK)oNHn7kqCR_Fg-jhDN_p^wQc<(F!%8$+`m+VA|UlbScgpK)zFl1yuC=?_q!* z08RZ<1RR#W0+D<_*hgcypl8#_P0LsJp4SuT&<2enbca^A|emjTZhP~cfJcExnL96Ut=T}E-9pXo~|2zmyhC_?l z7EL&^cekmj)HycHQ)Tx*%*>th0r9$-bz1$O0i(zURvIOP@i*G_T*0L?Gy(zP!>)JG zeQ~X!+CvN>=m*V8it0mCzW%kyMoN6mgi((9L8qD;-LHzm7-t(Jvcjv^aUtbDn}`c_ zV@{zG_E5t<;>L2E5OVAZ%ki{Nd!h+#(dj6!BZg@ZlwzfLjO+`BXjJNt?vF7VSb!8n z-spyhHl9?LBuJ5K zPTo)@>Qeo_zLS}E$cJ-Jwj?J1?riD74nQ8PNlkw~$lBaQh1?RroWT3j`?k?n>#;lP>rk(qbnATp`7<)cd zFj025zrHJZ1>ll@_k6Nc)yaG+5E6UiY%OOHDsstE(a;CPvold|)?}A3vc+cxPj)xc z7GUx#f)T)^dF%Ai_qA%-w-F;Kif{z-+t7gsS_wha?^aK_`Ptw!`sT#-J7b@u@wkZ; zQ+F9?wwg8)BX9ime*t1b B@q_>X literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_5_4.png b/test/fixtures/images/plain_1_6_5_4.png new file mode 100644 index 0000000000000000000000000000000000000000..dd0fcf54cc2f1a8a494e2a8a87dace1c5fefceeb GIT binary patch literal 420 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 KMTMDH;{O0#HsU@2 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_7_4.png b/test/fixtures/images/plain_1_6_7_4.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba53df383fff74a9a56e00bfa77d57a3366d56b GIT binary patch literal 1143 zcmV--1c>{IP) z)z#VA+04w$@$vEX_4WDr`Q_#1>FMd+-QD5g;qC41{{H?XCAgCS00aw3L_t(|+U?!T zi_<_H!11UDubzCJL|jDhpeJ3sN6|~KqC(EHNDtz{wM`E`kUq8-VYkb6bMet`o6SL6 zHIH9TA|f(>ltots!KMwFe3fJ_r4-r^zs&D9GifF<6x@sgPyh-*0Vn_k00(T*fE^m} zhz4xmf&u3)nk+z$!V!=s8!$kE0zd~_??We# z2dEFUziwGKoR=cC2MoZzD?LYinNn;7uyMV*D?eJx{CxOx=2`IK<-xsufQ+_Z99a7C z$?Ce9Q5Kx&J(pi?+}@cyE8ldS(Xiq4Dp>&DUfB8l``^1ltyw4HGXT;aXa^jZnJwsOuLCiyT89C$Mgu$-21u(617uW(0kRkSJva3N zf++5L-suI%5IzJFRA7K~X+Thh0kTU2bk)PT0dv#>&46%NVFBVhFhKkc43Nz`Fd%en z7BHO}Ty2(bIqx}u)SAvvYTFS8NPTon2uN>qObGDnFhFb?(4+w&4G8cERA7MDfdS&u z0GkGE(tv;lq?HDV0cp+85(A`8M}P*TRS1#;Y#LzEfC&wFMFU1<7?4sWN)GTM8bBX{ zmI(vyRbW6sN1#d9fffx2@jgIDpiKk%GytEF&{MLMhJyciWz?VneHuV7&r>^5nD`_W zeU9j1-p`bJ5e!K0vW{c`--Q7!#R7aA2Bi59rU6a`5(84boWdZhU{Zh$1Jb>qWpRL? z?)5ANHW^F|=)(ZtWdUB=JF^x9_^EHqS_t4tO`(9d$2u&)zoKBk3JVAixh%jxrC7jI z8wMOH!+>SQ0)j3KXhn1c6bxw40GkH5Fd#H(fPw*C7~n-Ppsiql4Fhx?fw=%4X|i{4Fg6l47jggKu7};|5@cL6{P_1T{r?6J#WoG2Z9*@f7@gM z8B9fD015`QX@Cs_GFX$v08AK=-BTa`0%+0ziw1XuQM|Yn;|u@*002ov JPDHLkV1j5A=coVx literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_6_8_4.png b/test/fixtures/images/plain_1_6_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fb155f9b4537a1a02f3013101a66e9e729f6331e GIT binary patch literal 377 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJ8z$e7@>eZ_^Z{Ga)@#D8| z-+uo5`SRt<2M-=Rd-m+@+qZY`-u?IQU+)fQMW9Y$PZ!6Kid%25@62Ti6k!eUQdq{U z(a^x=R^;Qv-f=<5$zrq4=B0}d3T&=iF-g&(>^yICr_Sy{P^+V!-x0o-TU|NpJivPA5bTwr;B4q#jUqjPjem$5MT|sZ7BQV z7MF|1v?iq)Y%bgao4z@hJZEoOd1>zsk#*h1tTudms?*tOE7*V*LBamobv(>+z7hrg z%)ge30R?O3mPV&A9zSWyEfM!hV8QG*V}n(%bRKM-CBI4c#vHM43=9YC8RzBRKf9=* z_IB9rC*nEhLxWw6FHB9=1?u)-mfLOcpp1{%?)*XlCYU9(qW3Ub%KQ%QO+3#Ivcc2U K&t;ucLK6U#SZQql literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_11_4.png b/test/fixtures/images/plain_1_7_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..7de9f33ebbc4fd736d3c670f3c4315393857cf23 GIT binary patch literal 2536 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_14_4.png b/test/fixtures/images/plain_1_7_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..d183924eaa972a2552eb3388d7669b6cd7b146d6 GIT binary patch literal 2142 zcmV-k2%-0hP)~3^-rnBf;ojUS>kd_S}xg2kUoB+7;uZ@qr{nWQ3k&d?c8p682{2db z(BQ#E0z7o>Uij~-QNaN$<7xVQ+Cu}->Ze+00DAXL4GmyN6 zX;R>i-5B7@kj-G7AGjA2K+OULq=8RO(q)%pP(T{^OhP*F!8j;^r1p`1V^_6?UXqK?#+#~*a`xGQ)pTjX~Wn7AhyL7ut=-LE&yp)m;&xL!@sp3;N0-619O!I{m1f70K;&Q zHp7*Y{_KnfysCb-6TohzDUE~+CmoACiqShX9dmaPj2Qyr+*G%d=>fyBp-KAcPJqW8 z;17ep8Q0F7ZY zOq+jo693snV^A21Y+Tpu08#>Qcmwzn2U9udj3QrL`A8+IOq~baFcX zYO0g3v%gvy`vq0D)ALp7QY>t$TkHq8YyrU>s5m;j00LOWUU=)2VDl0g1MC7|b|4Ti ziUezbO1q^?Ssz5-pUeASpHV6y&60(aK$i{%=${tJfhtg81c=LhL95ke6zApO2hssR zi&Y?sE3*{!vGb_nS%Y3wCm=e56re_cMbrUn>Nv_)?7LX?$4Rm}%u)tl(pMd+-oYr) zV%8b8)=^K2$H5=F-k}n3*mcL_BuN>D7Bwy4`~6{v*{VvspYSny>*6{gqjdJyfF3)5 zweEU7Z(YRu!vMQODMD16Y3n22q2QAi0J}3ObT8Tcv9BCo4ELf7UXr9e=Zlz<6QpbO7T+Q6XR{VzogESPjv_AO*AtVj~Cuh+Q!SoEV0k9&3P&*AGO1 zxr#O#qk!e{LxD!M%XF=R0xpj){J+0%=u@9HpmsEX&tVkd=tjutFp7Xy{Z9sPI+=Ss zfMDMOPRH_207%#X7aQP}kpbibHoz?*1GuyU0dX|;KLm`B0bKgSQvhw`W@u}e07o}Q zn4#F4a*4x7102=&Q2`vEQLr0ea~}#E0CX}_rdtfa_?-7>>;T|4v!B&M0r)DBx`+VD zKbuI6Fn#0LcNhTL_dX7ZQ8g+EfMmnmLMi(^uROq6e>q6rb;Sn+Oz0l+F!u3%-#Y-o z{PW&mxj*AnKy@aSXG7ShWaR)_L(-d9hAsj=B}>Tlc_tlqwT);JG?y({fET9hqM-8w zZGjLEtI7gK;gLh4lxA_u8?xIaa2Q}HhFp40&vPhx)CR-t9PJ7ez?%Q!x6_PSxUca% z>IRhBrwRz5uB+$kbqo8$&p*ZE5vOXDVCq0Co3ga4neTKMz_kgnSiT1^R)OV=h4Nm9kjsjR$a&x5^VIertW^e9uBcZS`HVkG%^Eat|tn+_-V;_8r+oCPRlUnPyD-kc41 z?wi?D2b#X=-nB?u;lEC?JxNvejoa-0&JHjjm;${E4;}N`Jb4HZJpkizz~Nl!k$^Bi zy&6CcMvAu}c)bqC9mIzLqMzU0=t0MUas1>N$U2wmPn9Ksj)S=pm?%r)0ms2Ycl@^X9yku> z0nYW8L*O`A7!g?$@H$ukL~)=l*8t~7Ilxq;ul#BV_i1lAz#s{LS0dQQy9nEJ)2>`b z1Axwrw*Vj?khv8A{gDy^%ntGs0NQ5{Xki09Y=HgQw}LJF!Z!Z`MHW-Mo9xT}+BC)`UNl2+dskW_# z`-c0m>~A7(VtyYo1u7mG&|vYvi}{;L!rerNUXuqt%=hHju1sV*qt3HpYb)c_m=DZ7 WY4t7tj{SB6InUG8&t;ucLK6TCZAF>@ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_1_3.png b/test/fixtures/images/plain_1_7_1_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpMP?%TI-|NZ-SA>o)20|PUkr;B4q#jUru&gWlB zkYN81>$^v)_jaIvm14L3qdhNt52xznaNa8mI96t0czV)O^Rt^S%3e6auvGn#nS^zw z6Bj?bSb^-*zl-l^=w9@wf0J8#=2LB7z`eSPdCzm_tIZX>oIHKSU%xfeyswCT`q<_1 ze}Y|rm&@8GPaaFYpMT-rbA2sWR*h?Xmv;Nt$DiX)m?$jBXtHW~)#(%&R+c#{1DUj@ zb4#i(+PXoFiRp}2OT)UoH*yuX_ysg{2wXUSTYK-{&)oh8ve_?8VvBfO^sa@8XRb(1 z?;=)r+Xd}R9mgaBd`~fLx}5cr(_s2so;y7$`~quRnZL-dz1{hH#R(> z>7UZP#0u>6QvF(3JD#yx7p~Xhl$dXSpOb%s$)YcZ*9f^XuFyEdd}fN*`IP7n6P9gT zpzpAyzx>vuaK`dAJA@oKZmxbXb25YS@_0@K$+WXOmtWtiF2hj1>_q;agcAoo+>q3~ zC0%c?ly+d-=l`=^4>Ij|%%Ii8ny|BZ?>T0TouV%`FtELT7cn=5aR=vz87m*LMC5mv zGcOHlSbkfAac^67oz)|ToMmbZbD1Zco$z0;M|eVo%mVgg7M^J#Tpvngwc;#yz6|C?z}Xtoqt2= zteMxjns^QN%ocfHJ1;wlbw;n{{p3fw2OsL_AJD3Q%z7tEU{Axo1U3$aKZ}aj8YdJn z>#+KA0MjJ{!-4<&20Ixo^A3p35@^WgeW5;+(eZwDC$GWzm?p<2$qT-T(oA553=PJT zFV8gGlPTvEF;RpFF))1KXW%kU_%TQF!tHdnIa)VZVG>lOg+6j;_Rp7@eaC1b$XriX KKbLh*2~7ZZbYi^# literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_3_3.png b/test/fixtures/images/plain_1_7_3_3.png new file mode 100644 index 0000000000000000000000000000000000000000..ca8c41e22f01afd6a8e5fb21266a35f196ce8fbe GIT binary patch literal 3561 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_3_4.png b/test/fixtures/images/plain_1_7_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSp z)z!?*%-Px5@$vEX_4WDr`RVED<>lq!;o;rg-R2=e=*iiIFRV&Mbuo^YrzwnRzb!;jzl_V<7VG2DY& zI0iTdI0iTdI0iTdI0iTdI0gvivMfu73-Fh3JeSg5WkUfFQkjiK?PVntfcxLgrdk>b z6$U{0r+05OUsC2Exd%rMkh=5Axs(9ExV@MX;}tl1fEQ28U*4%QLU*(EI)nhA&ioG^ zrD6aF>97De`F|d?BQ#GagblzIdWBE{#GUnaxB%>fTj2tTA|E!uX4nAbPRIaa`~Mzb zJ7j?5x55QrTQ7txf%xyLk5sza>xL(D+(8Y4_g8}6&k>fW{CCB z09tR4Q&R!}Y%4$iq~aUI0Fp(Do_|)A(N4w>P?F1?wVl*F%KOc1LlzbRGnDJiUgOCt zbA(Wpqrj*sW+V6k>Hw?k9mZV*LR85|d*uv%SIkynBv0>Uck{1~>$1!E0c6)A%{^xe zi~~DB6o&IosRBU&t}_=P10(?0{G{r32YA%#UOFUW{UyK(z&A5Z8Zvx` znbdo309>;HSOHiDvhpaatsXrVM%4{qqZ|Re00O0sGN3fu6CP&I_v_B5-}(>W1>kD> zINHa~cdx*qvlC>`17-l8(#MIZ7pOoFhK|8Fm!xn5#PnhMst)Fqm!r62psWLK08Ss~ zK>ewrzIFuo5rrFoZA<}_)t6ny;p}D=a04VK!zh}^s(n95IGmi?qi_ST?a44wnbv!s zP6Bw#P6L7g2*xnKdrIpjx#Mv5?GAQ;yfI8~sN?iX4*L2kUM*OeJJocnUQ^jAe# zGDgU}poX+Fw2%QbSqm_tSuMAOi@cqS*^s zN7Aw~^)Dj|kPlPU3GAnazeubkd-BRc(SQ8WWJgmXsteJP~ZjN)epu#|C%h> zmzVT}uYPuSW}wWZ`HBailq{7OTFo+DZPH?{lvUHuE~VxFq8Kl-ZOX<5XNzyY0BrfA z8vybZq*SH1+&mBU=J@>U7;Ysv)1ahN@g1)!mSIw>xT^t}kgel@l#YFYlMmuR+; zosxA=7l0tANm3ywfT@Jak6#`r-*boMazn{(R+Cq^r)FSM5$`TRzupcAz&Z@jJuRg~ zuEB1>=$?ZLiW}{(o8neL0LR!t$<9VN+_iBtd817zn@v!FnDgo7=9kcSj6yPwgG$9M))u4VL7x4@*F+w>E z4?6(?d`y7RmMVCDuNA=i1Q^LM7r_8f@vi}*0Kox#d%`(~G(TCZV}m0$olZ|@&8n$x{_#;p!T0ARgJaAtLm51JEtRzc2Y$tC~* z%XkI2W=UoPDWMSc`u2=#-^MEdf6ucOGmiaxKL82O*S9QAcz2{`fSPB3mKZpcm;g$i z>HF3-@&KNY^_~g}VqhyY0eFw4(i_&2;s)g#zfQ={i zQ=6&)318QTtGEEz3;qCNZpnbOiw>YRm44$LfOE^o4$H^@N>gc&Zfymhf+;H~Au84a zC#!D1k;(6;11sTFMCA}|azW9+gL5mXI0i>#PHLpA+HRi@pcEs0xXWx~a70r{d8-5G zPymE~Dc_=-1q>3His=UhxW0s*kr^{TAZ&GI;( z>7UAb%?WoP5J2W`M4eN1yzE#+%5CU?k=Otb;2a(8C5`fAh~$CdUo?`luYck(7z6~62WTH&qzzdDr29yoP( z%x(fDn3{sYlSn{-#Ev*#6n;#>s39P=T1*o7TQnemxxj^;eTF^Z4L|^F0J1tL%CO}L zfZr)#1IUPNCEHAS=@RlkUtPimaR2kj(7a)HetFCnWyM8F=su=U0ED8d-6)3L)c~G6 zkC;J~$`pzY6jcX<0-*1x{~lsrxAesc6aYcZw~<^MZf&pa9y9S_~fz31GbVMhg%Uz_{H*yNBWdF#tUc%eZfeJBX43&?~*-c1Tk&4nO@l zn+di_0qDAam~t-+FOUKdCJoS#tRO!Da9a!S69brZJ0#ck>lI=EleYUP?=lCyC^3M^ z69wdq$a$0RvjQmqqva|~z&R&x5mQ1#>T)>d{^8L7yMBTgfZ_kw#EsalT|RcG{v!oo zIG>nUyVR;2xgRj9{k*IJwhg#mhaiAS?XJq|AlW(mK1C3~WcfqhzVtezNKS$2u6ZdY zU(7lM-Q6fb0CP)dC@1A3t0Um|NGhS(_x5cqU{ETM1ekw^$?_gaGelVUc!?qjV0fW^ z)Xv)tDi9&*h&W@`yC=FAXLaDeRHIGS6Pojn#i1n~`Qw9A9ijkJZP~}G7LBMg07L<% z@}It(4opAo=!0^UFu+XLnVIgAc6V6;XJ086pGKDl)+DV>%xM8W_T73jZflnMuF=>Cu}fTavI z-Aw$r9Hk26T{{ zMuJIzO-nWPId4bSE1d%PWR4y}F>Tm-cgsPyiG+FwRddhXk<3lB|Ld z0O;hW+o1w5)h-n(z}?Ppj|vk2qRSg+LIpT^X}1z8K>hF1(E|Jr&Sz7Z=qLfE00000 LNkvXXu0mjf2yV>$ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_5_4.png b/test/fixtures/images/plain_1_7_5_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpBt&vm7{^c%Icnp(ny+KZHCB$? zqlQ6Njk1Fr@8jyPy(#fNCrgI@uW=KFXj%Q$Ns?dTf=o~&!4+sFr>G4e7gWy680aOOm08Wt zgrSH46|DuN3J~#nKX+1)pWN$$&4*`&!g-F9&9ZmaoK57_R zvGjCvFf&Z6+YT@I1h(k8RvrSm#Z1BiBjm3>fCzielCOl^CWA5%>?ilY2mb4jusMU8 zW?5#u+NGw-%qLPB^CRO|ZA~GoOP`!?NWKH13)oM~K{BhgfCQJRlkenv90Vg69;USd ze3A*luqp+JOTM2$2ikAgprRexeyLMtE~{$1{02#Wi%75@tjNNcTMD#5$BU&DsR-Ng+-Q9;_IO33=@<2e5aFX-ZExaL zDP`hND6E50n&ID(@F3DuGHwK&GKtB&8ccbS*M2V?R<;jvZF!;#VV4T)i;gc!my%>5 zycGz+dw}l+a{pk2Q7O?%%GAfJa6~1Zp!eEqJt~ua%$uBL4mK6&_v-boH?;e&#)Occ z3X=mLoEu9Yl# z&RXgg)=$Z3rj+6Tab?`f`0H>|iWtGR-@WE{lO4Gb5g#$eKK_muSG;d2hC_+R1+Q2{ z_Ou_?H|tKw5AT6L;wN7Rx%cd670pnsFZcYHO6$rEJJjVgXk9t~JIP4h7!wyc#f!kP z#QlN8pdo-0VBfnEPCLjGuuJ=OPYD|(!PeWMiRD#_hMr)4^0v)!aGP%6W34++pOr+C zD@fOPWsS;51xFt?w!gT>YppydOTaEK-T$m^?*q`;^l>IE+(U*0vg zB9BMZyW~)q!Zt?o=`pdOKEXz>;v`hN7|<03g#^3-o8X_BNES%?Yw$+0T7?377ou3} z_>^I+d*H91+jR#woJ*?LaP5XK(>jrX)4gC|J$`^}KRC+>Fk3UJBWvjE9KcUABvmnQ zqw)*vVT4`;WO8^zP~}?s^A;Bk^yr4K)kTA^(^dJ2*{+iQnS4}?OQByBer%@H6+@(k zR|Kf3gOuyhPPKGIbRJCSQnQ-_0%SViS26`pEs9raM*2AtwIyVcyoxNpIKqzg(=ZEF zSd!KVCQsI>xv-Lp{)h$6qWVn=$L=eK1$2rK5RPf|asLb0ZBrt4UC-YA3hc?4VE^n6<8QXQN1c|~vb!z*eszpR^LZ!|=ryZeVHitO+Qk?8D+|la~_@1R*`TiDA z{at-%B|)8uEN95KgBcrTU2|o=u}$e34gqHu?AF+5K@(=F@lQ&S4}{v)_)$bQDiE6k zbrpppku(FaU}%DeI@RUzBAB8wSoqvTsfrinQP`0`Jo2`!~e_+!0d#omNJAC&}FT1X2iG4NGm zjHOvPn(FR#(m_79YHyD7m9}9Pv3nJ>{8=Gxr0H_5aS}XZ+^;!bV9isE;Um?yH>4d~ z&tfPk_*RLUld(LXDu;A6@Xbn$@?~p7q!2B@&NZHN(rd9*wcrmZa6x;(S@dPi5t0&$ zJ{PVvDxbG-8QwU>$-g?`-KLo)tBKN^R z<-2CyWU?m1nDJ%z>M2{PpYCpFe;8`}eP6wcQ7xnq8hQjv*Cu-kv+i*zopr03+;W`v3p{ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_7_3.png b/test/fixtures/images/plain_1_7_7_3.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_7_9_4.png b/test/fixtures/images/plain_1_7_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..fc6b81bab9fe97722b502632f7c2c0af18853887 GIT binary patch literal 2494 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 GmhgW{N?aBI literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_10_4.png b/test/fixtures/images/plain_1_8_10_4.png new file mode 100644 index 0000000000000000000000000000000000000000..cfc9e00ffaf3e9647daeeb4ad50ab433494369da GIT binary patch literal 5863 zcmV~3^;o;%g+1cIQ-Twam?d|QDsWL?X02X^mL_t(|+O=KF zbK6FmXYH)xIPoD{Gd1hAF4^qZGje>GWT$2wD~HWIvW~Tftg9r73J%#Mk|+uX#|b5p z#vzGAk%VyYc!m@~^Wenh0~8OTMN2fHgUdU_%l$_!-o&E;bVD-AWr-rt_~GmC@%z4R zbSHSM;~KCIaf2W144C;GkeasukoZGV|GR|N(1cJFP4l{i_q%|}@VsEkJ#GGmssw}OcoI0DF)kB+-3DN-w83AopZbc~ z;u@L`bmIZw-)-pXtDIN=YmhtqSa0Q_`i=IRm?pseFB>)ultKav2Q2+lUT04_JQ1JlpbBv*N`j1T~ zfGNn^(apRvY{Ud$8s45@05G~Bx9#etZ=)UICx^@ZcmOta0GW+ZNBu$aM?Ja+lrLNz zKb9h$(I5CRRb*lTXlXYVJ~y=f`%l!r{ElhQdjdw`MMNu$n$`AV0pQN+D)4vysj5Yt z`|4i~D8X%d*8zwS!RWr$chX`UGkl~8PNdU2!(4avymq4z1MYn3Jm;t_MyTOuh5(fX zmc<3|hN1q23x$3DNm`!K{`PG3wM~}{j_B}4p1y7X0Gs#{s2dJIxVQG@KOS}I0lmSG zTetM{siVYEc(0mSnq`4<%j2~V*vQTVqq2leuf_# zzkXD?OnOh>|D~nv;M*hpw4c7X#vG>$_(Ai}x&#INu?Jsk4`t}rXQvX1_vG%HeJ7JE z7T@b1O9%L)hpg6u$d$DSG%lENNd0lSUtv5aUw7Qe0C4cD&heB`J=S#*wgIim;3;Le zfB`%EH_-I)LFdC7(s}To?X}|p*st4o%Ld7kD8?I*+dgYJ%IvW?bYKm=etae}n81`z@CK)sC z4lk*nZk9eda>bXYk#&vZSHyb!Djd60vHRul5jexx#y4ed+#t< z0Orwe{or-0PF4?WudUJ~tUgHWA>RJ!?76Mh3N?ti0Sr`uXg z*8#}QU<6A&JRSH9$@pppw~&6(H{9NDf?Fg29)KrEH0Wn$$Myu{`EJgh7=Y-)=CG(S za9#95yU7~Y%fd35vkpG;&V#M_yx+TOemMKgCA+_B%=J}C%-@?!T0kK7e!~~!O>;7e) zw|NbR>ff*>AOvdRlR5stZcTW300K*D^qg6T!~%e=gn?r$gYq0t;{(7p!$*PKBga4P z;REPm0#F5zTZ6{r!~6Re@w*_)U;=o=k0_DuLh8#0f6d+=W9wEMU;)<5;5O)lYnej6q0CooDSIiTehz({bTqVpHohCknjFN889g>()R$Rmd0D^|w zRLKZ?BkV9gp<)71{54hSR?P%ZC?Nw7lW`?5=L7Kkk_2XT^GjCHtt(5O8~`9*%xMHb zJdM*P5fi|?uMRL_ZZY83*ljjXMgoJk7=^nCM4bXvK1Nq9rGGL?I1+CBcmaqvj5~|y zGLTQm497s^W~o~YcE`pAK>FPPC|tUW8w^zdF|7bv<;+?NC17Y4dm;c1+*;SdXj6^{ zz>^}m2Q~^grZtHLKyq`_eRrSl;Lj4u{D53H0sjs%pRn;VZh$7nN-4hS9r zIIA2Y3G!HqosXjfo}pLgxK6Rf?qbFGBsKt%^9=Y8&N#~aSg}PPnZO26{^BdoSR*rS zM8O4sACAR_rvnCkg^gWvK_}1-9k}Bi>}_A1o|3@@fbR!9qu+yG@0$lyT$YJ>K|&i$ z>bbedQ!q)@RXa4>5pnxqLgE4VvFoW2Xv5QYN-cRQ8-rr$k&DCvQ0iWC4|^XqO5Gc6 zmaSBchB~+aa3E_sK)-d7=BAYN++v~Jt;`ZY$dLGvC=LK1u1yES`SVPZPE)dO1}Q+s z&;cx8Xt`p0=Fb5GQne*vNgraAs}1a$3ud*{0$^2&25N_kAe*vnx`7v4u<3&Zz^oMQ z`>+c{3<(g}0BB<#%D#WJRoY$xFI@?NF%M^u?)u%X%wpcWT30zdi3wm!yML|?BQtUl z(+CKeoV2PG7J#lc8T2XzWm7%eVDu?yX4(@R03tnaCnCN;CN{we*8QbLK%~y1C#VTZ zXwOVDA(j3JUWLYDSQS-ewN9%ckDh1BrUNkardUY1!B^R{I9$ZKc)i*{1i;U`QZX^* zGh*~E5EmTag(XA)zFe^8bw#L-K+LRTH2rq!Yg~*{B$dO@;hG#324Il(XJ29i zY@4D$A=y!iDh7pT4M3(1hgUEGpo~RE6Gu4^!1*BQOlqb*a*>9JP)G^{a4zuqL@f$Q zO`RA<97?pM$Z%^;48r8Ac@R|$a%3N%RI=cDm>7p%)X)=6gj^FrQQ_8#AY(dX!vSN$F%MfmDG)(8BDQ@b6cEQTLNozO}WP z)ESIMmJ(={KZJ8OLsd1~xBZb8I}Zj8d-tm@T28=3K4*QEYVEdh$IJr7jXbcYsGK`4a=gr2IH+-oCE;% zxEn44>wWH~=!P0RgfYPc5aDhnO}ociYm`L@^^hJEL+}7Z5`)?lC%2@EUhVp&l~g^% zJn;ZT&QiLmE8BuDf2BszElLSj8v+YJbiO~)sHb($LbWNTxCoJA0f?^tP1Kujxe6M~ z5iMc?h?*)Wk$J#zsgGUB8T7%|j8}eCktR;i2Ea-ysYmaqYot_bJDt*$l)(cKWdrM? z&*4chBB;jVOkMMim;fSkv~9#dPFOarEMftWBG@^MI88#lNu#xp#{wXSheHWgqlY;` zE8kZiNG5Rrgx3pYctO=;1vv`HPRqm!$Dzqb&`e5q!XPd!duj=ZlQMz{5>HY{B}K&r zATY6b>lAi|<*NSF3?mW{vFK3M61lJoAXue`XsQumP4R>m2yi6OjFUTveajFg z#|2=RuYj2ys>W`Xc$Blp1YkVDa?n^%7TzzK>T+Af<2CUEXaijdCoPwu z7b%HQ-Mm(Hu#}P`@L6ON9l);S8gltD$w(mX5?ZAv+HgX? z?xO?nG}YFsUKH+C-lL7-h}^tFd?kQxdX7qTa6ts%84r*Ury18y3_!)}LEWE89QW+z zDrf+_flx`f65bXY8oz>$I(jfFdKwZzjxZ|ZLX~Axs{u@5ayJyfS!4jP86ioK)#@J0 z6cDH&u9QR|I7k3sR3cwbKC4hBLVM)ZX0X;_|^4?gxxmrA>C0@2wX7BY+0)Px8 z)|Rh6RcKNS(7T(Iuv`MHC9<+~fr_ejAOOe~mZq6Gp#h($LRo{@zM|&O0&UZ8O+z-!n~qIn?JD7W#oS!&ytVJKvSG>ON%=tl=l8-Kk3;c9A?r(ytkLqmVR-lO3zj<+`F@ zpA0Ni$ges+*i}n=!6b2s_0tPvTE5FJD#pYjxq?JO+tbKkl7`nT#Vhu)0m#c0yDKL> zlp;=r@Zgea1PmxD0OyAQnjtab85`xww&N^0#nu7mu#tQp7XZrOF>|eV-6AN$WiPra z<7mWDtw98Uk_LUxpXE8yNXelq7ENG26VD98Qitva&mUe;Z$2RcYKrSHWr>-bdXGZ8 zti7OcP17#A5>V31CXXS3@Oe5y`jWm{VNxuxY*S)W(8`GT+O*t&U#1J4CZpWb=cgZP zOjJGAgj7T&aZ2-$0fhF!_iq~u2QdILFWOm>@<$D10EMtGcjl(=DnAOIa8j8Pw0sj2 zK={fI4;|~!Zag;Irb!^yMCaTV@yxXEvke>oBAW_La&l7uLT7A*B&C!D6Js1qL9v!mCZx0P$g zHBz6j=vli4GD$Z8GbkfYw(){ds2NU|kC;&bjLsMZlJLh6*R>`kQ~=?_w$Ak{-u+>0^zI53 zZcRd}4y5IHrP?q6k88ZKdJ7~Zy9*XuX<~9hjK~S#;C23uOP-kPk4DDP>7oLNn6c?v z!=%eUd5dvo;KBYZODKo{9OK5YiQwL4WbVBJMGXn*GO7;P!c%TTroxM!1*Lv_kAx`! z1OW16ww^Qc9{Mz5$GeWrB@zMvHX{)|H8cA{=U&&T0777`sW_Wy8Z*f}bqOjq0Fd34 zG|ytLos|yLLVnG7VMJoX@^@SSAitD1)+g2<(K8#_y@k%Ll}3R3^mhWz{DFzX;D;Fo z%887q{IB=)Z^dOQqK*Xw8~`=fRz2t4D$;Rn((z|w9Z~N)TGhIjTCU@ao-?kc8e9vq zt`Oo6&UIA&=SKz>Lb9t~k#w+z?}c{Y+SL@0oQoKI_aBm34s#3K7anlt6MoZUTuViG z^~t%9(9ypQI^L3n%bmmkkpJ1ff5|4-<2l{oznhD>WFu(BHZlO^YwyZ!zS$%hr+`Kq z*C9gpg@20 zHR!7>RQ<~vzyT;PKAJ60$iheVUsie8`i0(O%e~6|i=&R?Wo$Jus38U;@e#lOrw_PU z&ZbbA4ah>e{cvK!^V{#7>ycAK5D3USaZmtdV>O7cp3r9G7odv@`(M!UEV`Qi4c*g9{8{I zEN-UE{*mun5s=VWYAqUoTi=IjmXq#M@Wpif^un{g9R2F@c9t<>v+?k9JraONkwzSS z2eytZ9Dr+uy$^5mABySPb%}7$N@*zyfOi4qua5l7`Tl}`GUJJd5cKq4wY7!1U-xzE zw_bUW$p`=_E2;PRp}xD4UjlQkc)&kiDqd(bI2W&GnQ#CI`x6e0Eu-d!KC||2W;Ign z@M`5$(v?~Cya42?bKn_aG5e#mdeY!`uR~U;hrw6cSyvcxzKX8L0$Hoy!0Bbs#!{-J z&)>N3r{}&79PjbJT@s3mQx705IBD4=!B*M3YE-OZbivi0)&&Rucc151L!*Iq)@^=Y zx-n!4n~u5%<0lCUY>9deF@*}?T1R+pY@cH+UlnG=wl1`420fGr>8u-oUBOofG%L8O zYSXi~dH$h~7>4y=ekEy^?A=2NHUP2t%urJ?VpBA}1yW>}loI)DofyhH1+gEE;u7juc?2nKT!^lZww&yu3u{2VF`{>?~JFR=^gV6-W5u zqrMlwC^RO!IHGBSGFe!h1ka+0a0J)AHKBd)bS2?VpaPpO`1BXUC|Njw;jYi${kOMh zl?zyo{=j0$O(H&kLv5B2>Fr$48XC$rl}poYp8}h&{E9>v04ZXB$`45Ymco6(>yI`m z0NEMgz?edyI2O+F1Nb3oOB)Dn3wZ0n9~b7gy%p00rV;S`d#VJ!@ERDjl3RcnwCF8Z zdI3mxBI!WIzpAI77idlG1nqDc0w5Q?VYKRt{i*T+L|A`;|yyTU^9Bg;QX%~n# z02=Z3ns-$|;Fiwbeh}%~5GAxonNY3P4FFObad)w!U#U;Q_}7_tQ&v~;@D2pvvQ13P xD%m4c=|7$`$~H%~FJeV)(rd_I4{_xWb{c)2Meb&&u7D7ydVOaK7T&jbNb z$WPS;K0p0araqp&E+Zo&0|NtVYilbjD-wxhY;26r=g-Z}Ei5cdPft%yPA)DkZf|cZ zuP*ojfIQpX`MB@(iN%S5I6=22Ac|+ysc)*G1NM$RTQv4f{A#RomXLIzh;_;(JK!y>8%sgR)K-buPmMf#}@kphPaTt43q47`hGJ$o8bEhiebN07`8wV~B5?qPD zG-@NjmJ?{L*iY@}M2eQPGm1)6!2gSla)_`2zVP9F0TSI8zfCfWN2#7aL?J3Pf;I_}w^%ose^tr{yguC(%AGo*+tJ z{y^ijt-OXBO@p*kWQc2>)9-?X>5sxTdSkMSIJZux0cW-uJRY7rsy1~XmuB6dMV-S~ zTjlXGLJxn-pPjWSM6TU#O!&(XcS=LJl!&JH_1x&x`w<<^wxBim7WC^-9^vczuJz3A zvC^f6yI8xxgWi@*{$O!u%&g0&DtTa|_zzq59sGVemZ%G{aN~iamYV89EkoTFhrW2S zgI`<%6}ABP6#tHwu^9S>RHRO}1*m&p>e^dYI#8+pA2sTD4o9OQvi*YA#rk8fWj1*Q z+yN&f7Rn3L^sTPg?`;a(R38}LdLhzsqB6YMEF%sJ^baHDCNB>Ky4p@!%t^LXAeA-? zp_jH`7c?#?WV~q z$>Eq#4^(vPfIoPSQ)}~jz_adO2Gpr0BTzQVrz2XI!9HM#5_aN@>4 zp1OareIJ0|z4Sz?>J=IhZ|Fw!MsrDsCkLb+7%aj?(NDD&tYyrwC+~L;z=k*KOU4d+ z7`Az%q4u+E(BMJ)p%GbDZ|nZ9YpQhE^yOEOhGcJf?Ws)hF;@!PPFU5>986qT0+{(YJLc>6{m52WQcvY?QR74E`>exkyUk>qx%@9a)c>A_0vSRIWE8Cz5%E%tm6^(2`44e-|HF`4M{!%g>zGO zpoH55aqog4z4$@C&_9F>$Igxt?>*27J-*~{|; zOBB6G?8s>IL(&<=?)XC1Q{67+*+{0j$*BsJgmRo(D2O>9&KVTaQ2@sL<8i!Ss^uPP z)o!PMOD)|aLE11lrmVsv+gPQFeS_Cbho|=%;>I0&Xy8#*;-f1`5WYIFS^s>X@Ur5t z{lv-GjrkXSa>H+S6lN+9pYRXaTx*slNPJPvo3GbPQ}m$*=K^y506#AA(-7V6>r%hS zOgKxWfHW&jU)*GHOdS1tJG_SnTh<51jhc@=REAGkJuTN&s58KV#yL{vQk7m-+K0dvetw7t4zQ>>LqBIRR}Ppwl@k#{+6B=` zQ9&qqa;T90)+wNBkJT7GYAVLUqD$t77B_X?)931`R~6`|sH(&h{l(9C$sSRW!I-Ut z1=kL_n&-s;a5uB$ReO$gWP^0q9lQ4r?nB1BXz6fblZxou^#R?)7X=2)p?}fUji2u_ zm+`xB1&o#R=218`y>y~_COR?xte;G`kzgsI7n;G3gMX>LG|vf2+7}i}IY6NJtCpa- z$>bZMFT>cg-|tzSN;91>* zmpIH5{>ME{(!+SirMb`06NLkRj-DyNB06uC_qoO<)cN|fOC+IH-)+;TK(%t6c*BVS zxwL>Bq?gPGXm#x_?*^vYizNQRd5Q7om2S2==UF~z!VCc_PrKzD%n@_#wuAy%@pN^j zHb7X%t=6|5Ed>7=0qd*3vkZYySK>)Ajo(vV{;K?V^6r@|5SuSpu9`*P-B^a!{V}xB z5sz~c2Jc)xE{>Juq`@M9A7wYUYF1Bh-!XqqO6gKIr%j`I#-UFIbDe0r%0!F`kR&DY zzB%y?yl@HLBxh}Wv`w0bSYv^SkPrAP$am(5gBT<&5&CK4Q_i;-e1kH6s82Z-)&MX1 z8s;LB6=!vkFx1Av95j7Hef~Abdi96qnZ2qF^3y={oE2|%S0>c}P%rs@OExnysIL-7 zJ#|68S-wy~Vc3k-!4OYvMz4_08{of$aCTU4FPQ;7z}Z7dxL-Bc*N_?=d8Zih&mzeZ z>bT{0;5LnXDD9y2E|@B$qix?{HNQXfH>&i3^i7AV@HfKzn$39}(+WA(c}zp))_X{O z+;T4WqH?MaaQKgD1;_P;UMu{aluz1YA6)~@UXvrsM)rQmFl!Mi37r~C6#|}MHqtJo zNiKaw!6t9pP359F_u~fz*aG{qAf4;bEFs9$e_SdE@yoR>TXzp{*+EsS#o?Zc4{eE$ zUM&FJPRpQuHlj=d)-Jt?2j>l|*mP3*x*kg^V%$O@#m_2SCM{oi)3$aYmU X4*xyWG-3Sn{s8VSUe0xRQtJNz-oQ}f literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_13_4.png b/test/fixtures/images/plain_1_8_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..39606af76b18a5d28c891825e7cbb3ac06127625 GIT binary patch literal 2199 zcmbuB`#;nB1IORnFowx>9T6dSv68dgTAJIjM((Ltr4S*~8CgC@aYAj3GP#X%tF^3F zPA-{C%KZ`%8B>^Ca*2`-r|;kJeLS9z$MgC7>z7xG8_7`?rHTRo$T~X_+yQ|7N*EAB z{1WHHGp}FTqqXXkez?#9~uh#odJnN*|78L5d38SJMhFvhsKva_W* zKM>s{F$yQ-YX#(5S5okkw%diXABH4mki>&6-1Wy6ioVIEL$_?oUead&n7W}G-NQEe zT?igt;j!q@IO)76*j(L#gCe$_{1H=A6rV}F87n2_gxpx@>;t5?gEIT4lp?7 z*Ty|Xy}ijqf~aJqqCS*U;nIsMgU{*efG-X{6t!}fC7QhYU^@7zO8ZOnblwbfnP`$z zreocTrr|++UyV{W9@u6cc~uy6q@?WQ^Y-dI6yR&;w)sWYPxTp=AuKotUI$17?5^y$ z1pI$R2{FMDi)KO;+$<2VwEa5srhDR~<8eEfH<51+` zQ-P}Ob^4yKqj`;6qMs`8N}WT{13QIEhAlGm?IKgWVxprEkri0&;vH=yg^$@+UTdiP zQ0Mj6k(mKCRJv~pdN|xIOXXEyRpRS~MHOJCopkG__^8`O%&W<;t$((4{rsYi-By4S z)hI|!PcD|eRlFR*VA}>Q99;`}5?>}H54eh(7ayX=iIQ_DybFF`kKQVPkiAc^Byoz6 zQ{7YC_5t1XFi?N3ZMi{di>Q2h*F`N&cH2ZdKP34`8i$LyrhYIm!MR^d4<4D7(G_4K zkPTy$Caq~vPxAunQymYcEmaE%eD{LtYeyeA3I{*aJ!&lrhJDE?t=vQHU3;Ph`SBL< zNgjMEZn`xpyF;b`VR9F#P|%RE6Ah&k{M}s77C+*vThGB8Zul9dL(+pp^9LO`vPlBl zy^p*@p;BeOS$^Q%eae;y`&?n+%tH(sQc7@fIBA2Lo3~HwqG9aT!GngL&lMN_D-x|Y zX7WkzQ!L(&GV#3gs~hCwPPC^1^1h>l&X=-{(LG+!*v7V^QF*M|v~o#krFg$58LG?m zxnOy^%JtUwBDAhz@_<*gbkFA~hpn}!$MrU1Fkb84a`96ZbS-TJKJ~JP_whlq(Ws~n zt1&f7&joP|SQnkTZ(53un1=_ix%u58U+XvyU z5|$dXIaS+=JwH@Do_>?D@t`yj(CShYU@DtB;S?3dPi|8FG{68s{NrO( z12104tda_p?H$p=+{#d^_wrO;fe&GBwruw+MH(RiC)K!xs`Ynqex}@~b+_z81iTsvM#h!J7 z#893Q@5&k%f(fLbuXolqw}-J>pNgcin{BS}tlAsk#rMoe8_$;XZFNcc1(HzJ#}(gf z-DCL+u*P1vgcvp=rg7!{=|S``g7QL1=R)mlb?H|vW;#dBMKT1+L6R$&Tjl2?aTF_J zmIEo%{{?~$CElag_Sp>({>a4TC-Y%lUKI1113dM|Q6}w!eGPHsOg&cI$2%z2Gl|oG zGZ;W4H80WI^^G-i3hi67b~DzTZdn@(b83>T8@x`$|6cX>V%exHVc18uN70*?^UGlTL<_#W62$FtshpNB_6<9m1du>zzc z@muWxV-ND!wJ`MJOBqcFpES;wy*#%Bwft&Ra7^k>Bu;)xT(i5MczYS>sH-+e z#+zot7G0X0>AgC8;FXO1F+A`6pNm+MATEC1)Hdq)Id>GF-n>L{s5|bd#JU}R0we8v z`FfpIOA_2awZlsJ6;R5KH8Ymb)bOHxlJwPQ3-CuDvYu1@*v5DYF+WQ}vZ<1Qk3>H5 z@RMQPzDm&QP=vykB5fE(AVx0x`a0ZVOpJ9>YuwostDG6CLSBDEM?Xl0~O qDYH42tFQvKdSH=};D5xYL0jO|H*BV!Ouy={rvaSpNd%4^Iq^R`WdGd& literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_14_4.png b/test/fixtures/images/plain_1_8_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..817da81524fbd08c4f8d2c3405780a8976bc157b GIT binary patch literal 1828 zcmchY`9IVN1INE}WE_nq41*jiA@@eEV$sk{6RJ(lVGNo=ZgNy6>&jBj(T)i@Q^JyC zSj;{{a$oDd#y#_LPQqv`PtQN`ynlJWfBgLRd2!43I$T&r7ytk`7K6S60H7ZU0-%r| zs&uWh{~^^|H}6`Fjg9s8_Ku8G_nj< zzSU3p;w{DEIX+g!Db@X=-rUoveKFiMz3*KuJa^vg{(Tas3d78=`myK#fj)O|$&*PA zoY7U3(QkpRuHtIRJ$)NH!w)1XQV-wXX2gs;23$HlzHK@G5V6yNmuq_zEZ(Y3OJM3g z@k3Sr<|9Z}0d3kcfsj!(Lc{nkmxbBd3N&j_=|NagZeW#X+mH>4xG`ral%)HaZd&~z zMqnp%R($@ofi46WDcaiv54JS5UuWh#D$Yzs1hu{z#| zGY~_p=7P)tkoLNW|08GQ%ewf5>;p^jpg|#H^8PB{SfsPsz}#yGy%7lX#LGG(*$qCB zji{^8d{0Jl=;eA1AKG)HZI6@lFh9R0ji5F+^9kagiZMQ}vA&;X<79)gqg$^Ru}b9` z{iikCWJC9HcrbL&+p>Ol##n=?)&^cKlxLVcTa@eCj9rPg{3{AbDB&7!qp6?3zHL_D z!>s5BvbLq-KQ*XA=Y7qUYf7PVtoZKsNWdkB0-wo@cmbUkQXB0 z2pi04J$3}YUep6Cx$S6YI_Nb&d#IQv%MuR}6H$3O16AbVJ4ck2ePQP~)Mo0-*=)5h zb>N6ow4rQL)x{Pn5Od>pXEb6qg&ky_q?SK}7nh*Q}OOiS8is~z{b^i-$VWrJLn6(*Kn z88I$x*xU)XR-T9LUO?oJcO|TWThs}Ov7)l^^F?;J`BN7j>qL_C_$@dadvybtmKzD4 zc`%2CC&6YY4lM3+lR2Ewcy#Utha!d6!XAJ9b!*u@Dz_&C`Rkv?m)nnXtPOkC=14Vm zzoQAMa*@B?gJ7;ntIQ_{00P`{*WUhXHSjYgBlz`XfJm)FPMUoirhdt2qX~0f<5jPe z54)c0MfRE31L51j3&YAGZ|+W0Xo54*Cib2~`A#^#VKH=PL}6FIf3iZrY3FAkBiW-} z)yfC4Rw`_+Unkjxf@d|K>VX`&WhHc(IX$&=0IP-bozC75N-EYELXaFd_uXZH#Qi_3+t<@x*5{3aw6!-{OLOiC>; zlilFe1F5SVBJEA91Kq!u&JszVp=m%RUYd?S)9KC7p{D_!nsZKV+J+}e_H~Leoa%Pl zCY|f_V78*Bp;kk_jTQM3cWmh*UVG2LRs=5 zXXZ8(kSM?)UO+HWfoM*cFp5wKKn{=(Vr#Ay3`#cv?PceqF}15yd5;%FApBc}v^crd zNY84*r53|Wlyk>=GdL?{A?YiNnF_%Ss8&c!p$s{I?z(ou_AalMFrRCOI6w(G?v<&g z9QIpMHh1}+iYT+CM9kdq`Fsa%(@T69->5Oyt(;hsegiO#KAR1;EIAp( z{B9A5#9+tAJK`E}AoqWc^qDBug67j!z8gVm_*9;-ySyAOL0W?PGNZ$HmpG_(Ky4clmR2sweQjpcn O`xva1ExOW@5c^-N#YKAn literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_15_4.png b/test/fixtures/images/plain_1_8_15_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K585o&?RN5XZRUpM2;1lBd|NsBxN2E^xx$>Sa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpSa tjv*QM-X3J+1@aCp`0k&}XTAW)1cQCNia`DKl5>`WxSpzopr0I%9DwEzGB literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_6_4.png b/test/fixtures/images/plain_1_8_6_4.png new file mode 100644 index 0000000000000000000000000000000000000000..c712bdd74455e8b803602315ed894ace32ab81c3 GIT binary patch literal 1021 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@%$YNnE?xTg@#D{* zKfiwcdhOb^r%#{0eEIU;y?YNIKD>GJ=G(V#|NZ;d=<21%z`#7w)5S5Q;?~>SyMt~! zh_EHBdcu2YNqRyXyFsbci3@2QJJLJ?W_I#wgtoEttQL{z$*_%yQNAfOb?w1R8~8m(0-8?;kI_fbU`h zlhlRcgAAdr%r+(og1jCa4$OTA8qQgp97tAhVm_5|p!yu6$pLrfWySORmKWP|awY_F z>7TUXlSnw>_Kh*t#9``%1`*zltrH(y+RS(1{Go#TjLeIQUo*t>bJ!XvXx(C~U~^!# zVPE83!v7=mgG|RXU1lNS2eVTTEaDW1Vw-Z`?!ZRw8Rlt+7sWbcvCO%}n(_IgK)`nH z0Jj6nVjY(MN^)S3YAV!-*=)?ROfI9hCGj#}!ZC&$5_9K7&1%_Y$RXd-xFC~rfpjzD z0?S`-BbdI}?PC$RaxUj+!bO{ZocYrb&#&g zUva*jEjnkYCjZ<3GaV%(IxP~?FCug8UkGk=3L8=9EK@}w>D7BPI> z!2RbLBi914JBh{9Q$-f+w!R_RcZ*jfVTaK6-@3ar9O}hbzH%ODlv%J};GgLHKTmu0 zLmeIV#P`a*?`Au?Jn^8GgJ>J~!V-J7h1%Q_ZO;E+pSr*MT3wvWp@!S57HryRvqQLK zar(Van|NkO{{MO`YwtsuZsuc0UlzR4pY@30u(1oHLlfJQ42L(3jLXD#zhSNcxj4w= z!7)bWU2+l$QEcBBKgfN!*ucW;agpJ$)fRpOon{+`w2Q#_xv>9^8pDO-PMil!q$Vt2 zycM9rc)^WH@PLlgghh&cpeZNLbvQM=c@)D16xWoR zFjKIY`GgO9P{Wy74m=M89USh3A2c-+IJ$rPhMfy8lx=9JtO$Lxi1GQ0Sq84afRug8 zy5K?TPbMh=W9f5?K?am2E3loowOD|;rmQ$#xNg1ue^|GXE8B_B<}sh&Gq6uGb@`06Nf?r1F6J= cUdDgS8tJa*4}O&A0p@20Pgg&ebxsLQ00lp_J^%m! literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_7_4.png b/test/fixtures/images/plain_1_8_7_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5d4b9f47640f4e094c2b8d58d02f199a79607620 GIT binary patch literal 1929 zcmV;42X^?0P)lqs+1cIQ-RYkIF872)xX)vwSn3BC^#PpV*(j`M!DWVemm+e>h5jDNSd4h0`7lrEl)L(fS{!!113*N;1L`^u=N;%>oevm%@hi_?JXPg z9kGDm{_(_~fzt%fi)7}~Q*;ELLf{=>0fP5S)?Rth06)199nm=u+(l<@GLyhlMFWDZ z@GQF4Wqfyu3I~kLaP7DMVTBY}5fHfH@NYA^!l5Ps;3w=qSyTdG^b7l|&tw3C9afxA zbs`18+_cP5DhJ@N&<%qCVoQYSYQ$AES%6^Yp}%t6yRQ>~pN&^HBOXdFSDDX;w zL_4LfK_vpl(ck{3QLaQ&kgMs~SfDZi(FL539qN9iPE#-H8x84zB6SbL#*elsY%OIU z2nGmDdYPwXO3NRj&M$2L3(0`JXxz&^?TWgGZ6X;kDQI)EB9%%81U!R=w=oL4Fp)fN!}RvqLQTw1rNM8JFmhSP?!D$}D13t%*XrNsfZ{&1L} zfZa6PW%FAn1}K0v9F*CBJSc#5pXc0oq)>5yRKtN0n=AkV8Vo>}1(;sY00gjZb)DV2 z$j8PBK)_f{tb>yN65s&?n3IwkZB-N{KU5SYexn;8fSHBEc26-`SJfZ^o4o5n;4)+< z0qf`i0|Jv1-~j_}cmWnPKtqlIdJ}L1>cD^&Zxx)w0{+l&`+?E7+#6J|J>i#k$bb<+ z1~7L?qyc>1^E<#(vU}btoK9C|Oh{x!fV(4v&H;YF1u%fS4x>pSBw&ZT405ml?mDEW z1b0ptr6KBkAQ}%r0ab3mIV>PU62JoPRQ^H)1&p|pz=DkcYr9k);D#UrxC;?D2lxRU z=m^-HgMk4J7~^)u{D2Dw8Bi+&19&^*>l`p(7wP_i=c9rR(69ky?ITcGdjNV4n8*PB zNg*(Re_9L-s3HR<1R0Q_1z-U-E@09nxPUt1{e;umn1&44rpN#v8<3$BqHlD41G5u~ zb}GRDTND>CF_8f_MFyB_413-C2$z#TRq^GE=e1LVI8$YVD_ z3mag;0J1lMr$PXJ%?=ov5P*~H09t|o{ICMRfw+I*pX^B(y)^)!D_$W2AXV@$0yk-)>$KZut*yTYX#(!2{HRk8dxcU@g}QdU!hFCj zK>)Ju64I7_s6ha3GAs_O&3eBL_K-`4Hs}wE8r=N@8D>Jqpf@n=VFN~2$bi6CkpcW^ z2o2c925>)X2o2zF18_hU8^C+Xpa%`$y>bW+;7tN}0Ko?AU;{XN0(byt5(ofPu>n3d zfUhSI0N_gk5r8^2fU6Be0Jz#f2!O0TU=tfK#s=^#QiT9+2{M4E4#fbf*Z?0Jz;O{* z41nX7Ep&F1#|EUHl!yYP?hJ(i8rXm>Y(UyVdV!&? literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_8_4.png b/test/fixtures/images/plain_1_8_8_4.png new file mode 100644 index 0000000000000000000000000000000000000000..36a009e8f39c6ca321af3b98bb38843eaa74596d GIT binary patch literal 3310 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_8_9_4.png b/test/fixtures/images/plain_1_8_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e6cc209557d125a390521fc58eb3b13fc17b40d8 GIT binary patch literal 3044 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 FV1mru;kp0- literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_11_4.png b/test/fixtures/images/plain_1_9_11_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5606330a3a862b11de33230b51323f070037a3 GIT binary patch literal 2940 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_12_4.png b/test/fixtures/images/plain_1_9_12_4.png new file mode 100644 index 0000000000000000000000000000000000000000..007874b39d1d5e9beb87182b253924d078e187f4 GIT binary patch literal 2820 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_13_4.png b/test/fixtures/images/plain_1_9_13_4.png new file mode 100644 index 0000000000000000000000000000000000000000..e65335a41d248385e7bf87662c5b9edfb005d20b GIT binary patch literal 813 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HJKz$e7@{Q2{jE?v5M_3F)= zH}BoM_weDvr%#{0eEIV2+qa)Sefs+K>(8G*|NZ-y`-9^t0|V1RPZ!6KiaBp@@6EpL zAi-AfS8{3f^hp~RdLMTY?RBePvG(|mjt7CcJZD$*mtP3b&{KUIa!WV(WQftRb-nNU zS0za+r>qWZtDetuzOnZ}+jI77bKl*wwr0B{!^EM`&`@3TJ-d%pJoAjUmhh;?k8J*|mj7`_KHGgN=!=K^6 z!^U!xgWEzpTXw%}g3?D-5d+@MdLju`LP?ClA2&7}oh-v`(7cR)3&S1akC|=mG(PPaqx4dIM;ZWSf%kb6Z9>Wzs9TUcTix}QXJy^`}`5srptm#&2uFOrL`ey1%$2|B5*=LJka!ECO)i%B?@55(TSc z%N;wlg&b4sZMC^)mc*LopR$KJlyr_WO@!dF`_^JOxbu44$rjF6*2UngF`yN*(|J literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_14_4.png b/test/fixtures/images/plain_1_9_14_4.png new file mode 100644 index 0000000000000000000000000000000000000000..a526cdbf26794903d9bfab6e61a4bf38009df065 GIT binary patch literal 933 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58CaNs)Vi3hp+HI{z$e7@^5x6du3fu%^XA8o zAHRP6`t#?{moHyFefsp?y?YNIK79N3?Z1EjGPM?JFfcINc)B=-RNQ)d%QpX(g9LlQ zlDh77u~Mb$w65%3n6!G4mT2@+m1B~@f(FT4oN23OiQj(n?WaWJhobm(>DGZ6NtZ6{ z`rd!!znD(svpSpacZ$>BOk&zD#KO%3zRk#EDHI+$+E&XS98*04ilDp)-xIB*s%#@I@nrr$?z!r z(>NNp%Yci=;ml@+6>qr%SkjFAyaSiAGu2G|q-B}aGWVqP5doR|XPRPn+x_KZU}>CE zxXb>p*0bLn4L*$O>%Tu+yOWu@C$4nuwS@07EI(F?oi)znzq3zkyDxLe|7#0(ZFAN< z|K{_uat?+Ut`BZqoB#Xbw7U_nUo~e5HU#{CF;RK5noD`_Zm!#_MHxEUR+(|;F$6w- zdHR!y$Kvnj8+JtPl)BGUQmvIxvTA*+Q)+uPTfv*)jUdim??25Fab&JGLCw*|&c>z_USSIu4BH3CO1@4l8_ zVSVGQF4x{AS&{d?8xyTh==l-|;K$rKiyZ4^nmThHT!SAZ?rX7`&V_LJ0 zft`1U1M{zp0|}3n3tHGXDr8sWSuxnNWH_*McT|Py95};Z!&Gp9;UYV;6&E+h?SzJ% z?d+;4qBSf64U8WJcnriFY8oVx7$=_mzveSTI2X4-sL290Hi=!zl`I$Bnfop@aPW3q zWN2hFF{>4ual6mrQF8{=>LoGX1c%qB~{Ot7N{RKYk56m0h?MeOPI!U$RdRRl*bmofzjts)$JORD8Eh{*f&Rh`OAx90roq+j9t8I&3xKKZxEzY>`57(8A5T-G@yGywoC CH-eP_ literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_3_4.png b/test/fixtures/images/plain_1_9_3_4.png new file mode 100644 index 0000000000000000000000000000000000000000..5fbac19738bdfd893b319b934bfe0533148663ef GIT binary patch literal 103 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 FV1j3SJAnWI literal 0 HcmV?d00001 diff --git a/test/fixtures/images/plain_1_9_9_4.png b/test/fixtures/images/plain_1_9_9_4.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ecc230863567ee7c1b147b1848b4f2fcd162b5 GIT binary patch literal 4322 zcmV<85FPJ{P)~3^+1c6M-QD5g;r{;q?d|Qd_Rx|501$RbL_t(|+QpsA zciU7RfISa5XC4dYaRw+XW_T1@&w^nXN}5?f2MUSV0Htup3q;q-J)*;aFNPo_&NEN zdq8Q&739Aykm^sQ&ATfWfIQ;vb#_y@x93l9%l`vTs{r6AvrM8u+rSI}3AzG$D@u1y z%P(et-ulZ2>97FsqY0p$0vt@qy@^xCvk2Ze{FnUi&P&-c#SkF@a5R<~Jl#_V%H!sm zOa{UlxKGLd7BVRC)>i@e`V{`YhdVmKUtSZRI0Y_HqCmD^`V7C)BZBWA-BbaJ7i#!B zp-y&>S;a!Pvj_Mjn9Bc0{70KA2i`xdX#ha_aqvI^Xj7|L?FI{l%*WtxhhUh`UO$-% z9DvgRAea?p4mM8F2AMCT9da2J9zKVkJ>ST(!B2szQ;9qPXX;cIbelKS?mM7XkPKCB zfka_7%@W=fdwiucxCM?HO8-I=WS$DIXR9Twid}w}Y?rHGLlJ`7Vv0_O-9Oqf0`zVJ zmH>(s0{KTrn?&dUi|eR}hdGfGyF6^}&E%!dXPJHMdngosTPe{c5*s2s1j6>i+Y$iB zVT*KxqG@~@n_}tF|Dg>3c}ld&owE@EpezP3I9&j`r#{ACq5|mGL;!vjSlet=0Beu! zBn)wn9)3jBKezP>k-(9kwPDlG5fK2eFf9TINv-G3@1$=Tlx2uo_y7Wl7#xz_(x1I5 zea+HIaL9%aAVx(?7(ke|OhH?W4q)irFJ0OY-LMEyu2d}mZ{)v@U;z3`OejqE#PGNC zjNbnS%UAD5Ac8do;6}U2toQU$XtA(dXh$G}TQUG&Nvzk38-^KZep=x|h{Eg)v6L4G z=?9>DVgTrfzPkEe=phLzD**6HR<;EH*0i9>RF}ga0V(Q9Ow6B@#IUuPqG|dl5<`$cc_h4?#K8bA3^(gI zE-2>!xBz+)0oaTCgsVyxQ=JkgTb?q$gaoy(!ko$dn1iB3LqJLxa`C^< zh}P&Hcu^jawLQRn^OI7R?1}C|6=G37JHpVU6dvFqhE(d1MA>~TyC@>;MEaQDEhNI;7^OrR~)Us%2_ z4L?6$+RT>bjZ(ZcG_Engogs<%5F zG4r}1l|rbS?rDG>K)nhaTSYMvQli#m^rZ!DS&6x20^s}Z6&X8##vRB0yCg3M>Mf?i z(I65i!Yy!(KV% zr~gjngVE~)wg4U5&-)Yb*^UX$6`bk9MZGJeaYb-bIT)F14rsHM_vH0*bO^W{J?(4G4>)jZsf)rCPGNfUq*wHm92Y@cA zZC5Kao&{jp)8Mm+ClP1xM(*X^6*p6y=bIF*%u)3Wwcw%q)5)44Of>sw+s2IY1)ZEs zz_4ia2y~7sS?Phf6R&l>kpQ4okY36!katD`yro6PY;XWr7K;>}d5}$x1n4RA1?&Iw z3XmNQaLh1|JX#;s?A|%o)~AJ?1mNgnUyi4xbXN6V+Z{CmNq??S?u?l>>!n+3ju8>L zw3!CS({;14;zq6x1PA~wvXs?Uez!KC_8E~)002NgH5^25`Lx6n0Sp42i4A1`TBzQnp_LnZ*xhusY(9xQ2Npyfv% z^bl|3*$V;yuNW#Tx~lBfDi>!%uqwC?qEasHN5Q2%a`o=ov2nh|Z9yiTZC5TMi2%o1Op=pEs`m zjbR3`^5pSpbCb@=_AP$ISqX^JYJ^ z#CikZ#!`kUgf>h<2%V6)ML+6B&;{T zF$FO%r_l=HK5*VEQSZp)ZgiARU zn!7(-RX<<=UNI~x_7}zRrBPu-T^?&D;S=CmXV(BwFRPCRZ=L*jPZWv7Z?P5JPg_=o z1;>nRn;ij=Grw7+i-sbYVPjwMnHlk&H$VL2&n{$HB@i=2z|LEF_E~p;p|wTG)Rje% zV^gZXU*>i%R#wWzy0$UF0N}D8c;6ksHj!w4jsb=ui+ls|#>mt73(kePq3vu5533sZ z)PX>bS`bXT?%LDeBHRG%m-rF$T$UKMEN)_V*-<7MZ8uBk@E_eT!;oU%zK0buS**6k z02r|~Vrxi#1(({$b+;)P3qYEFODW(c@+gO1gm7eAA09imo%sXSpBj#Cx#6XnCAaz% zMQ+ahKU{YJ7;^@&0GI)|5hYrK941C@Gx4Mb z9P8^z^r~(!BT&Y(;Oj{?Yyo^}Az?Dcrg9WF`nal=C?q_%0((hLn}*Kd3$yc^9?m4} z+p3`tEf{1>-arH3=DnR$R7YuSfV}aB1irTJTaFaJJT^e}&?p33X6$&K-;MK+9`&Ck25g`lK`NGY1hyiYvX4|%3*pEZ^*40)PPq* zrh%_>s(7v64B%yvM{Rcv2O@=@a+GAwUnn&<6q5O{M9asz8svM3J6PKwmwcXz8q_9; z2_ew)s6A;%Z+^%3y%9TW;{ynWlhG60S~5OBQ8{;k+dVc000{JRxi?|~nAQNelQ;m- zEp1yRoUX+IAm{+E5^(^)lzQArI3(i$KvmTr?X_YV0Z|dvgO1&JMgS(|4gD}V!8!Sf z((|fZxDmkVm;f^J_F_26T@4cfz!T7rw6GQv0NRzd&~axr7&;yRcmsPxSUh=c?2FVU ztPvG){Z81yM5~U0OM`LQ*i(oZyRp2aRB_v^I5Nurr`HrqB)p+1dQkN$C!i30ZiLY8ZiKvZvCE# z0l;+Ww*SB^0D!yZ4c5^E002xJKdQw5 zAdG7Wf&ws^B0t$dPyog&X+~Yi5)J@ojE!rJ=mCt?Dlk(dq6aYlNuEOV0MbDry;49& z4#3y%3|$Hm?GzMu%r`=iQ3F_yLsTLLfGOL1NumSbtjEN>1x5h^B<(M4if;-46Y&VF z+MEE3)DR8*i8@a{DL{ZK7)J;K1lSz{XhaJjINVSaBY+nv3=jYg8G?2?QUIGjl=zEi z0fZq_RE!pYryu#3!XN<<%31DS_K>Cq3!wkqW=|Ieh5%p{gUA7Ri$hqB8UR`D*Q|vB zu;ltnb)Wul41mk7zrug@lX_ Q7ytkO07*qoM6N<$f+sr7Bme*a literal 0 HcmV?d00001