@Test
public void testInvalidAndRare() {

    // MAX 100 KNOTS
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(110)[kts]");
    Shape shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNull(shp);
    // INF and -INF are rejected
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(Infinity)[kts]");
    shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNull(shp);
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(-Infinity)[kts]");
    shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNull(shp);
    // NaN is x-----
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(NaN)[kts]");
    shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNotNull(shp);
    assertEquals(WindBarbsFactoryTest.WKT_WRITER.write(JTS.toGeometry(shp)).toString(),
            "MULTILINESTRING ((0 -0, 0 40), (5 45, -5 35), (-5 45, 5 35))");
    // missing ? before KVP
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(110)[kts]emisphere=N");
    shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNull(shp);
    // wrong separator before KVP
    this.exp = ff.literal(WindBarbsFactory.WINDBARBS_PREFIX + "default(110)[kts]&emisphere=N");
    shp = (Shape) wbf.getShape(null, this.exp, this.feature);
    assertNull(shp);
}