65 lines
1.7 KiB
Python
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,
|
|
)
|