29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
![]() |
import { Quaternion } from 'three'
|
||
|
import { isQuaternionVertical } from './setup'
|
||
|
|
||
|
describe('isQuaternionVertical', () => {
|
||
|
it('should identify vertical quaternions', () => {
|
||
|
const verticalQuaternions = [
|
||
|
new Quaternion(1, 0, 0, 0).normalize(), // bottom
|
||
|
new Quaternion(-0.7, 0.7, 0, 0).normalize(), // bottom 2
|
||
|
new Quaternion(0, 1, 0, 0).normalize(), // bottom 3
|
||
|
new Quaternion(0, 0, 0, 1).normalize(), // look from top
|
||
|
]
|
||
|
verticalQuaternions.forEach((quaternion) => {
|
||
|
expect(isQuaternionVertical(quaternion)).toBe(true)
|
||
|
})
|
||
|
})
|
||
|
|
||
|
it('should identify non-vertical quaternions', () => {
|
||
|
const nonVerticalQuaternions = [
|
||
|
new Quaternion(0.7, 0, 0, 0.7).normalize(), // front
|
||
|
new Quaternion(0, 0.7, 0.7, 0).normalize(), // back
|
||
|
new Quaternion(-0.5, 0.5, 0.5, -0.5).normalize(), // left side
|
||
|
new Quaternion(0.5, 0.5, 0.5, 0.5).normalize(), // right side
|
||
|
]
|
||
|
nonVerticalQuaternions.forEach((quaternion) => {
|
||
|
expect(isQuaternionVertical(quaternion)).toBe(false)
|
||
|
})
|
||
|
})
|
||
|
})
|