17 lines
848 B
JavaScript
17 lines
848 B
JavaScript
import { DIRECTION_LINE, POLYGON, clamp, geometryError } from '@/components/sense/geometry-editor/geometry'
|
|
|
|
describe('Sense area geometry', () => {
|
|
it('validates polygon and direction-line constraints', () => {
|
|
expect(geometryError(POLYGON, [{ x: 0.1, y: 0.1 }, { x: 0.8, y: 0.1 }, { x: 0.5, y: 0.8 }])).toBe('')
|
|
expect(geometryError(POLYGON, [{ x: 0.1, y: 0.1 }, { x: 0.8, y: 0.8 }, { x: 0.8, y: 0.1 }, { x: 0.1, y: 0.8 }])).toContain('不能交叉')
|
|
expect(geometryError(DIRECTION_LINE, [{ x: 0.2, y: 0.5 }, { x: 0.8, y: 0.5 }], 'forward')).toBe('')
|
|
expect(geometryError(DIRECTION_LINE, [{ x: 0.2, y: 0.5 }], 'forward')).toContain('恰好 2 个点')
|
|
})
|
|
|
|
it('clamps pointer coordinates to the normalized frame', () => {
|
|
expect(clamp(-0.2)).toBe(0)
|
|
expect(clamp(0.4)).toBe(0.4)
|
|
expect(clamp(1.2)).toBe(1)
|
|
})
|
|
})
|