import { test } from 'uvu'
import { equal } from 'uvu/assert'
import { neq_atom_ } from '../index.js'
test('neq_atom_()()', ()=>{
	const v$ = neq_atom_<number|null|undefined>(1)
	const v_a:any[] = []
	v$.subscribe(v=>v_a.push(v))
	equal(v$(), 1)
	equal(v$._, 1)
	equal(v_a, [1])
	v$.set(2)
	equal(v$(), 2)
	equal(v$._, 2)
	equal(v_a, [1, 2])
	v$.set(2)
	equal(v$._, 2)
	equal(v_a, [1, 2])
	v$.set(3)
	equal(v$._, 3)
	equal(v_a, [1, 2, 3])
	v$.set(0)
	equal(v$._, 0)
	equal(v_a, [1, 2, 3, 0])
	v$.set(null)
	equal(v$._, null)
	equal(v_a, [1, 2, 3, 0, null])
	v$.set(undefined)
	equal(v$._, null)
	equal(v_a, [1, 2, 3, 0, null])
})
test.run()
