ianmackenzie/elm-geometry-test/1.0.0

NOTE: the latest version is 2.0.1

Geometry.Fuzz

A collection of Fuzzers for elm-geometry values.

These fuzzers generally generate values in the range -10 to +10 meters. For example, point2d will generate a point with coordinate values in this range and sphere3d will generate a sphere with a center point that has coordinates in this range, and a radius also in this range (although note that this means points on the surface of the sphere may have coordinates outside this range).

This module has been designed so that in most cases you can use

import Geometry.Fuzz as Fuzz

to 'merge' it with the Fuzz module from elm-explorations/test, without running into any naming conflicts.

Float values

scale : Fuzzer Float

Generate a random Float scaling factor in the range -10 to +10.

parameterValue : Fuzzer Float

Generate a random Float value in the range 0 to 1.

Quantity values

length : Fuzzer Length

Generate a random Length in the range -10 to +10 meters.

positiveLength : Fuzzer Length

Generate a random positive length in the range 0 to 10 meters.

angle : Fuzzer Angle

Generate a random angle in the range -360 to +360 degrees.

Quantity Float units
-> Quantity Float units
-> Fuzzer (Quantity Float units)

Generate a random Quantity between the two given values.

Primitives

point2d : Fuzzer (Point2d Meters coordinates)

Generate a random Point2d.

point3d : Fuzzer (Point3d Meters coordinates)

Generate a random Point3d.

vector2d : Fuzzer (Vector2d Meters coordinates)

Generate a random Vector2d.

vector3d : Fuzzer (Vector3d Meters coordinates)

Generate a random Vector3d.

direction2d : Fuzzer (Direction2d coordinates)

Generate a random Direction2d.

direction3d : Fuzzer (Direction3d coordinates)

Generate a random Direction3d.

boundingBox2d : Fuzzer (BoundingBox2d Meters coordinates)

Generate a random BoundingBox2d.

boundingBox3d : Fuzzer (BoundingBox3d Meters coordinates)

Generate a random BoundingBox3d.

Datums

axis2d : Fuzzer (Axis2d Meters coordinates)

Generate a random Axis2d.

axis3d : Fuzzer (Axis3d Meters coordinates)

Generate a random Axis3d.

Fuzzer
(Frame2d Meters coordinates { defines : localCoordinates })

Generate a random Frame2d. Note that the generated frame may be either left-handed or right-handed.

Fuzzer
(Frame3d Meters coordinates { defines : localCoordinates })

Generate a random Frame3d. Note that the generated frame may be either left-handed or right-handed.

plane3d : Fuzzer (Plane3d Meters coordinates)

Generate a random Plane3d.

Fuzzer
(SketchPlane3d
Meters
coordinates
{ defines : sketchCoordinates }
)

Generate a random SketchPlane3d.

Simple geometry

lineSegment2d : Fuzzer (LineSegment2d Meters coordinates)

Generate a random LineSegment2d.

lineSegment3d : Fuzzer (LineSegment3d Meters coordinates)

Generate a random LineSegment3d.

triangle2d : Fuzzer (Triangle2d Meters coordinates)

Generate a random Triangle2d. Note that the triangle's vertices may be in either clockwise or counterclockwise order.

triangle3d : Fuzzer (Triangle3d Meters coordinates)

Generate a random Triangle3d.

rectangle2d : Fuzzer (Rectangle2d Meters coordinates)

Generate a random Rectangle2d.

block3d : Fuzzer (Block3d Meters coordinates)

Generate a random Block3d.

polyline2d : Fuzzer (Polyline2d Meters coordinates)

Generate a random Polyline2d.

polyline3d : Fuzzer (Polyline3d Meters coordinates)

Generate a random Polyline3d.

polygon2d : Fuzzer (Polygon2d Meters coordinates)

Generate a random Polygon2d. The polygon will be one of a few general forms, but with randomized vertex positions:

  • Square
  • Square with hole
  • Square with two holes
  • Square with two interlocking holes
  • Circle with hole
  • L shape

Complex geometry

arc2d : Fuzzer (Arc2d Meters coordinates)

Generate a random Arc2d.

arc3d : Fuzzer (Arc3d Meters coordinates)

Generate a random Arc3d.

circle2d : Fuzzer (Circle2d Meters coordinates)

Generate a random Circle2d.

circle3d : Fuzzer (Circle3d Meters coordinates)

Generate a random Circle3d.

cubicSpline2d : Fuzzer (CubicSpline2d Meters coordinates)

Generate a random CubicSpline2d.

cubicSpline3d : Fuzzer (CubicSpline3d Meters coordinates)

Generate a random CubicSpline3d.

cylinder3d : Fuzzer (Cylinder3d Meters coordinates)

Generate a random Cylinder3d.

ellipse2d : Fuzzer (Ellipse2d Meters coordinates)

Generate a random Ellipse2d.

ellipticalArc2d : Fuzzer (EllipticalArc2d Meters coordinates)

Generate a random EllipticalArc2d.

quadraticSpline2d : Fuzzer (QuadraticSpline2d Meters coordinates)

Generate a random QuadraticSpline2d.

quadraticSpline3d : Fuzzer (QuadraticSpline3d Meters coordinates)

Generate a random QuadraticSpline3d.

sphere3d : Fuzzer (Sphere3d Meters coordinates)

Generate a random Sphere3d.