@jwc/jscad-test-utils

2.0.0 • Public • Published

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

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.

csgReglRenderer(data, filename, [options])

Renders a JsCad CSG data object into a png file

Typedefs

glRenderOptions

GL render options

cameraRenderOptions

Camera render options

RenderOptions

Options for the csgReglRenderer

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.

Param Type Default Description
testpathname string The test path name to.
title string The title of the test.
data CSG CSG data to render
[options] object Options to pass to the ReglRenderer.
[options.camera] object Options to pass to the ReglRenderer camera.
[options.camera.position] Array.<number> [50, -50, 50] The position of the camera while rendering.
[options.gl] object Options to pass to the ReglRenderer glRenderer.
[options.gl.width] number 1024 The width of the rendered image.
[options.gl.height] number 768 The 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

Param Type Default Description
data CSG A JsCad CSG object.
filename String The filename to render the png image.
[options] object Options to pass to the ReglRenderer.
[options.camera] object Options to pass to the ReglRenderer camera.
[options.camera.position] Array.<number> [50, -50, 50] The position of the camera while rendering.
[options.gl] object Options to pass to the ReglRenderer glRenderer.
[options.gl.width] number 1024 The width of the rendered image.
[options.gl.height] number 768 The 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

Param Type Description
width number The width of the rendered image (default 1024).
height number The height of the rendered image (default 768).

cameraRenderOptions

Camera render options

Kind: global typedef

Param Type Description
position Array The position of the camera while rendering (default [50, -50, 50]).

RenderOptions

Options for the csgReglRenderer

Kind: global typedef

Param Type
camera cameraRenderOptions
gl glRenderOptions

Readme

Keywords

none

Package Sidebar

Install

npm i @jwc/jscad-test-utils

Weekly Downloads

18

Version

2.0.0

License

ISC

Unpacked Size

718 kB

Total Files

23

Last publish

Collaborators

  • johnwebbcole