  @Test
  public void testBuildHalfOffsetLine() {

    IDirectPosition p1 = new DirectPosition(0.0, 0.0);
    IDirectPosition p2 = new DirectPosition(10.0, 0.0);
    IDirectPosition p3 = new DirectPosition(20.0, 0.0);
    IDirectPosition p4 = new DirectPosition(20.0, 10.0);
    IDirectPosition p6 = new DirectPosition(0.0, 5.0);
    IDirectPosition p7 = new DirectPosition(10.0, 5.0);
    IDirectPosition p8 = new DirectPosition(20.0, 5.0);
    IDirectPosition p9 = new DirectPosition(0.0, 5.0);
    IDirectPosition p10 = new DirectPosition(10.0, 5.0);
    IDirectPosition p11 = new DirectPosition(15.0, 5.0);
    IDirectPosition p12 = new DirectPosition(15.0, 10.0);
    IDirectPositionList list1 = new DirectPositionList();
    IDirectPositionList list2 = new DirectPositionList();
    IDirectPositionList list3 = new DirectPositionList();
    IDirectPositionList list4 = new DirectPositionList();
    list1.add(p1);
    list1.add(p2);
    list1.add(p3);
    ILineString line1 = new GM_LineString(list1);
    list2.add(p6);
    list2.add(p7);
    list2.add(p8);
    ILineString line2 = new GM_LineString(list2);
    Assert.assertTrue(line2.equals(BufferComputing.buildHalfOffsetLine(
        Side.LEFT, line1, 5.0)));
    Assert.assertTrue(line1.equals(BufferComputing.buildHalfOffsetLine(
        Side.RIGHT, line2, 5.0)));
    list3.add(p1);
    list3.add(p2);
    list3.add(p3);
    list3.add(p4);
    ILineString line3 = new GM_LineString(list3);
    list4.add(p9);
    list4.add(p10);
    list4.add(p11);
    list4.add(p12);
    ILineString line4 = new GM_LineString(list4);
    Assert.assertTrue(line4.equals((IGeometry) BufferComputing
        .buildHalfOffsetLine(Side.LEFT, line3, 5.0)));
    IDirectPositionList list5 = new DirectPositionList();
    list5.add(new DirectPosition(0.0, 10.0));
    list5.add(new DirectPosition(20.0, 10.0));
    list5.add(new DirectPosition(20.0, 0.0));
    ILineString line5 = new GM_LineString(list5);
    IDirectPositionList list6 = new DirectPositionList();
    list6.add(new DirectPosition(0.0, 5.0));
    list6.add(new DirectPosition(15.0, 5.0));
    list6.add(new DirectPosition(15.0, 0.0));
    ILineString line6 = new GM_LineString(list6);
    Assert.assertTrue(line6.equals(BufferComputing.buildHalfOffsetLine(
        Side.RIGHT, line5, 5.0)));

  }