// https://github.com/PAIR-code/umap-js/issues/30#event-2948932514
var UMAP = require('umap-js').UMAP
var d3 = require('d3')
var steps = d3.range(70).reverse()
function rand2dArray(nrows, ncols){
return d3.range(nrows).map(_ => d3.range(ncols).map(Math.random))
}
function testLimitedData(nrows, nNeighbors, isTransform=true){
var umap = new UMAP({nNeighbors})
umap.fit(rand2dArray(nrows, 5))
if (isTransform) umap.transform(rand2dArray(1, 5))
console.log(nrows)
}
// locks up after 60
// steps.forEach(i => testLimitedData(i, 15))
// locks up after 32
// steps.forEach(i => testLimitedData(i, 8))
// locks up after 24
// steps.forEach(i => testLimitedData(i, 6))
// locks up after 16
// steps.forEach(i => testLimitedData(i, 4))
// throws error after 11
steps.forEach(i => testLimitedData(i, 4, false))