import assert from 'node:assert/strict'; import { DepthProcessor } from '../src/depth/DepthProcessor.ts'; function texture(values) { return DepthProcessor.fromNormalizedDepth(new Uint8Array(values), values.length, 1); } const flat = texture(Array(100).fill(128)); assert.deepEqual(DepthProcessor.evidenceRange(flat), [1, 1]); flat.dispose(); const scene = texture([...Array(60).fill(50), ...Array(25).fill(170), ...Array(14).fill(190), 255]); const [start, end] = DepthProcessor.evidenceRange(scene); assert.ok(start < 170 / 255 && end <= 190 / 255, 'face-range depths must contribute below the old 0.8 cutoff; one near outlier must not set the gate'); assert.ok(end > start, 'non-flat evidence range is ordered'); scene.dispose(); for (const nearCount of [10, 60]) { const bimodal = texture([...Array(100 - nearCount).fill(50), ...Array(nearCount).fill(240)]); const [low, high] = DepthProcessor.evidenceRange(bimodal); assert.ok(low < high && high <= 240 / 255, 'two distinct depth layers must not be treated as flat'); bimodal.dispose(); } console.log('Depth histogram: flat disabled, mid-depth foreground retained, sparse near outlier rejected.');