package com.revolsys.geometry.test.old.io; import com.revolsys.geometry.model.GeometryFactory; import com.revolsys.geometry.model.Point; import com.revolsys.geometry.wkb.WKBReader; import com.revolsys.geometry.wkb.WKBWriter; import junit.framework.TestCase; public class WKBWriterTest extends TestCase { public WKBWriterTest(final String name) { super(name); } public void testSRID() throws Exception { final GeometryFactory gf = GeometryFactory.DEFAULT_3D; final Point p1 = gf.point(1.0, 2.0); // p1.setSRID(1234); // first write out without srid set WKBWriter w = new WKBWriter(); byte[] wkb = w.write(p1); // check the 3rd bit of the second byte, should be unset byte b = (byte)(wkb[1] & 0x20); assertEquals(0, b); // read geometry back in WKBReader r = new WKBReader(gf); Point p2 = (Point)r.read(wkb); assertTrue(p1.equals(2, p2)); assertEquals(0, p2.getCoordinateSystemId()); // not write out with srid set w = new WKBWriter(2, true); wkb = w.write(p1); // check the 3rd bit of the second byte, should be set b = (byte)(wkb[1] & 0x20); assertEquals(0x20, b); final int srid = (wkb[5] & 0xff) << 24 | (wkb[6] & 0xff) << 16 | (wkb[7] & 0xff) << 8 | wkb[8] & 0xff; assertEquals(1234, srid); r = new WKBReader(gf); p2 = (Point)r.read(wkb); // read the geometry back in assertTrue(p1.equals(2, p2)); assertEquals(1234, p2.getCoordinateSystemId()); } }