46 lines
1.4 KiB
Markdown
46 lines
1.4 KiB
Markdown
|
|
# Testing @go/vision
|
||
|
|
|
||
|
|
`go/vision` 拥有完善的单元测试覆盖,确保在各种图像处理场景下的稳定性。
|
||
|
|
|
||
|
|
## 运行测试
|
||
|
|
|
||
|
|
在 `vision` 目录下运行标准 Go 测试命令:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
go test -v .
|
||
|
|
```
|
||
|
|
|
||
|
|
## 测试覆盖范围
|
||
|
|
|
||
|
|
* **Canvas & Drawing**: 验证基础绘图、颜色解析、图层叠加等功能。
|
||
|
|
* **Intelligence**:
|
||
|
|
* `QRCode`: 验证二维码的生成与识别一致性。
|
||
|
|
* `Barcode`: 验证条形码 (Code128, UPC) 的生成与识别。
|
||
|
|
* `PHash`: 验证相似图片的指纹距离计算。
|
||
|
|
* **Captcha**: 验证图形验证码的生成。
|
||
|
|
* **Transform**: 验证缩放、旋转以及复杂的 `WarpPerspective` 透视变换。
|
||
|
|
* **Animation**: 验证 GIF 序列的合成。
|
||
|
|
|
||
|
|
## 视觉回归测试
|
||
|
|
|
||
|
|
部分测试会生成临时的图片文件(如 `test.png`, `captcha.png`),测试脚本会自动清理这些文件。在开发新滤镜或绘图功能时,建议手动查看生成的图片以确保视觉效果符合预期。
|
||
|
|
|
||
|
|
## 性能基准测试
|
||
|
|
|
||
|
|
可以使用以下命令运行基准测试:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
go test -bench .
|
||
|
|
```
|
||
|
|
|
||
|
|
以下是在 Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz 环境下的基准测试结果:
|
||
|
|
|
||
|
|
| 测试项 | 耗时 (ns/op) |
|
||
|
|
| :--- | :--- |
|
||
|
|
| **WarpPerspective** | 7,079,540 |
|
||
|
|
| **PHash** | 958,618 |
|
||
|
|
| **ExtractPalette** | 402,176 |
|
||
|
|
|
||
|
|
---
|
||
|
|
所有测试均遵循 `@go` 基础设施标准,无外部系统依赖(除 FFmpeg 视频测试外,该部分会自动跳过或提示引导)。
|