message: More stroke testing
diff: | $Copyright: (c) 2018 Bentley Systems, Incorporated. All rights reserved. $
  *--------------------------------------------------------------------------------------------*/
  import { Point3d } from "../PointVector";
  -import { Geometry, Angle } from "../Geometry";
  +import { Geometry, Angle, AngleSweep } from "../Geometry";
  import { Checker } from "./Checker";
  import { expect } from "chai";
  import { KnotVector } from "../bspline/KnotVector";
  @@ -23,6 +23,16 @@ function translateAndPush(allGeometry: GeometryQuery[], g: GeometryQuery | undef
  allGeometry.push(g);
  }
  }
  +function ellipsePoints(a: number, b: number, sweep: AngleSweep, numStep: number): Point3d[] {
  + const points = [];
  + for (let f = 0.0; f <= 1.00001; f += 1.0 / numStep) {
  + const radians = sweep.fractionToRadians(f);
  + const c = Math.cos(radians);
  + const s = Math.sin(radians);
  + points.push(Point3d.create(a * c, b * s, 0.0));
  + }
  + return points;
  +}
  /* tslint:disable:no-console */
  describe("BsplineCurve", () => {
  @@ -164,8 +174,8 @@ describe("BsplineCurve", () => {
  const allGeometry: GeometryQuery[] = [];
  for (const factor of [0.5, 1, 3]) {
  const transform = Transform.createScaleAboutPoint(Point3d.create(0, 0, 0), factor);
  - const allPoints: Point3d[] = [
  - Point3d.create(0, 0, 0),
  + for (const allPoints of [
  + [Point3d.create(0, 0, 0),
  Point3d.create(0, 10, 0),
  Point3d.create(10, 10, 0),
  Point3d.create(10, 0, 0),
  @@ -173,7 +183,8 @@ describe("BsplineCurve", () => {
  Point3d.create(20, 10, 0),
  Point3d.create(25, 5, 0),
  Point3d.create(30, 5, 0),
  - Point3d.create(35, 10, 0)];
  + Point3d.create(35, 10, 0)],
  + ellipsePoints(35, 20, AngleSweep.createStartEndDegrees(-45, 110), 9)]) {
  transform.multiplyPoint3dArrayInPlace(allPoints);
  for (let degree = 1; degree < 6; degree++) {
  const bcurve = BSplineCurve3d.createUniformKnots(allPoints, degree + 1)!;
  @@ -198,6 +209,7 @@ describe("BsplineCurve", () => {
  xShift += xStep;
  }
  }
  + }
  GeometryCoreTestIO.saveGeometry(allGeometry, "BezierCurve3d", "BsplineSaturation");
  expect(ck.getNumErrors()).equals(0);
  });
  