From 045de4aa3009b3631d45fab910349eca3fe89ef2 Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauld.mccarthy@gmail.com> Date: Mon, 10 Apr 2017 18:20:11 +0100 Subject: [PATCH] Mesh and imagewrapper.naninfrange unit tests --- tests/test_imagewrapper.py | 41 + tests/test_mesh.py | 133 ++ tests/testdata/test_mesh.vtk | 1928 +++++++++++++++++++++++++++++ tests/testdata/test_mesh_data.txt | 642 ++++++++++ 4 files changed, 2744 insertions(+) create mode 100644 tests/test_mesh.py create mode 100755 tests/testdata/test_mesh.vtk create mode 100644 tests/testdata/test_mesh_data.txt diff --git a/tests/test_imagewrapper.py b/tests/test_imagewrapper.py index 8e1151929..f733ff4a2 100644 --- a/tests/test_imagewrapper.py +++ b/tests/test_imagewrapper.py @@ -286,6 +286,47 @@ def test_sliceTupleToSliceObj(): assert func(slices) == sliceobj +def test_naninfrange(): + # numinf, numnan, expectedResult + tests = [( 0, 0, (0, 100)), + ( 0, 1, (0, 100)), + ( 1, 0, (0, 100)), + ( 1, 1, (0, 100)), + ( 5, 5, (0, 100)), + ( 0, 'all', (np.nan, np.nan)), + ('all', 0, (np.nan, np.nan))] + + # Test non floating point data as wll + data = np.linspace(0, 100, 100, dtype=np.uint32) + assert imagewrap.naninfrange(data) == (0, 100) + + for numinf, numnan, expected in tests: + + data = np.linspace(0, 100, 100) + + if numinf == 'all': data[:] = np.inf + elif numnan == 'all': data[:] = np.nan + + nanoff = 1 + if numinf != 'all': + for i in range(1, numinf + 1): + data[i] = np.inf + nanoff += numinf + + if numnan != 'all': + for i in range(nanoff, numnan + nanoff): + data[i] = np.nan + + result = imagewrap.naninfrange(data) + + if np.isfinite(expected[0]): assert result[0] == expected[0] + elif np.isnan( expected[0]): assert np.isnan(result[0]) + elif np.isinf( expected[0]): assert np.isinf(result[0]) + if np.isfinite(expected[1]): assert result[1] == expected[1] + elif np.isnan( expected[1]): assert np.isnan(result[1]) + elif np.isinf( expected[1]): assert np.isinf(result[1]) + + def test_adjustCoverage(): # TODO Randomise diff --git a/tests/test_mesh.py b/tests/test_mesh.py new file mode 100644 index 000000000..c2d234fb1 --- /dev/null +++ b/tests/test_mesh.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +# +# test_mesh.py - +# +# Author: Paul McCarthy <pauldmccarthy@gmail.com> +# + + +import os.path as op +import shutil +import tempfile + +import numpy as np +import pytest + +import fsl.data.mesh as fslmesh + + +datadir = op.join(op.dirname(__file__), 'testdata') + + +def test_create_mesh(): + + # Test: + # - create from file + # - create from inmem data + testbase = 'test_mesh.vtk' + testfile = op.join(datadir, testbase) + + verts, lens, indices = fslmesh.loadVTKPolydataFile(testfile) + + mesh1 = fslmesh.TriangleMesh(testfile) + mesh2 = fslmesh.TriangleMesh(verts, indices) + + assert mesh1.name == testbase + assert mesh2.name == 'TriangleMesh' + assert mesh1.dataSource == testfile + assert mesh2.dataSource is None + + assert mesh1.vertices.shape == (642, 3) + assert mesh2.vertices.shape == (642, 3) + assert mesh1.indices.shape == (1280, 3) + assert mesh2.indices.shape == (1280, 3) + + minbounds = np.array([ 59.50759888, 88.43039703, 72.10890198]) + maxbounds = np.array([ 77.72619629, 128.40600586, 94.82050323]) + + mesh1Bounds = mesh1.getBounds() + mesh2Bounds = mesh2.getBounds() + + assert np.all(np.isclose(mesh1Bounds[0], minbounds)) + assert np.all(np.isclose(mesh1Bounds[1], maxbounds)) + assert np.all(np.isclose(mesh2Bounds[0], minbounds)) + assert np.all(np.isclose(mesh2Bounds[1], maxbounds)) + + +def test_mesh_loadVertexData(): + + meshfile = op.join(datadir, 'test_mesh.vtk') + datafile = op.join(datadir, 'test_mesh_data.txt') + memdata = np.random.randint(1, 100, 642) + mesh = fslmesh.TriangleMesh(meshfile) + + assert mesh.loadVertexData(datafile).shape == (642,) + assert np.all(mesh.loadVertexData('inmemdata', memdata) == memdata) + + assert mesh.getVertexData(datafile).shape == (642,) + assert np.all(mesh.getVertexData('inmemdata') == memdata) + + mesh.clearVertexData() + + assert mesh.getVertexData(datafile).shape == (642,) + assert np.all(mesh.loadVertexData('inmemdata', memdata) == memdata) + + +def test_loadVTKPolydataFile(): + + testfile = op.join(datadir, 'test_mesh.vtk') + verts, lens, indices = fslmesh.loadVTKPolydataFile(testfile) + + assert verts.shape == (642, 3) + assert indices.shape == (3840, ) + assert lens.shape == (1280, ) + assert np.all(lens == 3) + + +def test_getFIRSTPrefix(): + + failures = [ + 'blob.txt', + 'blob.vtk', + 'blob.nii.gz'] + + passes = [ + ('blurgh-L_Thal_first.vtk', 'blurgh'), + ('blurgh-L_Accu_first.vtk', 'blurgh'), + ('blurgh_bufuu-R_Hipp_first.vtk', 'blurgh_bufuu'), + ] + + for f in failures: + with pytest.raises(ValueError): + fslmesh.getFIRSTPrefix(f) + + for fname, expected in passes: + assert fslmesh.getFIRSTPrefix(fname) == expected + + + +def test_findReferenceImage(): + + testdir = tempfile.mkdtemp() + vtkfiles = ['struc-L_Thal_first.vtk', + 'struc_first-L_Thal_first.vtk'] + + assert fslmesh.findReferenceImage('nofile') is None + + try: + + for fname in vtkfiles: + + assert fslmesh.findReferenceImage(fname) is None + + prefix = fslmesh.getFIRSTPrefix(fname) + imgfname = op.join(testdir, '{}.nii.gz'.format(prefix)) + fname = op.join(testdir, fname) + + with open(fname, 'wt') as f: f.write(fname) + with open(imgfname, 'wt') as f: f.write(imgfname) + + assert fslmesh.findReferenceImage(fname) == imgfname + + finally: + shutil.rmtree(testdir) diff --git a/tests/testdata/test_mesh.vtk b/tests/testdata/test_mesh.vtk new file mode 100755 index 000000000..72ff53830 --- /dev/null +++ b/tests/testdata/test_mesh.vtk @@ -0,0 +1,1928 @@ +# vtk DataFile Version 3.0 +this file was written using fslvtkio +ASCII +DATASET POLYDATA +POINTS 642 float +71.4026 114.588 85.3619 +65.0277 121.495 81.0363 +60.5684 104.217 80.6755 +65.809 100.084 85.3136 +67.0109 106.79 93.6355 +68.3017 110.158 78.8387 +66.3277 111.978 75.8676 +61.7368 111.402 89.0418 +68.8636 123.784 89.5841 +60.799 94.242 88.009 +62.8903 93.8018 75.4332 +75.8056 123.59 77.2233 +64.7878 118.658 90.3743 +68.0854 115.955 93.2327 +63.2594 109.035 93.5291 +60.7288 102.626 89.2006 +63.4681 98.6916 93.1567 +72.0768 119.761 74.4477 +67.8463 110.251 76.2694 +76.5715 116.17 75.5226 +63.1138 100.594 72.9141 +65.2061 100.383 77.1748 +66.9214 101.436 89.9874 +70.6985 111.12 90.43 +68.1577 107.984 85.4982 +64.9449 104.084 81.5215 +70.6938 114.266 80.9331 +62.9755 117.665 85.4428 +60.549 107.371 84.982 +62.5631 113.558 80.5373 +66.833 119.041 77.1435 +62.4468 106.527 77.1025 +75.2515 119.787 81.0367 +71.6586 119.789 87.5857 +72.1819 126.663 83.0591 +70.2257 126.251 78.268 +66.7485 125.537 85.103 +64.4689 94.6955 81.3571 +61.3638 89.3881 81.7056 +63.8816 92.5281 87.6291 +60.7158 96.6234 77.5998 +59.6963 97.6394 83.5192 +65.9944 118.032 92.9504 +65.3383 113.059 94.5792 +63.8066 114.164 92.4699 +64.9992 107.831 94.8205 +67.5128 111.448 93.8386 +68.5546 120.22 91.6522 +66.4078 122.162 90.6232 +63.042 115.159 89.9512 +62.3304 110.306 91.2982 +61.8449 105.723 91.6808 +63.1906 104.205 93.679 +61.877 100.902 91.5809 +65.142 102.874 93.6408 +60.98 107.018 89.2477 +60.8255 98.5229 88.725 +61.8419 96.3502 90.8698 +71.148 115.77 74.734 +72.6462 114.475 75.7519 +74.8774 117.806 73.757 +71.9991 114.061 77.5961 +67.9535 110.229 77.5086 +67.316 111.106 75.834 +69.2192 116.545 75.1609 +74.3794 122.003 75.2258 +77.255 119.507 76.0594 +65.3161 100.141 74.1278 +65.9492 104.357 76.4742 +65.0666 104.857 75.2271 +65.5755 105.325 78.1409 +64.7994 96.9323 75.7889 +62.8306 96.8634 72.6913 +64.3727 106.149 75.5764 +69.0734 106.128 90.3205 +69.8974 108.674 88.0743 +68.4047 104.489 87.9497 +69.6328 111.346 85.7412 +71.366 112.718 88.0455 +69.0658 109.227 92.3231 +67.3344 103.953 92.0714 +66.8629 100.727 87.5205 +66.8842 104.244 85.5238 +66.5993 106.775 83.3561 +68.6143 111.49 83.4423 +67.3603 109.669 81.5877 +70.7921 114.874 82.9052 +65.262 102.278 83.4591 +66.2121 107.375 80.0866 +69.6277 112.922 79.6822 +61.4054 112.688 85.2545 +61.0968 110.761 82.9583 +62.3378 115.659 83.1084 +61.2614 109.176 80.5581 +60.6613 106.134 82.7072 +60.8754 109.572 87.0208 +62.3034 114.746 87.3428 +63.6157 120.061 83.2854 +63.7695 117.72 80.7965 +64.4714 116.128 78.8383 +62.1993 110.709 78.4646 +64.3061 113.252 77.4372 +61.3394 105.486 78.7137 +66.0005 120.654 78.8926 +66.6641 115.692 76.4336 +64.0951 109.683 76.2195 +73.41 120.378 84.3936 +72.1799 123.551 85.3729 +74.2715 123.448 81.916 +70.1698 125.64 86.3808 +70.3951 121.895 88.7337 +72.2791 116.828 86.6736 +73.2356 117.297 83.4317 +76.1621 121.361 78.8296 +74.1652 125.753 79.8035 +71.6912 128.339 80.4314 +69.3245 127.992 84.7464 +68.3872 126.879 81.6575 +67.2983 125.805 88.0493 +73.2442 125.792 76.9976 +67.47 124.2 79.9314 +65.8113 123.766 82.9937 +63.6179 90.3953 81.0047 +62.9656 88.4304 85.6936 +64.4197 92.734 84.4677 +62.1583 91.9315 89.4188 +61.0022 91.4718 85.319 +61.7301 90.5546 77.6829 +63.9132 94.0089 78.4654 +64.8377 97.5777 83.6523 +65.2829 96.46 86.4724 +59.906 96.6224 80.6052 +60.4273 93.0766 82.7042 +60.7795 92.6269 79.2168 +59.9024 95.7882 85.8464 +59.5704 101.079 82.117 +60.1402 100.471 79.1686 +61.0651 94.8539 75.3484 +69.7556 113.509 92.1791 +70.1278 118.022 90.8061 +71.3491 115.61 89.4463 +74.0955 116.718 80.8681 +76.9491 117.467 78.488 +73.9557 115.561 78.4131 +64.0239 95.0235 90.7016 +65.6113 99.4936 91.9668 +65.3303 97.145 88.9008 +64.2673 99.3245 81.6428 +64.5164 102.86 79.377 +64.1266 97.6726 79.0712 +65.4824 122.56 87.9547 +63.7243 118.608 87.9089 +64.5537 121.929 85.4916 +68.5783 123.003 77.4405 +69.1344 119.728 75.4748 +71.3658 123.318 75.9067 +59.5976 102.445 84.3865 +60.2638 104.704 87.0424 +59.9977 100.082 86.3242 +61.6952 98.9935 74.8768 +62.7554 103.364 75.527 +60.8474 101.349 76.8969 +65.6142 115.608 93.9146 +64.4533 113.935 93.6564 +64.7847 116.237 92.8947 +63.5657 111.814 93.1465 +64.1689 111.414 94.0491 +66.7352 114.669 94.1858 +66.9766 116.876 93.4214 +65.15 118.18 91.8309 +64.2489 116.415 91.6961 +65.1856 110.544 94.8162 +66.5851 112.369 94.4842 +66.2353 109.822 94.2736 +67.8449 113.889 93.6734 +63.9979 108.885 94.4939 +66.0639 107.258 94.342 +67.216 109.087 93.7681 +67.2831 119.158 92.6689 +66.0428 120.049 91.878 +67.4523 121.438 91.7767 +65.5153 120.363 90.5226 +68.2739 118.101 92.5444 +68.673 122.13 90.7984 +67.6727 123.318 90.5152 +63.3289 114.697 91.2851 +62.9877 112.187 92.0606 +62.4277 112.835 90.8893 +62.8446 109.847 92.5062 +63.9112 116.9 90.3245 +62.243 113.279 89.6081 +61.9438 110.856 90.1712 +62.3567 104.993 92.8271 +62.4702 102.547 92.732 +61.8758 103.354 91.6743 +62.5894 100.06 92.58 +63.2816 101.452 93.352 +63.1365 106.678 93.657 +62.4521 107.372 92.6785 +61.3226 103.979 90.5723 +61.346 101.957 90.4748 +64.0814 103.444 94.133 +63.8653 106.219 94.4548 +65.1337 105.361 94.5898 +64.3227 100.695 93.5994 +66.1358 104.891 93.8647 +62.1447 108.122 91.5772 +61.4645 106.273 90.4933 +61.5989 108.643 90.3529 +60.7895 104.783 89.4124 +61.2488 109.259 89.1895 +61.29 99.8644 90.1844 +61.9028 98.7298 91.3484 +61.1762 97.413 89.9588 +62.567 97.6103 92.1633 +60.7844 100.716 88.9713 +60.5622 96.3549 88.5127 +61.1741 95.1798 89.4363 +71.6556 114.826 75.379 +74.0057 115.84 74.7497 +72.854 116.492 74.0875 +75.981 117.015 74.2633 +74.887 115.426 75.498 +70.1611 113.104 76.0775 +69.9737 113.622 75.559 +71.7577 117.748 74.3206 +73.4836 118.551 74.0342 +72.7771 114.46 76.6086 +70.2989 112.757 76.7533 +70.4319 112.604 77.4072 +68.0637 110.38 76.8255 +74.5277 115.074 76.7152 +69.7757 112.288 78.2226 +68.1147 110.373 78.0621 +69.3054 113.804 75.2497 +70.2038 116.243 74.7577 +68.5884 114.103 75.2224 +70.6354 118.418 74.7594 +67.7196 110.745 76.0807 +66.8334 111.447 75.7116 +67.7355 114.155 75.6276 +74.9068 119.818 74.2792 +76.4878 118.826 74.3857 +76.0536 120.77 75.0603 +77.5709 117.844 75.2552 +73.4627 120.642 74.6786 +75.3874 122.821 75.9873 +76.7247 121.541 76.4251 +65.8377 102.512 75.453 +65.4759 105.128 76.2233 +65.1017 102.617 74.5524 +66.2202 107.053 75.9562 +66.6223 107.293 76.5118 +65.9417 101.969 76.7054 +65.7116 100.339 75.4709 +64.3882 100.241 73.121 +64.1293 102.309 73.8387 +66.713 107.365 77.1053 +65.6405 104.167 77.2936 +66.5491 107.183 77.8566 +65.2424 102.403 77.8231 +66.8452 108.179 78.5716 +65.3414 98.4983 74.6448 +64.516 98.467 72.8536 +64.1378 96.7458 73.9488 +63.0166 98.6716 72.1089 +65.368 98.6519 76.4003 +63.8822 95.325 75.4606 +62.8945 95.1831 73.8481 +64.6988 105.464 75.3274 +66.1884 108.041 75.8116 +65.6845 108.265 75.5583 +63.7006 103.362 74.5065 +65.298 109.287 75.6117 +69.798 107.369 89.2033 +69.278 106.572 87.9184 +68.9031 105.167 89.0917 +68.4544 106.29 86.7813 +69.0472 107.959 86.8372 +70.4174 109.509 89.3677 +69.8091 108.523 90.331 +68.0243 103.873 90.0998 +67.9806 103.02 89.0607 +69.8393 109.878 86.9146 +70.7301 110.6 88.201 +70.4407 111.758 86.9694 +71.2205 111.801 89.3174 +68.9862 109.492 85.7467 +70.5251 112.912 85.6681 +71.3481 113.401 86.7417 +69.1162 107.654 91.3498 +68.2949 105.096 91.2467 +68.1033 106.633 92.1493 +67.2547 102.715 90.9906 +69.9222 110.096 91.3216 +68.0312 108.024 93.0211 +67.2726 105.363 92.9683 +67.6759 102.582 87.9066 +67.7812 104.359 86.6946 +66.9963 102.464 86.6118 +67.5978 106.005 85.7034 +67.0159 101.017 88.8139 +66.4063 100.458 86.3635 +66.3206 102.18 85.4647 +67.4976 109.167 83.6721 +67.9969 110.689 82.4878 +66.6836 108.403 82.5315 +68.7941 111.988 81.4143 +69.3502 112.678 82.186 +68.1778 109.71 84.5519 +67.356 107.513 84.4631 +65.8889 105.912 82.3739 +66.1801 107.206 81.6019 +69.7758 113.169 83.0965 +69.0045 111.281 84.5725 +70.0388 112.875 84.4326 +70.6895 114.688 81.7941 +70.8493 114.611 84.2222 +66.8393 105.643 84.5176 +65.9185 104.757 83.4093 +66.0256 103.387 84.4815 +65.0603 103.45 82.5224 +65.5558 101.203 84.4553 +66.8353 108.646 80.7522 +68.5435 111.124 80.6728 +67.9858 110.278 79.8863 +70.0738 113.547 80.3637 +65.4695 105.747 80.793 +67.3072 108.704 79.3789 +69.1804 111.497 79.1091 +61.1937 111.757 84.071 +61.646 113.23 82.9337 +61.6924 114.217 84.1591 +62.3282 114.357 81.9242 +61.8397 112.337 81.9161 +60.7283 109.299 84.0445 +60.8631 110.214 85.0132 +62.0926 115.036 85.2867 +62.4674 116.435 84.3297 +61.1821 110.165 81.7595 +60.625 108.499 82.8965 +60.8013 107.799 81.7042 +60.5742 106.813 83.8787 +61.8406 111.441 80.6851 +61.0207 106.801 80.589 +60.5868 105.486 81.5858 +61.117 111.078 86.1288 +61.7853 113.733 86.319 +61.5396 112.213 87.2042 +62.6539 116.158 86.343 +60.5515 108.61 85.9487 +61.2539 110.543 88.0659 +61.8155 113.189 88.3137 +63.1085 117.803 83.3061 +62.9157 116.626 81.9606 +63.4412 118.627 82.1057 +63.0509 115.647 80.7889 +63.2593 118.87 84.4132 +64.2166 120.685 82.1246 +64.2907 119.629 80.9514 +63.127 113.452 78.8432 +63.1099 111.855 78.0131 +64.3623 114.64 78.2058 +63.2473 110.591 77.2118 +62.4566 108.957 77.6564 +62.4181 112.274 79.5583 +63.3341 114.825 79.6253 +65.5929 117.313 77.9918 +65.3923 115.952 77.3943 +61.7441 108.28 78.4794 +61.6782 110.038 79.5145 +61.3435 107.469 79.53 +61.8566 106.11 77.8236 +60.8884 104.815 79.7293 +63.9725 116.91 79.7055 +65.3726 118.362 78.9344 +64.7693 119.157 79.8215 +66.4996 119.736 78.0657 +65.5384 121.037 80.0268 +65.557 114.588 76.9347 +64.1304 111.625 76.7128 +65.3696 112.698 76.3325 +63.1936 108.085 76.7249 +66.7568 117.468 76.7772 +66.5659 113.679 76.1942 +65.2547 110.825 76.0861 +72.863 121.979 84.7887 +73.2056 123.607 83.608 +73.7641 121.889 83.0148 +73.3154 125.064 82.4396 +72.2623 125.027 84.1211 +71.8582 121.797 86.3538 +72.3862 120.383 85.9341 +74.3109 120.437 82.5917 +74.7492 121.664 81.4981 +71.2436 124.688 85.7353 +71.1234 122.824 86.9886 +70.4007 123.971 87.6187 +71.1255 120.904 88.0919 +71.1245 126.259 84.6737 +69.4072 124.869 88.1496 +69.7251 122.894 89.3293 +72.7487 118.803 85.5498 +73.5512 118.887 83.9211 +72.6945 117.037 85.0526 +74.3391 118.847 82.464 +72.0918 118.465 87.0389 +71.8857 115.358 86.1101 +71.992 115.967 84.2846 +75.1624 122.581 80.3248 +74.3829 124.632 80.8527 +75.4342 123.73 79.2784 +73.2641 126.287 81.4252 +75.8372 120.66 80.0293 +76.3731 122.437 77.8584 +75.1397 124.911 78.3544 +70.5042 128.406 82.5787 +68.9339 127.745 83.0185 +69.8669 128.069 81.1276 +67.6689 126.428 83.4619 +67.9071 127.08 84.915 +70.809 127.623 83.8991 +71.9829 127.685 81.9115 +70.7565 127.637 79.3215 +69.3934 126.811 80.0478 +68.2088 127.273 86.587 +69.9311 127.039 85.6874 +68.8584 126.037 87.5829 +67.005 125.876 86.5731 +68.0718 124.961 89.0662 +72.9282 127.151 80.2591 +72.4138 127.452 78.6527 +73.9907 126.365 78.409 +71.6517 126.401 77.5429 +74.5987 124.735 77.0402 +67.9719 125.568 80.7962 +66.9817 125.545 82.4309 +66.4418 124.105 81.4173 +66.4414 124.904 83.8939 +68.792 125.462 79.2605 +66.1907 122.887 80.5286 +65.1985 122.645 81.9827 +63.4498 89.2097 83.1969 +63.9643 90.2224 84.8646 +64.1108 91.0237 83.1553 +64.2224 92.2887 85.9931 +63.7527 90.0234 86.7976 +62.1175 88.5062 83.769 +62.6117 88.8539 81.1646 +64.1392 92.1811 81.2741 +64.5127 93.3304 82.7346 +62.3896 89.7223 87.7002 +61.7778 89.7596 85.7212 +61.5944 91.3294 87.3798 +61.2488 90.018 83.7883 +63.3232 91.5534 88.6628 +61.3111 93.0075 88.7087 +60.8131 92.8665 86.747 +62.8844 90.0977 79.3235 +63.7546 92.2007 79.6649 +63.168 91.915 77.7522 +64.265 94.1284 80.0576 +61.3892 89.4022 79.3869 +62.317 92.145 76.183 +63.5725 94.0517 76.976 +64.8148 94.9635 83.8863 +64.6941 94.5486 85.4846 +65.2111 96.8827 84.9391 +64.5221 94.3478 87.0033 +64.6418 95.6046 82.658 +65.1838 98.9572 84.559 +65.7797 98.2308 85.8623 +60.2766 94.5604 81.4369 +60.6878 92.4386 81.0138 +60.3864 94.4367 79.9063 +60.9881 90.701 80.3679 +60.8946 91.045 82.4714 +59.9558 95.1484 82.9694 +59.7829 96.6588 82.045 +60.2318 96.4433 79.1641 +60.628 94.6464 78.2966 +60.5688 92.1681 83.9461 +59.9177 94.4135 84.2722 +60.158 93.5473 85.588 +59.7606 96.5023 84.5359 +60.3574 95.1537 87.0306 +59.605 98.6651 81.3594 +59.8792 98.5531 79.8557 +59.8483 100.753 80.6821 +60.2577 98.2694 78.4948 +59.686 99.0504 82.6522 +59.7753 102.858 81.351 +60.1323 102.418 79.8983 +60.949 93.6764 77.2664 +61.0304 91.4238 78.5043 +61.0685 92.3523 76.4619 +60.9881 95.7318 76.4428 +61.6119 93.9361 74.7131 +69.9103 115.816 91.5246 +70.7888 116.907 90.0995 +70.5961 114.638 90.884 +71.6535 117.79 88.7265 +71.0229 118.899 89.3328 +69.1597 116.944 92.1174 +69.0632 114.837 92.7684 +70.4063 112.47 91.3051 +71.1062 113.47 90.0958 +70.4329 120.051 89.8153 +69.3446 118.993 91.3644 +69.5838 121.074 90.379 +68.7399 112.634 93.2147 +69.5793 111.342 92.3366 +68.3459 110.264 93.1277 +71.6559 114.031 88.9335 +71.8902 116.404 88.1296 +71.7415 114.828 87.4195 +75.2666 116.923 79.7126 +75.5403 116.362 78.3546 +73.609 116.058 79.5806 +75.5486 115.684 77.1314 +77.2471 116.698 76.8582 +76.0343 118.421 79.7837 +74.9461 118.106 80.9691 +72.4566 115.498 80.6351 +72.2843 114.947 79.7126 +77.7262 118.278 77.2941 +76.7544 119.317 79.0344 +77.1549 120.387 77.6329 +73.7216 117.25 82.0491 +72.2366 116.025 81.624 +71.9678 116.096 82.9216 +71.6126 114.354 79.1744 +73.0903 114.832 77.952 +70.6819 113.491 78.5896 +64.8796 97.268 91.3682 +65.5433 98.2967 90.3946 +64.6743 95.9304 89.7778 +66.1097 99.2829 89.4624 +66.3354 100.382 90.9411 +64.7032 98.6868 92.7647 +63.8784 96.7354 92.1152 +63.8841 93.4967 89.2174 +64.5157 94.7898 88.3681 +66.3721 101.695 91.9876 +65.4352 100.898 93.0105 +66.1958 103.268 92.8948 +62.8134 95.6169 91.6735 +63.1657 93.464 90.3342 +61.7666 94.1882 90.2396 +65.4451 96.6679 87.7348 +66.2786 99.1613 88.2839 +66.0214 98.7746 86.9804 +63.9598 101.08 80.4423 +64.0722 100.021 79.3786 +64.1081 98.4543 80.5109 +64.5597 99.2413 78.1188 +64.5446 101.402 78.4864 +64.5945 103.609 80.4239 +64.3573 101.728 81.5686 +64.3753 96.8572 81.5624 +64.1758 96.2333 80.2095 +64.9146 104.273 78.6522 +65.2405 105.479 79.7816 +66.117 107.014 79.0002 +64.6055 101.029 82.6096 +64.3751 98.2657 82.6144 +64.9604 99.891 83.5429 +64.2042 95.8383 78.7661 +64.6557 97.5059 77.4734 +64.4346 95.5657 77.0508 +64.5284 120.622 88.0003 +63.8618 120.358 86.7512 +65.0875 122.357 86.6475 +63.6662 119.916 85.5498 +63.3073 118.381 86.6107 +64.2581 118.763 89.1432 +64.9848 120.659 89.2078 +66.0808 124.192 86.5333 +65.7272 123.779 85.3095 +63.0797 116.744 87.5699 +63.4161 116.965 89.0407 +62.5292 114.994 88.6707 +65.8948 122.304 89.2641 +66.3657 124.374 87.8717 +66.7619 124.06 89.4608 +65.2889 123.004 84.2518 +64.0864 121.017 84.4475 +64.5123 122.03 83.1317 +68.8856 121.508 76.2743 +70.2963 121.724 75.5984 +69.824 123.448 76.5589 +71.8308 121.458 75.0857 +70.4637 120.025 74.756 +67.9068 119.477 76.2176 +67.7708 121.077 77.2168 +69.3752 124.753 77.8082 +70.8356 124.899 77.025 +69.0983 118.037 75.3087 +67.6406 117.636 75.869 +67.6425 115.709 75.7237 +67.4125 121.798 78.2625 +68.0623 123.928 78.5308 +66.7442 122.565 79.2904 +72.1703 124.728 76.3754 +72.7953 122.621 75.3065 +73.8076 123.978 76.0304 +59.9629 103.679 85.6969 +60.1005 102.414 86.7591 +59.6862 101.228 85.3657 +60.3663 101.384 87.7284 +60.4298 103.537 88.1296 +60.3665 105.965 85.9501 +60.1568 104.87 84.7429 +59.6087 100.158 83.9138 +59.7095 98.789 84.8796 +60.5182 105.811 88.1677 +60.7287 107.217 86.8826 +60.9103 108.245 88.0865 +60.0281 104.447 83.6552 +59.5076 101.739 83.2733 +59.9604 103.735 82.4278 +59.9582 97.9893 85.9795 +60.3365 99.3676 87.574 +60.2351 97.246 87.2864 +62.0328 101.075 75.0272 +61.6621 102.301 75.9728 +61.1514 99.8839 76.0552 +61.5405 103.767 76.9084 +62.5573 104.721 76.4017 +62.9869 101.94 74.4449 +62.3795 99.7788 73.717 +61.1394 97.6625 76.1812 +60.624 98.8373 77.1673 +63.5197 106.5 76.5237 +63.617 104.835 75.561 +64.4318 108.15 75.7625 +61.9955 98.1386 73.3834 +61.6636 97.0002 74.9733 +61.5438 95.8652 73.7059 +60.3797 100.769 77.93 +61.0308 103.397 77.7489 +60.3902 102.906 78.83 +POLYGONS 1280 5120 +3 164 162 163 +3 163 44 164 +3 162 43 163 +3 164 42 162 +3 166 165 163 +3 163 43 166 +3 165 44 163 +3 166 14 165 +3 168 167 162 +3 162 42 168 +3 167 43 162 +3 168 13 167 +3 170 169 164 +3 164 44 170 +3 169 42 164 +3 170 12 169 +3 173 171 172 +3 172 46 173 +3 171 43 172 +3 173 45 171 +3 167 174 172 +3 172 43 167 +3 174 46 172 +3 167 13 174 +3 175 166 171 +3 171 45 175 +3 166 43 171 +3 175 14 166 +3 177 176 173 +3 173 46 177 +3 176 45 173 +3 177 4 176 +3 180 178 179 +3 179 48 180 +3 178 42 179 +3 180 47 178 +3 169 181 179 +3 179 42 169 +3 181 48 179 +3 169 12 181 +3 182 168 178 +3 178 47 182 +3 168 42 178 +3 182 13 168 +3 184 183 180 +3 180 48 184 +3 183 47 180 +3 184 8 183 +3 187 185 186 +3 186 50 187 +3 185 44 186 +3 187 49 185 +3 165 188 186 +3 186 44 165 +3 188 50 186 +3 165 14 188 +3 189 170 185 +3 185 49 189 +3 170 44 185 +3 189 12 170 +3 191 190 187 +3 187 50 191 +3 190 49 187 +3 191 7 190 +3 194 192 193 +3 193 53 194 +3 192 52 193 +3 194 51 192 +3 196 195 193 +3 193 52 196 +3 195 53 193 +3 196 16 195 +3 198 197 192 +3 192 51 198 +3 197 52 192 +3 198 14 197 +3 200 199 194 +3 194 53 200 +3 199 51 194 +3 200 15 199 +3 203 201 202 +3 202 45 203 +3 201 52 202 +3 203 54 201 +3 197 175 202 +3 202 52 197 +3 175 45 202 +3 197 14 175 +3 204 196 201 +3 201 54 204 +3 196 52 201 +3 204 16 196 +3 176 205 203 +3 203 45 176 +3 205 54 203 +3 176 4 205 +3 208 206 207 +3 207 55 208 +3 206 51 207 +3 208 50 206 +3 199 209 207 +3 207 51 199 +3 209 55 207 +3 199 15 209 +3 188 198 206 +3 206 50 188 +3 198 51 206 +3 188 14 198 +3 210 191 208 +3 208 55 210 +3 191 50 208 +3 210 7 191 +3 213 211 212 +3 212 57 213 +3 211 53 212 +3 213 56 211 +3 195 214 212 +3 212 53 195 +3 214 57 212 +3 195 16 214 +3 215 200 211 +3 211 56 215 +3 200 53 211 +3 215 15 200 +3 217 216 213 +3 213 57 217 +3 216 56 213 +3 217 9 216 +3 220 218 219 +3 219 60 220 +3 218 59 219 +3 220 58 218 +3 222 221 219 +3 219 59 222 +3 221 60 219 +3 222 19 221 +3 224 223 218 +3 218 58 224 +3 223 59 218 +3 224 18 223 +3 226 225 220 +3 220 60 226 +3 225 58 220 +3 226 17 225 +3 229 227 228 +3 228 62 229 +3 227 59 228 +3 229 61 227 +3 223 230 228 +3 228 59 223 +3 230 62 228 +3 223 18 230 +3 231 222 227 +3 227 61 231 +3 222 59 227 +3 231 19 222 +3 233 232 229 +3 229 62 233 +3 232 61 229 +3 233 5 232 +3 236 234 235 +3 235 64 236 +3 234 58 235 +3 236 63 234 +3 225 237 235 +3 235 58 225 +3 237 64 235 +3 225 17 237 +3 238 224 234 +3 234 63 238 +3 224 58 234 +3 238 18 224 +3 240 239 236 +3 236 64 240 +3 239 63 236 +3 240 6 239 +3 243 241 242 +3 242 66 243 +3 241 60 242 +3 243 65 241 +3 221 244 242 +3 242 60 221 +3 244 66 242 +3 221 19 244 +3 245 226 241 +3 241 65 245 +3 226 60 241 +3 245 17 226 +3 247 246 243 +3 243 66 247 +3 246 65 243 +3 247 11 246 +3 250 248 249 +3 249 69 250 +3 248 68 249 +3 250 67 248 +3 252 251 249 +3 249 68 252 +3 251 69 249 +3 252 18 251 +3 254 253 248 +3 248 67 254 +3 253 68 248 +3 254 21 253 +3 256 255 250 +3 250 69 256 +3 255 67 250 +3 256 20 255 +3 259 257 258 +3 258 70 259 +3 257 68 258 +3 259 62 257 +3 253 260 258 +3 258 68 253 +3 260 70 258 +3 253 21 260 +3 230 252 257 +3 257 62 230 +3 252 68 257 +3 230 18 252 +3 261 233 259 +3 259 70 261 +3 233 62 259 +3 261 5 233 +3 264 262 263 +3 263 72 264 +3 262 67 263 +3 264 71 262 +3 255 265 263 +3 263 67 255 +3 265 72 263 +3 255 20 265 +3 266 254 262 +3 262 71 266 +3 254 67 262 +3 266 21 254 +3 268 267 264 +3 264 72 268 +3 267 71 264 +3 268 10 267 +3 271 269 270 +3 270 63 271 +3 269 69 270 +3 271 73 269 +3 251 238 270 +3 270 69 251 +3 238 63 270 +3 251 18 238 +3 272 256 269 +3 269 73 272 +3 256 69 269 +3 272 20 256 +3 239 273 271 +3 271 63 239 +3 273 73 271 +3 239 6 273 +3 276 274 275 +3 275 76 276 +3 274 75 275 +3 276 74 274 +3 278 277 275 +3 275 75 278 +3 277 76 275 +3 278 24 277 +3 280 279 274 +3 274 74 280 +3 279 75 274 +3 280 23 279 +3 282 281 276 +3 276 76 282 +3 281 74 276 +3 282 22 281 +3 285 283 284 +3 284 78 285 +3 283 75 284 +3 285 77 283 +3 279 286 284 +3 284 75 279 +3 286 78 284 +3 279 23 286 +3 287 278 283 +3 283 77 287 +3 278 75 283 +3 287 24 278 +3 289 288 285 +3 285 78 289 +3 288 77 285 +3 289 0 288 +3 292 290 291 +3 291 80 292 +3 290 74 291 +3 292 79 290 +3 281 293 291 +3 291 74 281 +3 293 80 291 +3 281 22 293 +3 294 280 290 +3 290 79 294 +3 280 74 290 +3 294 23 280 +3 296 295 292 +3 292 80 296 +3 295 79 292 +3 296 4 295 +3 299 297 298 +3 298 82 299 +3 297 76 298 +3 299 81 297 +3 277 300 298 +3 298 76 277 +3 300 82 298 +3 277 24 300 +3 301 282 297 +3 297 81 301 +3 282 76 297 +3 301 22 282 +3 303 302 299 +3 299 82 303 +3 302 81 299 +3 303 3 302 +3 306 304 305 +3 305 85 306 +3 304 84 305 +3 306 83 304 +3 308 307 305 +3 305 84 308 +3 307 85 305 +3 308 26 307 +3 310 309 304 +3 304 83 310 +3 309 84 304 +3 310 24 309 +3 312 311 306 +3 306 85 312 +3 311 83 306 +3 312 25 311 +3 315 313 314 +3 314 77 315 +3 313 84 314 +3 315 86 313 +3 309 287 314 +3 314 84 309 +3 287 77 314 +3 309 24 287 +3 316 308 313 +3 313 86 316 +3 308 84 313 +3 316 26 308 +3 288 317 315 +3 315 77 288 +3 317 86 315 +3 288 0 317 +3 320 318 319 +3 319 87 320 +3 318 83 319 +3 320 82 318 +3 311 321 319 +3 319 83 311 +3 321 87 319 +3 311 25 321 +3 300 310 318 +3 318 82 300 +3 310 83 318 +3 300 24 310 +3 322 303 320 +3 320 87 322 +3 303 82 320 +3 322 3 303 +3 325 323 324 +3 324 89 325 +3 323 85 324 +3 325 88 323 +3 307 326 324 +3 324 85 307 +3 326 89 324 +3 307 26 326 +3 327 312 323 +3 323 88 327 +3 312 85 323 +3 327 25 312 +3 329 328 325 +3 325 89 329 +3 328 88 325 +3 329 5 328 +3 332 330 331 +3 331 92 332 +3 330 91 331 +3 332 90 330 +3 334 333 331 +3 331 91 334 +3 333 92 331 +3 334 29 333 +3 336 335 330 +3 330 90 336 +3 335 91 330 +3 336 28 335 +3 338 337 332 +3 332 92 338 +3 337 90 332 +3 338 27 337 +3 341 339 340 +3 340 94 341 +3 339 91 340 +3 341 93 339 +3 335 342 340 +3 340 91 335 +3 342 94 340 +3 335 28 342 +3 343 334 339 +3 339 93 343 +3 334 91 339 +3 343 29 334 +3 345 344 341 +3 341 94 345 +3 344 93 341 +3 345 2 344 +3 348 346 347 +3 347 96 348 +3 346 90 347 +3 348 95 346 +3 337 349 347 +3 347 90 337 +3 349 96 347 +3 337 27 349 +3 350 336 346 +3 346 95 350 +3 336 90 346 +3 350 28 336 +3 352 351 348 +3 348 96 352 +3 351 95 348 +3 352 7 351 +3 355 353 354 +3 354 98 355 +3 353 92 354 +3 355 97 353 +3 333 356 354 +3 354 92 333 +3 356 98 354 +3 333 29 356 +3 357 338 353 +3 353 97 357 +3 338 92 353 +3 357 27 338 +3 359 358 355 +3 355 98 359 +3 358 97 355 +3 359 1 358 +3 362 360 361 +3 361 101 362 +3 360 100 361 +3 362 99 360 +3 364 363 361 +3 361 100 364 +3 363 101 361 +3 364 31 363 +3 366 365 360 +3 360 99 366 +3 365 100 360 +3 366 29 365 +3 368 367 362 +3 362 101 368 +3 367 99 362 +3 368 30 367 +3 371 369 370 +3 370 93 371 +3 369 100 370 +3 371 102 369 +3 365 343 370 +3 370 100 365 +3 343 93 370 +3 365 29 343 +3 372 364 369 +3 369 102 372 +3 364 100 369 +3 372 31 364 +3 344 373 371 +3 371 93 344 +3 373 102 371 +3 344 2 373 +3 376 374 375 +3 375 103 376 +3 374 99 375 +3 376 98 374 +3 367 377 375 +3 375 99 367 +3 377 103 375 +3 367 30 377 +3 356 366 374 +3 374 98 356 +3 366 99 374 +3 356 29 366 +3 378 359 376 +3 376 103 378 +3 359 98 376 +3 378 1 359 +3 381 379 380 +3 380 105 381 +3 379 101 380 +3 381 104 379 +3 363 382 380 +3 380 101 363 +3 382 105 380 +3 363 31 382 +3 383 368 379 +3 379 104 383 +3 368 101 379 +3 383 30 368 +3 385 384 381 +3 381 105 385 +3 384 104 381 +3 385 6 384 +3 388 386 387 +3 387 108 388 +3 386 107 387 +3 388 106 386 +3 390 389 387 +3 387 107 390 +3 389 108 387 +3 390 34 389 +3 392 391 386 +3 386 106 392 +3 391 107 386 +3 392 33 391 +3 394 393 388 +3 388 108 394 +3 393 106 388 +3 394 32 393 +3 397 395 396 +3 396 110 397 +3 395 107 396 +3 397 109 395 +3 391 398 396 +3 396 107 391 +3 398 110 396 +3 391 33 398 +3 399 390 395 +3 395 109 399 +3 390 107 395 +3 399 34 390 +3 401 400 397 +3 397 110 401 +3 400 109 397 +3 401 8 400 +3 404 402 403 +3 403 112 404 +3 402 106 403 +3 404 111 402 +3 393 405 403 +3 403 106 393 +3 405 112 403 +3 393 32 405 +3 406 392 402 +3 402 111 406 +3 392 106 402 +3 406 33 392 +3 408 407 404 +3 404 112 408 +3 407 111 404 +3 408 0 407 +3 411 409 410 +3 410 114 411 +3 409 108 410 +3 411 113 409 +3 389 412 410 +3 410 108 389 +3 412 114 410 +3 389 34 412 +3 413 394 409 +3 409 113 413 +3 394 108 409 +3 413 32 394 +3 415 414 411 +3 411 114 415 +3 414 113 411 +3 415 11 414 +3 418 416 417 +3 417 117 418 +3 416 116 417 +3 418 115 416 +3 420 419 417 +3 417 116 420 +3 419 117 417 +3 420 36 419 +3 422 421 416 +3 416 115 422 +3 421 116 416 +3 422 34 421 +3 424 423 418 +3 418 117 424 +3 423 115 418 +3 424 35 423 +3 427 425 426 +3 426 109 427 +3 425 116 426 +3 427 118 425 +3 421 399 426 +3 426 116 421 +3 399 109 426 +3 421 34 399 +3 428 420 425 +3 425 118 428 +3 420 116 425 +3 428 36 420 +3 400 429 427 +3 427 109 400 +3 429 118 427 +3 400 8 429 +3 432 430 431 +3 431 119 432 +3 430 115 431 +3 432 114 430 +3 423 433 431 +3 431 115 423 +3 433 119 431 +3 423 35 433 +3 412 422 430 +3 430 114 412 +3 422 115 430 +3 412 34 422 +3 434 415 432 +3 432 119 434 +3 415 114 432 +3 434 11 415 +3 437 435 436 +3 436 121 437 +3 435 117 436 +3 437 120 435 +3 419 438 436 +3 436 117 419 +3 438 121 436 +3 419 36 438 +3 439 424 435 +3 435 120 439 +3 424 117 435 +3 439 35 424 +3 441 440 437 +3 437 121 441 +3 440 120 437 +3 441 1 440 +3 444 442 443 +3 443 124 444 +3 442 123 443 +3 444 122 442 +3 446 445 443 +3 443 123 446 +3 445 124 443 +3 446 39 445 +3 448 447 442 +3 442 122 448 +3 447 123 442 +3 448 38 447 +3 450 449 444 +3 444 124 450 +3 449 122 444 +3 450 37 449 +3 453 451 452 +3 452 126 453 +3 451 123 452 +3 453 125 451 +3 447 454 452 +3 452 123 447 +3 454 126 452 +3 447 38 454 +3 455 446 451 +3 451 125 455 +3 446 123 451 +3 455 39 446 +3 457 456 453 +3 453 126 457 +3 456 125 453 +3 457 9 456 +3 460 458 459 +3 459 128 460 +3 458 122 459 +3 460 127 458 +3 449 461 459 +3 459 122 449 +3 461 128 459 +3 449 37 461 +3 462 448 458 +3 458 127 462 +3 448 122 458 +3 462 38 448 +3 464 463 460 +3 460 128 464 +3 463 127 460 +3 464 10 463 +3 467 465 466 +3 466 130 467 +3 465 124 466 +3 467 129 465 +3 445 468 466 +3 466 124 445 +3 468 130 466 +3 445 39 468 +3 469 450 465 +3 465 129 469 +3 450 124 465 +3 469 37 450 +3 471 470 467 +3 467 130 471 +3 470 129 467 +3 471 3 470 +3 474 472 473 +3 473 133 474 +3 472 132 473 +3 474 131 472 +3 476 475 473 +3 473 132 476 +3 475 133 473 +3 476 38 475 +3 478 477 472 +3 472 131 478 +3 477 132 472 +3 478 41 477 +3 480 479 474 +3 474 133 480 +3 479 131 474 +3 480 40 479 +3 483 481 482 +3 482 134 483 +3 481 132 482 +3 483 126 481 +3 477 484 482 +3 482 132 477 +3 484 134 482 +3 477 41 484 +3 454 476 481 +3 481 126 454 +3 476 132 481 +3 454 38 476 +3 485 457 483 +3 483 134 485 +3 457 126 483 +3 485 9 457 +3 488 486 487 +3 487 136 488 +3 486 131 487 +3 488 135 486 +3 479 489 487 +3 487 131 479 +3 489 136 487 +3 479 40 489 +3 490 478 486 +3 486 135 490 +3 478 131 486 +3 490 41 478 +3 492 491 488 +3 488 136 492 +3 491 135 488 +3 492 2 491 +3 495 493 494 +3 494 127 495 +3 493 133 494 +3 495 137 493 +3 475 462 494 +3 494 133 475 +3 462 127 494 +3 475 38 462 +3 496 480 493 +3 493 137 496 +3 480 133 493 +3 496 40 480 +3 463 497 495 +3 495 127 463 +3 497 137 495 +3 463 10 497 +3 500 498 499 +3 499 140 500 +3 498 139 499 +3 500 138 498 +3 502 501 499 +3 499 139 502 +3 501 140 499 +3 502 33 501 +3 504 503 498 +3 498 138 504 +3 503 139 498 +3 504 13 503 +3 506 505 500 +3 500 140 506 +3 505 138 500 +3 506 23 505 +3 509 507 508 +3 508 47 509 +3 507 139 508 +3 509 110 507 +3 503 182 508 +3 508 139 503 +3 182 47 508 +3 503 13 182 +3 398 502 507 +3 507 110 398 +3 502 139 507 +3 398 33 502 +3 183 401 509 +3 509 47 183 +3 401 110 509 +3 183 8 401 +3 512 510 511 +3 511 79 512 +3 510 138 511 +3 512 46 510 +3 505 294 511 +3 511 138 505 +3 294 79 511 +3 505 23 294 +3 174 504 510 +3 510 46 174 +3 504 138 510 +3 174 13 504 +3 295 177 512 +3 512 79 295 +3 177 46 512 +3 295 4 177 +3 515 513 514 +3 514 111 515 +3 513 140 514 +3 515 78 513 +3 501 406 514 +3 514 140 501 +3 406 111 514 +3 501 33 406 +3 286 506 513 +3 513 78 286 +3 506 140 513 +3 286 23 506 +3 407 289 515 +3 515 111 407 +3 289 78 515 +3 407 0 289 +3 518 516 517 +3 517 143 518 +3 516 142 517 +3 518 141 516 +3 520 519 517 +3 517 142 520 +3 519 143 517 +3 520 19 519 +3 522 521 516 +3 516 141 522 +3 521 142 516 +3 522 32 521 +3 524 523 518 +3 518 143 524 +3 523 141 518 +3 524 26 523 +3 527 525 526 +3 526 113 527 +3 525 142 526 +3 527 66 525 +3 521 413 526 +3 526 142 521 +3 413 113 526 +3 521 32 413 +3 244 520 525 +3 525 66 244 +3 520 142 525 +3 244 19 520 +3 414 247 527 +3 527 113 414 +3 247 66 527 +3 414 11 247 +3 530 528 529 +3 529 86 530 +3 528 141 529 +3 530 112 528 +3 523 316 529 +3 529 141 523 +3 316 86 529 +3 523 26 316 +3 405 522 528 +3 528 112 405 +3 522 141 528 +3 405 32 522 +3 317 408 530 +3 530 86 317 +3 408 112 530 +3 317 0 408 +3 533 531 532 +3 532 61 533 +3 531 143 532 +3 533 89 531 +3 519 231 532 +3 532 143 519 +3 231 61 532 +3 519 19 231 +3 326 524 531 +3 531 89 326 +3 524 143 531 +3 326 26 524 +3 232 329 533 +3 533 61 232 +3 329 89 533 +3 232 5 329 +3 536 534 535 +3 535 146 536 +3 534 145 535 +3 536 144 534 +3 538 537 535 +3 535 145 538 +3 537 146 535 +3 538 22 537 +3 540 539 534 +3 534 144 540 +3 539 145 534 +3 540 16 539 +3 542 541 536 +3 536 146 542 +3 541 144 536 +3 542 39 541 +3 545 543 544 +3 544 54 545 +3 543 145 544 +3 545 80 543 +3 539 204 544 +3 544 145 539 +3 204 54 544 +3 539 16 204 +3 293 538 543 +3 543 80 293 +3 538 145 543 +3 293 22 538 +3 205 296 545 +3 545 54 205 +3 296 80 545 +3 205 4 296 +3 548 546 547 +3 547 125 548 +3 546 144 547 +3 548 57 546 +3 541 455 547 +3 547 144 541 +3 455 125 547 +3 541 39 455 +3 214 540 546 +3 546 57 214 +3 540 144 546 +3 214 16 540 +3 456 217 548 +3 548 125 456 +3 217 57 548 +3 456 9 217 +3 551 549 550 +3 550 81 551 +3 549 146 550 +3 551 130 549 +3 537 301 550 +3 550 146 537 +3 301 81 550 +3 537 22 301 +3 468 542 549 +3 549 130 468 +3 542 146 549 +3 468 39 542 +3 302 471 551 +3 551 81 302 +3 471 130 551 +3 302 3 471 +3 554 552 553 +3 553 149 554 +3 552 148 553 +3 554 147 552 +3 556 555 553 +3 553 148 556 +3 555 149 553 +3 556 21 555 +3 558 557 552 +3 552 147 558 +3 557 148 552 +3 558 25 557 +3 560 559 554 +3 554 149 560 +3 559 147 554 +3 560 37 559 +3 563 561 562 +3 562 88 563 +3 561 148 562 +3 563 70 561 +3 557 327 562 +3 562 148 557 +3 327 88 562 +3 557 25 327 +3 260 556 561 +3 561 70 260 +3 556 148 561 +3 260 21 556 +3 328 261 563 +3 563 88 328 +3 261 70 563 +3 328 5 261 +3 566 564 565 +3 565 129 566 +3 564 147 565 +3 566 87 564 +3 559 469 565 +3 565 147 559 +3 469 129 565 +3 559 37 469 +3 321 558 564 +3 564 87 321 +3 558 147 564 +3 321 25 558 +3 470 322 566 +3 566 129 470 +3 322 87 566 +3 470 3 322 +3 569 567 568 +3 568 71 569 +3 567 149 568 +3 569 128 567 +3 555 266 568 +3 568 149 555 +3 266 71 568 +3 555 21 266 +3 461 560 567 +3 567 128 461 +3 560 149 567 +3 461 37 560 +3 267 464 569 +3 569 71 267 +3 464 128 569 +3 267 10 464 +3 572 570 571 +3 571 152 572 +3 570 151 571 +3 572 150 570 +3 574 573 571 +3 571 151 574 +3 573 152 571 +3 574 27 573 +3 576 575 570 +3 570 150 576 +3 575 151 570 +3 576 12 575 +3 578 577 572 +3 572 152 578 +3 577 150 572 +3 578 36 577 +3 581 579 580 +3 580 49 581 +3 579 151 580 +3 581 96 579 +3 575 189 580 +3 580 151 575 +3 189 49 580 +3 575 12 189 +3 349 574 579 +3 579 96 349 +3 574 151 579 +3 349 27 574 +3 190 352 581 +3 581 49 190 +3 352 96 581 +3 190 7 352 +3 584 582 583 +3 583 118 584 +3 582 150 583 +3 584 48 582 +3 577 428 583 +3 583 150 577 +3 428 118 583 +3 577 36 428 +3 181 576 582 +3 582 48 181 +3 576 150 582 +3 181 12 576 +3 429 184 584 +3 584 118 429 +3 184 48 584 +3 429 8 184 +3 587 585 586 +3 586 97 587 +3 585 152 586 +3 587 121 585 +3 573 357 586 +3 586 152 573 +3 357 97 586 +3 573 27 357 +3 438 578 585 +3 585 121 438 +3 578 152 585 +3 438 36 578 +3 358 441 587 +3 587 97 358 +3 441 121 587 +3 358 1 441 +3 590 588 589 +3 589 155 590 +3 588 154 589 +3 590 153 588 +3 592 591 589 +3 589 154 592 +3 591 155 589 +3 592 17 591 +3 594 593 588 +3 588 153 594 +3 593 154 588 +3 594 30 593 +3 596 595 590 +3 590 155 596 +3 595 153 590 +3 596 35 595 +3 599 597 598 +3 598 104 599 +3 597 154 598 +3 599 64 597 +3 593 383 598 +3 598 154 593 +3 383 104 598 +3 593 30 383 +3 237 592 597 +3 597 64 237 +3 592 154 597 +3 237 17 592 +3 384 240 599 +3 599 104 384 +3 240 64 599 +3 384 6 240 +3 602 600 601 +3 601 120 602 +3 600 153 601 +3 602 103 600 +3 595 439 601 +3 601 153 595 +3 439 120 601 +3 595 35 439 +3 377 594 600 +3 600 103 377 +3 594 153 600 +3 377 30 594 +3 440 378 602 +3 602 120 440 +3 378 103 602 +3 440 1 378 +3 605 603 604 +3 604 65 605 +3 603 155 604 +3 605 119 603 +3 591 245 604 +3 604 155 591 +3 245 65 604 +3 591 17 245 +3 433 596 603 +3 603 119 433 +3 596 155 603 +3 433 35 596 +3 246 434 605 +3 605 65 246 +3 434 119 605 +3 246 11 434 +3 608 606 607 +3 607 158 608 +3 606 157 607 +3 608 156 606 +3 610 609 607 +3 607 157 610 +3 609 158 607 +3 610 15 609 +3 612 611 606 +3 606 156 612 +3 611 157 606 +3 612 28 611 +3 614 613 608 +3 608 158 614 +3 613 156 608 +3 614 41 613 +3 617 615 616 +3 616 95 617 +3 615 157 616 +3 617 55 615 +3 611 350 616 +3 616 157 611 +3 350 95 616 +3 611 28 350 +3 209 610 615 +3 615 55 209 +3 610 157 615 +3 209 15 610 +3 351 210 617 +3 617 95 351 +3 210 55 617 +3 351 7 210 +3 620 618 619 +3 619 135 620 +3 618 156 619 +3 620 94 618 +3 613 490 619 +3 619 156 613 +3 490 135 619 +3 613 41 490 +3 342 612 618 +3 618 94 342 +3 612 156 618 +3 342 28 612 +3 491 345 620 +3 620 135 491 +3 345 94 620 +3 491 2 345 +3 623 621 622 +3 622 56 623 +3 621 158 622 +3 623 134 621 +3 609 215 622 +3 622 158 609 +3 215 56 622 +3 609 15 215 +3 484 614 621 +3 621 134 484 +3 614 158 621 +3 484 41 614 +3 216 485 623 +3 623 56 216 +3 485 134 623 +3 216 9 485 +3 626 624 625 +3 625 161 626 +3 624 160 625 +3 626 159 624 +3 628 627 625 +3 625 160 628 +3 627 161 625 +3 628 31 627 +3 630 629 624 +3 624 159 630 +3 629 160 624 +3 630 20 629 +3 632 631 626 +3 626 161 632 +3 631 159 626 +3 632 40 631 +3 635 633 634 +3 634 73 635 +3 633 160 634 +3 635 105 633 +3 629 272 634 +3 634 160 629 +3 272 73 634 +3 629 20 272 +3 382 628 633 +3 633 105 382 +3 628 160 633 +3 382 31 628 +3 273 385 635 +3 635 73 273 +3 385 105 635 +3 273 6 385 +3 638 636 637 +3 637 137 638 +3 636 159 637 +3 638 72 636 +3 631 496 637 +3 637 159 631 +3 496 137 637 +3 631 40 496 +3 265 630 636 +3 636 72 265 +3 630 159 636 +3 265 20 630 +3 497 268 638 +3 638 137 497 +3 268 72 638 +3 497 10 268 +3 641 639 640 +3 640 102 641 +3 639 161 640 +3 641 136 639 +3 627 372 640 +3 640 161 627 +3 372 102 640 +3 627 31 372 +3 489 632 639 +3 639 136 489 +3 632 161 639 +3 489 40 632 +3 373 492 641 +3 641 102 373 +3 492 136 641 +3 373 2 492 diff --git a/tests/testdata/test_mesh_data.txt b/tests/testdata/test_mesh_data.txt new file mode 100644 index 000000000..96b7f4331 --- /dev/null +++ b/tests/testdata/test_mesh_data.txt @@ -0,0 +1,642 @@ +26 +14 +39 +12 +31 +60 +82 +98 +62 +44 +4 +92 +73 +36 +15 +30 +64 +54 +86 +98 +64 +80 +8 +85 +47 +63 +63 +47 +19 +96 +62 +32 +23 +76 +96 +72 +68 +69 +87 +46 +43 +84 +88 +70 +44 +85 +57 +78 +18 +6 +70 +16 +36 +25 +91 +81 +94 +56 +4 +48 +41 +88 +99 +66 +69 +97 +32 +57 +61 +77 +75 +30 +15 +57 +20 +15 +59 +4 +61 +17 +80 +27 +92 +67 +39 +79 +56 +96 +34 +24 +68 +2 +9 +27 +35 +59 +28 +3 +55 +3 +84 +14 +15 +78 +53 +99 +18 +52 +60 +60 +92 +46 +9 +19 +81 +59 +58 +93 +17 +20 +77 +33 +87 +17 +83 +34 +26 +9 +90 +37 +52 +10 +46 +45 +27 +84 +25 +63 +30 +78 +55 +10 +46 +3 +58 +35 +49 +42 +36 +60 +36 +22 +78 +97 +5 +51 +38 +95 +93 +89 +57 +51 +93 +61 +14 +80 +74 +54 +40 +44 +5 +21 +41 +63 +80 +19 +11 +57 +35 +39 +48 +11 +66 +17 +80 +82 +24 +22 +4 +29 +34 +32 +32 +5 +68 +43 +42 +17 +88 +56 +61 +59 +85 +91 +27 +5 +44 +66 +25 +88 +61 +10 +57 +65 +21 +10 +61 +62 +40 +42 +21 +62 +16 +6 +37 +21 +38 +37 +60 +29 +23 +91 +60 +81 +60 +81 +91 +38 +55 +1 +61 +85 +18 +22 +86 +35 +29 +79 +29 +34 +79 +91 +1 +73 +30 +12 +74 +8 +32 +7 +8 +7 +90 +75 +47 +52 +39 +17 +44 +18 +67 +72 +83 +83 +85 +40 +22 +53 +39 +86 +9 +96 +49 +80 +96 +80 +72 +9 +15 +28 +14 +37 +23 +94 +79 +94 +90 +69 +84 +15 +60 +42 +39 +45 +91 +63 +53 +29 +5 +87 +20 +54 +89 +45 +57 +15 +20 +21 +42 +2 +59 +19 +91 +51 +95 +55 +20 +53 +64 +3 +13 +88 +19 +92 +62 +92 +48 +92 +78 +40 +62 +9 +15 +75 +17 +77 +19 +38 +31 +3 +51 +24 +36 +93 +15 +58 +61 +9 +2 +16 +71 +10 +20 +48 +43 +67 +81 +94 +42 +30 +92 +75 +30 +97 +13 +64 +56 +98 +29 +89 +83 +57 +96 +85 +10 +76 +27 +51 +87 +84 +91 +41 +76 +96 +5 +85 +57 +74 +94 +8 +7 +80 +24 +25 +63 +27 +43 +4 +56 +94 +10 +79 +72 +84 +12 +41 +61 +34 +40 +44 +94 +21 +16 +82 +89 +57 +18 +73 +22 +51 +80 +75 +31 +5 +5 +59 +77 +48 +47 +80 +2 +2 +52 +90 +51 +69 +71 +68 +68 +57 +34 +96 +11 +10 +88 +81 +79 +22 +18 +82 +27 +39 +79 +91 +41 +86 +27 +64 +20 +53 +76 +67 +53 +32 +89 +43 +98 +76 +62 +65 +41 +37 +69 +44 +59 +14 +84 +54 +94 +55 +5 +73 +12 +5 +4 +99 +47 +65 +73 +42 +40 +58 +94 +71 +36 +69 +46 +20 +88 +2 +3 +98 +31 +34 +41 +67 +2 +55 +41 +73 +4 +11 +53 +82 +92 +98 +20 +60 +56 +54 +32 +78 +93 +85 +59 +20 +24 +96 +56 +8 +53 +26 +9 +29 +70 +42 +10 +69 +88 +25 +15 +2 +21 +41 +65 +53 +32 +79 +36 +74 +91 +29 +88 +75 +86 +57 +33 +41 +94 +50 +96 +5 +31 +71 +13 +75 +5 +98 +32 +38 +46 +59 +77 +61 +51 +25 +82 +72 +42 +50 +89 +90 +70 +98 +45 +16 +64 +73 +65 +8 +87 +72 +24 +80 +93 +11 +37 +4 +56 +77 +26 +42 +92 +37 +55 +81 +1 +64 +97 +60 +51 +82 +57 +39 +18 +72 +19 +85 +95 +77 +80 +84 +87 +78 +83 +87 +47 +47 +66 +62 +30 +57 -- GitLab