亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? miffiletest.java

?? .mif .mid file read and write
?? JAVA
字號:
/*
 *    GeoTools - OpenSource mapping toolkit
 *    http://geotools.org
 *    (C) 2005-2006, GeoTools Project Managment Committee (PMC)
 * 
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotools.data.mif;

import java.util.HashMap;

import junit.framework.TestCase;
import junit.framework.TestSuite;

import org.geotools.data.FeatureReader;
import org.geotools.data.FeatureWriter;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;

import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Polygon;


/**
 * DOCUMENT ME!
 *
 * @author Luca S. Percich, AMA-MI
 * @source $URL: http://svn.geotools.org/trunk/modules/unsupported/mif/src/test/java/org/geotools/data/mif/MIFFileTest.java $
 */
public class MIFFileTest extends TestCase {
    private MIFFile mif = null;

    /**
     * DOCUMENT ME!
     *
     * @param args DOCUMENT ME!
     *
     * @throws Exception DOCUMENT ME!
     */
    public static void main(java.lang.String[] args) throws Exception {
        junit.textui.TestRunner.run(new TestSuite(MIFFileTest.class));
    }

    /*
     * @see TestCase#setUp()
     */
    protected void setUp() throws Exception {
        super.setUp();
        MIFTestUtils.cleanFiles();
    }

    /*
     * @see TestCase#tearDown()
     */
    protected void tearDown() throws Exception {
        MIFTestUtils.cleanFiles();
        super.tearDown();
    }

