1.0.7 • Published 1 year ago

@jwc/jscad-test-utils v1.0.7

Weekly downloads
5
License
ISC
Repository
-
Last release
1 year ago

hero image

view on
npm npm module
downloads Dependents

Twitter Follow

jscad-test-utils

This packages has two utilities to help testing JsCad objects using image snapshots with AVA.

csgReglRenderer

Based on @jscad-regl-rendere the csgReglRendere provides an easy way to generate a png file from a CSG object.

var sphere = CSG.sphere({
center: [0, 0, 0],
radius: 2, // must be scalar
resolution: 128
});

if (fs.existsSync("test.png")) fs.unlinkSync("test.png");
csgReglRenderer(sphere, "test.png");

API

Functions

Typedefs

csgImageSnapshot(t, data, options) ⇒ Promise

Image testing with a snapshot image for CSG objects. Uses looks-same to comare the images. If there is a differnece, the new temp.png file anda diff.png file are created.

Kind: global function
Returns: Promise - A promise that resolves true if the rendered images matches the snapshot, false if there is a difference.

ParamTypeDescription
t*Ava test object.
dataCSGCSG data to render
optionsRenderOptionsOptions to pass to the ReglRenderer.

Example
In the test, create a CSG object then call csgImageSnapshot with the test object and the CSG data.

Creates a snapshot of the sphere. snapshot image

test('create a sphere', async t => {
  var sphere2 = CSG.sphere({
    center: [0, 0, 0],
    radius: 11, // must be scalar
    resolution: 128
  });


  var result = await csgImageSnapshot(t, sphere2);
  t.false(result);
}

If the test fails, a diff.png file is created showing the differneces.

failed snapshot

csgReglRenderer(data, filename, options)

Renders a JsCad CSG data object into a png file

Kind: global function

ParamTypeDescription
dataCSGA JsCad CSG object.
filenameStringThe filename to render the png image.
optionsObjectOptions for the camera and image size.

Example
Render a CSG sphere to the file test.png.

var sphere = CSG.sphere({
center: [0, 0, 0],
radius: 2, // must be scalar
resolution: 128
});

if (fs.existsSync("test.png")) fs.unlinkSync("test.png");
csgReglRenderer(sphere, "test.png");

glRenderOptions

GL render options

Kind: global typedef

ParamTypeDescription
widthnumberThe width of the rendered image (default 1024).
heightnumberThe height of the rendered image (default 768).

cameraRenderOptions

Camera render options

Kind: global typedef

ParamTypeDescription
positionArrayThe position of the camera while rendering (default 50, -50, 50).

RenderOptions

Options for the csgReglRenderer

Kind: global typedef

ParamType
cameracameraRenderOptions
glglRenderOptions
1.0.7

1 year ago

2.0.0-6

1 year ago

2.0.0-5

1 year ago

2.0.0-4

1 year ago

2.0.0-3

1 year ago

2.0.0-2

1 year ago

2.0.0-1

1 year ago

2.0.0-0

1 year ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago