Files
dataunits/tests/dataunits_test.v
2025-12-26 02:36:59 +03:00

84 lines
2.7 KiB
V

import dataunits
fn test_convert() {
assert (dataunits.nibble * 4).byte() == 2
assert (dataunits.bit * 8).bit() == 8
assert (dataunits.bit * 8).byte() == 1
assert (dataunits.gib * 10).mib() == 10240
assert (dataunits.gib * 5000).byte() == f64(5368709120000)
assert (dataunits.mbit * 500).kb() == 62500
assert dataunits.convert(500, dataunits.mbit, dataunits.kb) == 62500
assert dataunits.DataSize(4000 * dataunits.gib).byte() == f64(4294967296000)
}
fn test_from_string() {
assert dataunits.from_string('GiB')! == dataunits.gib
assert dataunits.from_string('M')! == dataunits.mb
assert dataunits.from_string('m', case_insensitive: true)! == dataunits.mb
assert dataunits.from_string('M', binary_size: true)! == dataunits.mib
assert dataunits.from_string('M', in_bits: true)! == dataunits.mbit
assert dataunits.from_string('ZeTtAbYtEs', case_insensitive: true)! == dataunits.zb
assert dataunits.from_string('bytes')! == dataunits.byte
assert dataunits.from_string('byte')! == dataunits.byte
assert dataunits.from_string('megabytes')! == dataunits.mb
assert dataunits.from_string('megabyte')! == dataunits.mb
assert dataunits.from_string('exbibit')! == dataunits.eibit
assert dataunits.from_string('Mb')! == dataunits.mbit
assert dataunits.from_string('MB')! == dataunits.mb
assert dataunits.from_string('Mb', case_insensitive: true)! == dataunits.mb
assert dataunits.from_string('Gibit')! == dataunits.gibit
assert dataunits.from_string('gibit', case_insensitive: true)! == dataunits.gibit
assert dataunits.from_string('gIBiT', case_insensitive: true)! == dataunits.gibit
assert dataunits.from_string('Gib', case_insensitive: true)! == dataunits.gib
assert dataunits.from_string('Gib')! == dataunits.gibit
assert dataunits.from_string('k')! == dataunits.kb
assert dataunits.from_string('kB')! == dataunits.kb
assert dataunits.from_string('kb')! == dataunits.kbit
assert dataunits.from_string('Ki')! == dataunits.kib
assert dataunits.from_string('Gi')! == dataunits.gib
}
const units = [
dataunits.bit,
dataunits.nibble,
dataunits.byte,
dataunits.kb,
dataunits.mb,
dataunits.gb,
dataunits.tb,
dataunits.pb,
dataunits.eb,
dataunits.zb,
dataunits.yb,
dataunits.kib,
dataunits.mib,
dataunits.gib,
dataunits.tib,
dataunits.pib,
dataunits.eib,
dataunits.zib,
dataunits.yib,
dataunits.kbit,
dataunits.mbit,
dataunits.gbit,
dataunits.tbit,
dataunits.pbit,
dataunits.ebit,
dataunits.zbit,
dataunits.ybit,
dataunits.kibit,
dataunits.mibit,
dataunits.gibit,
dataunits.tibit,
dataunits.pibit,
dataunits.eibit,
dataunits.zibit,
dataunits.yibit,
]
fn test_from_string_to_string() {
for unit in units {
assert dataunits.from_string(dataunits.to_string(unit)!)! == unit
}
}