skoltech-neuro-ami
Version:
<p align="center"> <img src="https://user-images.githubusercontent.com/214063/46479857-4cd66e80-c7f0-11e8-9585-5748409c9490.png" width="60%"> </p>
76 lines (65 loc) • 2.65 kB
text/typescript
import { Matrix3 } from 'three/src/math/Matrix3';
import { Vector3 } from 'three/src/math/Vector3';
import CoreUtils from '../../src/core/core.utils';
describe('Core.Utils', () => {
describe('bbox', () => {
it('should return false if input is not valid', () => {
// negative half dimensions
const bbox = CoreUtils.bbox(new Vector3(), new Vector3(-1, 10, 10));
expect(bbox).toEqual(false);
});
it('should return true if input is valid', () => {
// zero bbox
let bbox = CoreUtils.bbox(new Vector3(), new Vector3());
// { min: { x : 0, y : 0, z : 0 },
// max: { x : 0, y : 0, z : 0 }
// }
expect(bbox.hasOwnProperty('min')).toEqual(true);
expect(bbox.min.x).toEqual(0);
expect(bbox.min.x).toEqual(0);
expect(bbox.min.y).toEqual(0);
expect(bbox.min.z).toEqual(0);
expect(bbox.hasOwnProperty('max')).toEqual(true);
expect(bbox.max.x).toEqual(0);
expect(bbox.max.y).toEqual(0);
expect(bbox.max.z).toEqual(0);
// regular bbox
bbox = CoreUtils.bbox(new Vector3(1, 2, 3), new Vector3(1, 2, 3));
// { min: { x : 0, y : 0, z : 0 },
// max: { x : 2, y : 4, z : 6 }
// }
expect(bbox.hasOwnProperty('min')).toEqual(true);
expect(bbox.min.x).toEqual(0);
expect(bbox.min.y).toEqual(0);
expect(bbox.min.z).toEqual(0);
expect(bbox.hasOwnProperty('max')).toEqual(true);
expect(bbox.max.x).toEqual(2);
expect(bbox.max.y).toEqual(4);
expect(bbox.max.z).toEqual(6);
});
});
describe('string to number', () => {
it('should convert valid strings to number', () => {
// number with a dot
let numberFromString = CoreUtils.stringToNumber('5.0');
expect(numberFromString).toEqual(5.0);
// number with a comma
numberFromString = CoreUtils.stringToNumber('5,0');
expect(numberFromString).toEqual(5.0);
// number with a dot and a comma
numberFromString = CoreUtils.stringToNumber('5,000.1');
expect(numberFromString).toEqual(5000.1);
});
it('should convert invalid strings to 1.0', () => {
// number with a dot
let numberFromString = CoreUtils.stringToNumber('abc');
expect(numberFromString).toEqual(1.0);
// number with a comma
numberFromString = CoreUtils.stringToNumber('5..0,');
expect(numberFromString).toEqual(1.0);
// number with a dot and a comma
numberFromString = CoreUtils.stringToNumber('5,,1');
expect(numberFromString).toEqual(1.0);
});
});
});