func CoordsAddTestImpl(t *testing.T, simpleCoords geom.ReadWriteCoords, pointFactory func(...float64) geom.Point) { simpleCoords.Add(pointFactory(1, 2)) assert.Equal(t, 1, int(simpleCoords.NumCoords()), "Number of coordinates should be the 1") assert.Equal(t, []float64{1, 2}, simpleCoords.Get(0).ToArray(), fmt.Sprintf("Incorrect first coordinate in %v", simpleCoords)) simpleCoords.Add(pointFactory(3, 4)) assert.Equal(t, 2, int(simpleCoords.NumCoords()), "Number of coordinates should be the 2") assert.Equal(t, []float64{1, 2}, simpleCoords.Get(0).ToArray(), fmt.Sprintf("Incorrect first coordinate in %v", simpleCoords)) assert.Equal(t, []float64{3, 4}, simpleCoords.Get(1).ToArray(), fmt.Sprintf("Incorrect first coordinate in %v", simpleCoords)) assert.Panics(t, func() { simpleCoords.Add(pointFactory(3, 4, 5)) }) assert.Equal(t, 2, int(simpleCoords.NumCoords()), "Number of coordinates should be the 2") assert.Equal(t, []float64{1, 2}, simpleCoords.Get(0).ToArray(), fmt.Sprintf("Incorrect first coordinate in %v", simpleCoords)) assert.Equal(t, []float64{3, 4}, simpleCoords.Get(1).ToArray(), fmt.Sprintf("Incorrect first coordinate in %v", simpleCoords)) }