    /**
     * Tests for schema and feature reading from an existing MIF file
     */
    public void testMIFFileOpen() {
        try {
            mif = new MIFFile(MIFTestUtils.fileName("mixed"), // .mif
                    MIFTestUtils.getParams("mif", "", null));
            assertEquals("450",
                mif.getHeaderClause(MIFDataStore.HCLAUSE_VERSION));

            SimpleFeatureType schema = mif.getSchema();
            assertNotNull(schema);
            assertEquals(11, schema.getAttributeCount());
            assertEquals("DESCRIPTION", schema.getAttribute(1).getLocalName());
            assertEquals(Double.class,
                schema.getAttribute("LENGTH").getType().getBinding());

             FeatureReader<SimpleFeatureType, SimpleFeature> fr = mif.getFeatureReader();
            int tot = 0;

            while (fr.hasNext()) {
                SimpleFeature f = fr.next();

                if (++tot == 4) {
                    assertEquals("POLYGON", (String) f.getAttribute("GEOMTYPE"));
                }
            }

            fr.close();

            assertEquals(tot, 9);
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

    /*
     * Test a MIF file copy using input FeatureReader, createSchema and output FeatureWriter
     */
    public void testFileCopy() {
        if (!System.getProperty("os.name", "unknown").startsWith("Windows")) {
            // For an unknown reason, this test seems to fail on Linux box.
            return;
        }
        MIFFile in = null;
        MIFFile out = null;
        FeatureReader<SimpleFeatureType, SimpleFeature> inFR = null;
        FeatureReader<SimpleFeatureType, SimpleFeature> outFR = null;
        FeatureWriter<SimpleFeatureType, SimpleFeature> outFW = null;
        int maxAttr = 0;

        try {
            // Input file
            in = new MIFFile(MIFTestUtils.fileName("grafo"), null); // .mif

            SimpleFeatureType ft = in.getSchema();

            maxAttr = ft.getAttributeCount() - 1;

            // Params for output file
            HashMap params = new HashMap();

            // params.put(MIFFile.HCLAUSE_TRANSFORM, "100,100,0,0");
            params.put(MIFDataStore.HCLAUSE_UNIQUE,
                in.getHeaderClause(MIFDataStore.HCLAUSE_UNIQUE));
            params.put(MIFDataStore.HCLAUSE_INDEX,
                in.getHeaderClause(MIFDataStore.HCLAUSE_INDEX));
            params.put(MIFDataStore.HCLAUSE_VERSION,
                in.getHeaderClause(MIFDataStore.HCLAUSE_VERSION));
            params.put(MIFDataStore.HCLAUSE_COORDSYS,
                in.getHeaderClause(MIFDataStore.HCLAUSE_COORDSYS));

            // params.put(MIFDataStore.HCLAUSE_DELIMITER, in.getHeaderClause(MIFDataStore.HCLAUSE_DELIMITER));
            params.put(MIFDataStore.HCLAUSE_DELIMITER, ",");

            // Output file
            out = new MIFFile(MIFTestUtils.fileName("grafo_out"), ft, params); // .mif
        } catch (Exception e) {
            fail("Can't create grafo_out: " + e.getMessage());
        }

        try {
            inFR = in.getFeatureReader();
            outFW = out.getFeatureWriter();

            SimpleFeature inF;
            SimpleFeature outF;
            int counter = 0;

            while (inFR.hasNext()) {
                inF = inFR.next();
                outF = outFW.next();

                for (int i = 0; i < outF.getAttributeCount(); i++) {
                    outF.setAttribute(i, inF.getAttribute(i));
                }

                outFW.write();
                counter++;
            }

            inFR.close();
            outFW.close();
        } catch (Exception e) {
            fail("Can't copy features: " + e.getMessage());
        }

        try {
            inFR = in.getFeatureReader();

            outFR = out.getFeatureReader();

            int n = 0;

            while (inFR.hasNext()) {
                SimpleFeature fin = inFR.next();
                SimpleFeature fout = outFR.next();

                // Cycling attribute sampling
                assertEquals(fin.getAttribute(n).toString(),
                    fout.getAttribute(n).toString());

                if (++n > maxAttr) {
                    n = 0;
                }
            }

            inFR.close();
            outFR.close();
        } catch (Exception e) {
            fail("Can't compare features: " + e.getMessage());
        }
    }

    /**
     * Test writing / appending
     */
    public void testFeatureWriter() {
        try {
            MIFTestUtils.copyMif("mixed", "mixed_wri");

            MIFFile in = new MIFFile(MIFTestUtils.fileName("mixed_wri"), // .mif
                    MIFTestUtils.getParams("", "", null));
            FeatureWriter<SimpleFeatureType, SimpleFeature> fw = in.getFeatureWriter();

            SimpleFeature f;
            int counter = 0;

            while (fw.hasNext()) {
                f = fw.next();
                ++counter;

                if (counter == 5) {
                    fw.remove(); // removes multilinestring line
                } else if (counter == 7) {
                    f.setAttribute("DESCRIPTION", "fubar");
                    fw.write();
                } else {
                    f.setAttribute("DESCRIPTION", "foo"); // shouldn't affect data because I dont call write()
                }
            }

            // Appends a line
            SimpleFeature newf = fw.next();
            newf.setAttribute("DESCRIPTION", "newline");
            fw.write();

            fw.close();

            // Reopens a writer to modify feature # 3
            fw = in.getFeatureWriter();
            f = fw.next();
            f = fw.next();
            f = fw.next();
            f.setAttribute("NUM_OF_SEGMENTS", new Integer(179));
            fw.write();
            fw.close(); // should rewrite all other features

             FeatureReader<SimpleFeatureType, SimpleFeature> fr = in.getFeatureReader();
            counter = 0;

            while (fr.hasNext()) {
                f = fr.next();
                ++counter;

                String descr = (String) f.getAttribute("DESCRIPTION");
                assertEquals(false, descr.equals("foo"));

                if (counter == 3) {
                    assertEquals(179,
                        ((Integer) f.getAttribute("NUM_OF_SEGMENTS")).intValue());
                } else if (counter == 5) {
                    assertEquals("Single polygon with 2 holes", descr);
                } else if (counter == 6) {
                    assertEquals("fubar", descr);
                } else if (counter == 9) {
                    assertEquals("newline", descr);
                }
            }

            fr.close();
            assertEquals(9, counter);
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

    /**
     * Test opening of two FeatureReaders on the same MIF file.
     */
    public void testConcurrentReader() {
        try {
            MIFFile mif1 = new MIFFile(MIFTestUtils.fileName("grafo"), // .mif
                    MIFTestUtils.getParams("", "", null));

            MIFFile mif2 = new MIFFile(MIFTestUtils.fileName("grafo"), // .mif
                    MIFTestUtils.getParams("", "", null));

             FeatureReader<SimpleFeatureType, SimpleFeature> fr1 = mif1.getFeatureReader();

            fr1.next();

            SimpleFeature f1 = fr1.next();

             FeatureReader<SimpleFeatureType, SimpleFeature> fr2 = mif2.getFeatureReader();

            fr2.next();

            SimpleFeature f2 = fr2.next();

            for (int i = 0; i < f1.getAttributeCount(); i++) {
                assertEquals("Features are different",
                    f1.getAttribute(i).toString(), f2.getAttribute(i).toString());
            }

            fr2.close();
            fr1.close();
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

    /**
     * DOCUMENT ME!
     */
    public void testUntypedGeometryTypes() {
        try {
            mif = new MIFFile(MIFTestUtils.fileName("mixed"), // .mif
                    MIFTestUtils.getParams("mif", "", null, "untyped"));

            SimpleFeatureType ft = mif.getSchema();

            assertEquals(ft.getDefaultGeometry().getType().getBinding(), Geometry.class);

             FeatureReader<SimpleFeatureType, SimpleFeature> fr = mif.getFeatureReader();

            while (fr.hasNext()) {
                SimpleFeature f = fr.next();
                String geomtype = (String) f.getAttribute("GEOMTYPE");

                if (geomtype.equals("LINE")) {
                    geomtype = "LINESTRING";
                }

                Geometry geom = (Geometry) f.getAttribute("the_geom");

                if (geom == null) {
                    assertEquals(geomtype, "NULL");
                } else {
                    String gtype = geom.getClass().getName();
                    gtype = gtype.substring(28).toUpperCase();

                    boolean compat = (geomtype.equals(gtype));

                    // compat = compat || geomtype.equals("MULTI" + gtype);
                    assertTrue("Uncompatible types: " + gtype + ", " + geomtype,
                        compat);

                    if (geomtype.equals("POLYGON")) {
                        assertEquals("Bad number of holes",
                            ((Integer) f.getAttribute("NUM_OF_HOLES")).intValue(),
                            ((Polygon) geom).getNumInteriorRing());
                    }
                }
            }

            fr.close();
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryUntyped() {
        doTestTyping("grafo", "untyped", Geometry.class, LineString.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTyped() {
        doTestTyping("grafo", "typed", LineString.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTypesMulti() {
        doTestTyping("grafo", "multi", MultiLineString.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTypesLineString() {
        doTestTyping("grafo", "LineString", LineString.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTypesMultiLineString() {
        doTestTyping("grafo", "MultiLineString", MultiLineString.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTypesPoint() {
        // If I force to MultiLineString, the features read must already be MultiLineString
        doTestTyping("nodi", "Point", Point.class, false);
    }

    public void testTypedGeometryText() {
        doTestTyping("text", "Text", Point.class, false);
    }

    public void testTypedGeometryTextAuto() {
        doTestTyping("text", "Typed", Point.class, false);
    }

    /**
     * DOCUMENT ME!
     */
    public void testTypedGeometryTypesMultiPoint() {
        // If I force to MultiLineString, the features read must already be MultiLineString
        doTestTyping("nodi", "multi", Point.class, false);
    }

    private void doTestTyping(String typeName, String geomType,
        Class geomClass, boolean errorExpected) {
        doTestTyping(typeName, geomType, geomClass, geomClass, errorExpected);
    }

    private void doTestTyping(String typeName, String geomType,
        Class geomClass, Class instanceGeomClass, boolean errorExpected) {
        try {
            mif = new MIFFile(MIFTestUtils.fileName(typeName), // .mif
                    MIFTestUtils.getParams("mif", "", null, geomType));

            SimpleFeatureType ft = mif.getSchema();

            assertEquals(geomClass, ft.getDefaultGeometry().getType().getBinding());

             FeatureReader<SimpleFeatureType, SimpleFeature> fr = mif.getFeatureReader();

            try {
                SimpleFeature f = fr.next();
                Geometry geom = (Geometry) f.getAttribute("the_geom");

                if (errorExpected) {
                    fail("Expected error reading geometric attribute");
                } else {
                    assertEquals(instanceGeomClass, geom.getClass());
                }
            } catch (Exception e) {
                if (!errorExpected) {
                    fail(e.getMessage());
                }
            }

            fr.close();
        } catch (Exception e) {
            if (!errorExpected) {
                fail(e.getMessage());
            }
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本在线观看| 亚洲无人区一区| 亚洲一区二区三区激情| 国产精品18久久久久| 欧洲生活片亚洲生活在线观看| 日韩欧美中文字幕精品| 亚洲男人的天堂av| 国产高清视频一区| 欧美tickle裸体挠脚心vk| 亚洲精品视频在线看| 国产精一区二区三区| 日韩午夜在线观看| 亚洲成av人影院| 色网综合在线观看| 中文字幕制服丝袜成人av| 国产精一品亚洲二区在线视频| 日韩一卡二卡三卡| 无码av免费一区二区三区试看 | 国产一区二区视频在线| 欧美日韩免费观看一区三区| 亚洲人快播电影网| av亚洲精华国产精华精华| 久久伊99综合婷婷久久伊| 日韩高清不卡一区二区三区| 欧美视频一区在线| 亚洲日本一区二区三区| 不卡的av中国片| 国产精品水嫩水嫩| 成人综合婷婷国产精品久久 | 色狠狠av一区二区三区| 国产精品国产三级国产aⅴ原创| 国产精品一区二区免费不卡| 欧美哺乳videos| 青青草精品视频| 日韩免费观看高清完整版| 日韩不卡一区二区| 日韩一区二区三区视频在线观看| 无码av中文一区二区三区桃花岛| 欧美美女喷水视频| 视频一区二区三区在线| 91精品中文字幕一区二区三区| 亚洲国产综合色| 欧美精品乱码久久久久久按摩| 亚洲成人福利片| 日韩午夜在线观看视频| 国产乱码精品一区二区三区忘忧草 | 久久这里只精品最新地址| 黑人精品欧美一区二区蜜桃| 久久久精品tv| 成人av动漫网站| 亚洲精品伦理在线| 欧美日韩精品一区二区天天拍小说 | 国产黑丝在线一区二区三区| 中文成人综合网| 日本精品裸体写真集在线观看| 亚洲成人激情社区| 精品福利一二区| 99麻豆久久久国产精品免费优播| 一区二区三区在线不卡| 日韩一区二区免费在线观看| 国产精品综合久久| 一区二区三区四区亚洲| 欧美一区二区三区视频在线观看| 狠狠色狠狠色综合系列| 亚洲欧美日韩国产手机在线| 欧美一区二区精品| 成人免费看的视频| 首页国产丝袜综合| 国产无人区一区二区三区| 色视频欧美一区二区三区| 精品一区二区在线观看| 自拍偷拍欧美激情| 日韩欧美国产一区二区三区| 99久久综合99久久综合网站| 日韩av一二三| 中文字幕一区二区在线观看 | 欧美大尺度电影在线| www.综合网.com| 日韩中文字幕不卡| 国产精品美女久久久久久久 | 成人av网址在线| 日韩精品一二三区| 亚洲欧美偷拍三级| 久久老女人爱爱| 777精品伊人久久久久大香线蕉| 不卡一卡二卡三乱码免费网站| 日韩国产欧美在线播放| 亚洲精品视频自拍| 国产精品美女久久久久久 | 日本不卡123| 一区二区三区精品在线观看| 国产欧美一区二区三区沐欲| 欧美一二三四区在线| 欧美综合视频在线观看| 不卡区在线中文字幕| 国产毛片精品视频| 青青青爽久久午夜综合久久午夜| 亚洲综合色自拍一区| 国产精品久久夜| 久久久久久久性| 欧美一激情一区二区三区| 欧美人妇做爰xxxⅹ性高电影| 91性感美女视频| 99久久精品免费精品国产| 国产伦精品一区二区三区视频青涩 | 7777精品伊人久久久大香线蕉完整版| 99久久精品国产网站| 国产成人在线免费观看| 国产一区二区h| 国产自产2019最新不卡| 韩国在线一区二区| 国产一区二区三区精品视频| 精品无人码麻豆乱码1区2区| 青娱乐精品视频在线| 日韩av在线免费观看不卡| 日本视频免费一区| 日本视频中文字幕一区二区三区| 天堂蜜桃91精品| 日韩一区精品视频| 日韩av二区在线播放| 日韩av在线发布| 国产一区二区三区| 懂色av噜噜一区二区三区av| 国产91综合网| av激情亚洲男人天堂| 91美女片黄在线观看| 91国偷自产一区二区开放时间| 一本大道久久精品懂色aⅴ| 欧美亚洲愉拍一区二区| 欧美丰满高潮xxxx喷水动漫| 日韩欧美国产精品一区| 国产人成一区二区三区影院| 国产精品乱人伦中文| 亚洲人成影院在线观看| 婷婷国产v国产偷v亚洲高清| 久久成人麻豆午夜电影| 国产激情视频一区二区在线观看| 成人av午夜电影| 欧美人与禽zozo性伦| 精品国产1区2区3区| 中文字幕一区二区5566日韩| 夜夜亚洲天天久久| 久久国产免费看| 99精品视频在线播放观看| 欧美三级日韩三级| 精品剧情v国产在线观看在线| 国产精品盗摄一区二区三区| 五月天欧美精品| 国产黄人亚洲片| 欧美日韩免费观看一区三区| 欧美精品一区二区三区蜜桃| 亚洲三级小视频| 九九视频精品免费| 99免费精品在线观看| 欧美一卡2卡三卡4卡5免费| 国产日韩欧美精品电影三级在线| 亚洲影视在线播放| 国产精品自拍一区| 欧美日韩视频第一区| 国产人久久人人人人爽| 午夜不卡av在线| 99久久精品免费观看| 9191久久久久久久久久久| 精品成a人在线观看| 一区二区三区在线播| 国产99久久精品| 日韩一级高清毛片| 亚洲黄色小说网站| 国产91色综合久久免费分享| 欧美老女人在线| 亚洲人成伊人成综合网小说| 国产最新精品精品你懂的| 欧美日韩一级二级| 国产精品麻豆一区二区| 美女视频免费一区| 欧美视频在线观看一区二区| 久久精品男人的天堂| 日韩制服丝袜先锋影音| 欧美亚洲国产一区二区三区va| 久久久不卡影院| 国产真实精品久久二三区| 欧美猛男男办公室激情| 亚洲激情自拍视频| 99这里只有久久精品视频| 久久一日本道色综合| 日本成人中文字幕在线视频| 欧美日韩免费电影| 亚洲精品日韩专区silk| a亚洲天堂av| 中国色在线观看另类| 国产精品一二三四| 精品欧美黑人一区二区三区| 日韩精品电影在线| 精品视频一区三区九区| 亚洲图片自拍偷拍| 日本道精品一区二区三区| 亚洲精品综合在线| 色综合久久88色综合天天免费| 综合中文字幕亚洲| 99久久精品99国产精品|