2.0.0 • Published 1 year ago

@jwc/jscad-test-utils v2.0.0

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 csgReglRenderer 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(testpathname, title, 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.

ParamTypeDefaultDescription
testpathnamestringThe test path name to.
titlestringThe title of the test.
dataCSGCSG data to render
optionsobjectOptions to pass to the ReglRenderer.
options.cameraobjectOptions to pass to the ReglRenderer camera.
options.camera.positionArray.<number>50, -50, 50The position of the camera while rendering.
options.globjectOptions to pass to the ReglRenderer glRenderer.
options.gl.widthnumber1024The width of the rendered image.
options.gl.heightnumber768The height of the rendered image.

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

ParamTypeDefaultDescription
dataCSGA JsCad CSG object.
filenameStringThe filename to render the png image.
optionsobjectOptions to pass to the ReglRenderer.
options.cameraobjectOptions to pass to the ReglRenderer camera.
options.camera.positionArray.<number>50, -50, 50The position of the camera while rendering.
options.globjectOptions to pass to the ReglRenderer glRenderer.
options.gl.widthnumber1024The width of the rendered image.
options.gl.heightnumber768The height of the rendered image.

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
2.0.0

1 year ago

1.0.7

3 years ago

2.0.0-6

3 years ago

2.0.0-5

3 years ago

2.0.0-4

3 years ago

2.0.0-3

3 years ago

2.0.0-2

3 years ago

2.0.0-1

3 years ago

2.0.0-0

3 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago