bazel-lib/lib/tests/strings_tests.bzl

65 lines
1.7 KiB
Python

"""unit tests for string"""
load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest")
load("//lib/private:strings.bzl", "chr", "hex", "ord")
def _ord_test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(env, ord("a"), 97)
asserts.equals(env, ord("b"), 98)
asserts.equals(env, ord("/"), 47)
asserts.equals(env, ord("c"), 99)
asserts.equals(env, ord("x"), 120)
asserts.equals(env, ord("@"), 64)
asserts.equals(env, ord("%"), 37)
asserts.equals(env, ord("$"), 36)
asserts.equals(env, ord("+"), 43)
return unittest.end(env)
ord_test = unittest.make(_ord_test_impl)
def _chr_test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(env, chr(97), "a")
asserts.equals(env, chr(98), "b")
asserts.equals(env, chr(47), "/")
asserts.equals(env, chr(99), "c")
asserts.equals(env, chr(120), "x")
asserts.equals(env, chr(64), "@")
asserts.equals(env, chr(37), "%")
asserts.equals(env, chr(36), "$")
asserts.equals(env, chr(43), "+")
return unittest.end(env)
chr_test = unittest.make(_chr_test_impl)
def _hex_test_impl(ctx):
env = unittest.begin(ctx)
asserts.equals(env, hex(1111), "0x457")
asserts.equals(env, hex(97), "0x61")
asserts.equals(env, hex(1000000000000), "0xe8d4a51000")
asserts.equals(env, hex(1), "0x1")
# https://en.wikipedia.org/wiki/Signed_zero
asserts.equals(env, hex(0), "0x0")
asserts.equals(env, hex(-0), "0x0")
asserts.equals(env, hex(-1234), "-0x4d2")
asserts.equals(env, hex(-99999999), "-0x5f5e0ff")
return unittest.end(env)
hex_test = unittest.make(_hex_test_impl)
def strings_test_suite():
unittest.suite(
"strings_tests",
ord_test,
chr_test,
hex_test,
)