forked from InsightSoftwareConsortium/ITK-Wasm
-
Notifications
You must be signed in to change notification settings - Fork 0
/
VTKTest.js
55 lines (50 loc) · 2.44 KB
/
VTKTest.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import test from 'ava'
import path from 'path'
const IntTypes = require(path.resolve(__dirname, '..', 'dist', 'IntTypes.js'))
const PixelTypes = require(path.resolve(__dirname, '..', 'dist', 'PixelTypes.js'))
const readImageLocalFile = require(path.resolve(__dirname, '..', 'dist', 'readImageLocalFile.js'))
const writeImageLocalFile = require(path.resolve(__dirname, '..', 'dist', 'writeImageLocalFile.js'))
const testInputFilePath = path.resolve(__dirname, '..', 'build', 'ExternalData', 'test', 'Input', 'ironProt.vtk')
const testOutputFilePath = path.resolve(__dirname, '..', 'build', 'Testing', 'Temporary', 'VTKTest-ironProt.vtk')
const verifyImage = (t, image) => {
t.is(image.imageType.dimension, 3, 'dimension')
t.is(image.imageType.componentType, IntTypes.UInt8, 'componentType')
t.is(image.imageType.pixelType, PixelTypes.Scalar, 'pixelType')
t.is(image.imageType.components, 1, 'components')
t.is(image.origin[0], 0.0, 'origin[0]')
t.is(image.origin[1], 0.0, 'origin[1]')
t.is(image.origin[2], 0.0, 'origin[2]')
t.is(image.spacing[0], 1.0, 'spacing[0]')
t.is(image.spacing[1], 1.0, 'spacing[1]')
t.is(image.spacing[2], 1.0, 'spacing[2]')
t.is(image.direction.getElement(0, 0), 1.0, 'direction (0, 0)')
t.is(image.direction.getElement(0, 1), 0.0, 'direction (0, 1)')
t.is(image.direction.getElement(0, 2), 0.0, 'direction (0, 2)')
t.is(image.direction.getElement(1, 0), 0.0, 'direction (1, 0)')
t.is(image.direction.getElement(1, 1), 1.0, 'direction (1, 1)')
t.is(image.direction.getElement(1, 2), 0.0, 'direction (1, 2)')
t.is(image.direction.getElement(2, 0), 0.0, 'direction (2, 0)')
t.is(image.direction.getElement(2, 1), 0.0, 'direction (2, 1)')
t.is(image.direction.getElement(2, 2), 1.0, 'direction (2, 2)')
t.is(image.size[0], 68, 'size[0]')
t.is(image.size[1], 68, 'size[1]')
t.is(image.size[2], 68, 'size[2]')
t.is(image.data.length, 314432, 'data.length')
t.is(image.data[1000], 0, 'data[1000]')
}
test('Test reading a VTK legacy file', t => {
return readImageLocalFile(testInputFilePath).then(function (image) {
verifyImage(t, image)
})
})
test('Test writing a BioRad file', t => {
return readImageLocalFile(testInputFilePath).then(function (image) {
const useCompression = false
return writeImageLocalFile(useCompression, image, testOutputFilePath)
})
.then(function () {
return readImageLocalFile(testOutputFilePath).then(function (image) {
verifyImage(t, image)
})
})
})