@jwc/jscad-test-utils

1.0.7 • 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 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

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.

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(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.

Param Type Description
t * Ava test object.
data CSG CSG data to render
options RenderOptions Options 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

Param Type Description
data CSG A JsCad CSG object.
filename String The filename to render the png image.
options Object Options 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

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

0

Version

1.0.7

License

ISC

Unpacked Size

779 kB

Total Files

23

Last publish

Collaborators

  • johnwebbcole