const {test}=require('node:test'); const assert=require('node:assert/strict'); const Datasets=require('./datasets.js'); test('XOR has the requested coordinates and class assignments',()=>{ assert.deepEqual(Datasets.create('xor'),[ {x:0,y:1,label:-1},{x:1,y:0,label:-1}, {x:0,y:0,label:1},{x:1,y:1,label:1}, ]); }); test('presets are repeatable, fit the plot, and contain multiple classes',()=>{ for(const type of ['two_moons','xor','circles','blobs','spirals']){ const points=Datasets.create(type); assert.ok(points.length>0&&points.length<=1500); assert.deepEqual(points,Datasets.create(type)); assert.equal(new Set(points.map(p=>p.label)).size,type==='blobs'?3:2); assert.ok(points.every(p=>Number.isFinite(p.x)&&Number.isFinite(p.y)&&p.x>=0&&p.x<=1&&p.y>=0&&p.y<=1)); } });