import { test } from "node:test";
import assert from "node:assert/strict";
import { valorDeAjuste } from "./ajustes.ts";

test("acepta enteros, decimales con punto o coma y negativos, sin tocar los dígitos", () => {
  assert.equal(valorDeAjuste("12"), "12");
  assert.equal(valorDeAjuste(" 12.50 "), "12.50");
  assert.equal(valorDeAjuste("12,50"), "12.50");
  assert.equal(valorDeAjuste("-2.25"), "-2.25");
  assert.equal(valorDeAjuste("0.000001"), "0.000001");
  assert.equal(valorDeAjuste("999999999999.123456"), "999999999999.123456");
});

test("rechaza lo ambiguo o que no cabe", () => {
  for (const malo of ["", "abc", "1e3", "1,250.00", "1.2.3", "0.1234567", "12.", ".5", "--1", "1 2"]) {
    assert.equal(valorDeAjuste(malo), null, malo);
  }
});

test("cero no es un ajuste", () => {
  for (const cero of ["0", "-0", "0.00", "0,000"]) assert.equal(valorDeAjuste(cero), null, cero);
});
