import { expect, test } from "vitest" import { booleanAnd, booleanComplement, booleanFrom, booleanIsFalsy, booleanIsTruthy, booleanNand, booleanNor, booleanNot, booleanOr, booleanXnor, booleanXor, } from "#Source/basic/index.ts" test("boolean converts values", () => { expect(booleanFrom(1)).toBe(true) expect(booleanFrom(0)).toBe(false) expect(booleanFrom("")).toBe(false) }) test("booleanNot inverts values", () => { expect(booleanNot(true)).toBe(false) expect(booleanNot(0)).toBe(true) }) test("booleanAnd performs logical AND", () => { expect(booleanAnd(true, 1)).toBe(true) expect(booleanAnd(true, 0)).toBe(false) }) test("booleanOr performs logical OR", () => { expect(booleanOr(false, "a")).toBe(true) expect(booleanOr(false, 0)).toBe(false) }) test("booleanNand performs logical NAND", () => { expect(booleanNand(true, true)).toBe(false) expect(booleanNand(true, 0)).toBe(true) }) test("booleanNor performs logical NOR", () => { expect(booleanNor(false, 0)).toBe(true) expect(booleanNor(true, false)).toBe(false) }) test("booleanXor performs logical XOR", () => { expect(booleanXor(true, false)).toBe(true) expect(booleanXor(true, 1)).toBe(false) }) test("booleanXnor performs logical XNOR", () => { expect(booleanXnor(true, true)).toBe(true) expect(booleanXnor(true, 0)).toBe(false) }) test("booleanComplement inverts predicate result", () => { const isEven = (value: number): boolean => value % 2 === 0 const isOdd = booleanComplement(isEven) expect(isOdd(3)).toBe(true) expect(isOdd(4)).toBe(false) }) test("booleanIsTruthy checks truthy values", () => { expect(booleanIsTruthy("ok")).toBe(true) expect(booleanIsTruthy("")).toBe(false) }) test("booleanIsFalsy checks falsy values", () => { expect(booleanIsFalsy(0)).toBe(true) expect(booleanIsFalsy("0")).toBe(false) })