32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
|
|
import { describe, expect, it } from 'vitest'
|
||
|
|
|
||
|
|
import { createSimulatedWaveformData } from './simulatedWaveforms'
|
||
|
|
|
||
|
|
describe('simulated waveform data', () => {
|
||
|
|
it('creates deterministic, finite six-channel data', () => {
|
||
|
|
const first = createSimulatedWaveformData()
|
||
|
|
const second = createSimulatedWaveformData()
|
||
|
|
|
||
|
|
expect(first).toEqual(second)
|
||
|
|
expect(first.kind).toBe('series')
|
||
|
|
if (first.kind !== 'series') return
|
||
|
|
|
||
|
|
expect(first.series).toHaveLength(6)
|
||
|
|
expect(new Set(first.series.map((series) => series.id)).size).toBe(6)
|
||
|
|
first.series.forEach((series) => {
|
||
|
|
expect(series.data.kind).toBe('points')
|
||
|
|
if (series.data.kind !== 'points') return
|
||
|
|
expect(series.data.points).toHaveLength(1_000)
|
||
|
|
expect(series.data.points[0]?.x).toBe(-5)
|
||
|
|
expect(series.data.points.at(-1)?.x).toBe(5)
|
||
|
|
series.data.points.forEach((point) => {
|
||
|
|
expect(Number.isFinite(point.x)).toBe(true)
|
||
|
|
expect(Number.isFinite(point.y)).toBe(true)
|
||
|
|
if (point.error !== undefined) expect(point.error).toBeGreaterThanOrEqual(0)
|
||
|
|
if (point.lowerError !== undefined) expect(point.lowerError).toBeGreaterThanOrEqual(0)
|
||
|
|
if (point.upperError !== undefined) expect(point.upperError).toBeGreaterThanOrEqual(0)
|
||
|
|
})
|
||
|
|
})
|
||
|
|
})
|
||
|
|
})
|