cast/TEST.md

28 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

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