cast/TEST.md

29 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 测试报告 (Test Report)
## 覆盖场景 (Coverage Scenarios)
- **语义化转换**: `To[T]``As[T]` 覆盖基础类型、Slice、Map 及智能 JSON 自动穿透转换。
- **核心类型转换**: `Int64`, `Uint64`, `Float64`, `Bool`, `String`,包括边界值、零值及非法字符串输入。
- **容器处理**: `ToMap`, `AsMap`, `ToSlice`, `AsSlice` 等泛型工具,支持 Struct 拍平与 KV 序列化。
- **JSON 序列化**:
- 深度结构体映射,支持 `FastEncoder` 单路径处理。
- **去标签化算法**: 自动识别 `UserID` -> `userID` 等符合工程习惯的转换。
- **脱敏支持**: `ToJSONDesensitize` 在编码阶段原生支持字段脱敏。
- **Map 兼容性**: 原生支持 `map[any]any` 及 Goja 伪数组转换。
- **JSON 构建**:
- **As 系列**: 实现泛型零摩擦构建新对象。
- **FastDecoder**: 实现单路径流式解析,跳过中间 Map 分配。
- **Frictionless 匹配**: 支持大小写不敏感、忽略下划线等灵活的 Key 映射规则。
- **智能初始化**: 自动处理嵌套指针、Slice 和 Map 的初始化。
- **指针与接口**: `RealValue` 处理多级指针与接口解包。
- **高性能实用函数**: `UniqueAppend` ($O(n)$ 去重)`If` (泛型三元)`SplitArgs` (支持引用格式)。
## 性能基准 (Benchmark Results - Intel(R) Core(TM) i9)
- `If`: ~0.24 ns/op
- `Int64`: ~20 ns/op
- `ToMap`: ~725 ns/op (含 Struct 拍平与类型转换)
- `ToSlice`: ~1700 ns/op (含 Map Key 排序稳定化处理)
- `ToJSON (SimpleStruct)`: ~450 ns/op
- `ToJSON (DirtyMap)`: ~1100-1200 ns/op
- `UnmarshalJSON`: 高性能单路径解析,显著降低内存分配。
- `UniqueAppend`: 大数据量下的 $O(n)$ 时间复杂度。