--
八、测试
--

  ./gradlew testDebugUnitTest

30 项单元测试（JVM，无需设备），核心是金标准字节向量测试：
用 opendance-web 已通过验收的 TypeScript 实现产出的 239 字节向量，
断言本端 Kotlin 实现逐位相同 -- 这是三端契约一致性的硬证据。

测试报告：app/build/reports/tests/testDebugUnitTest/index.html

--
九、目录结构
--

  settings.gradle.kts / build.gradle.kts   工程与插件配置
  gradle/wrapper/                          Gradle 8.9 wrapper
  project.yaml                             任务清单与状态
  DSH.md                                   本项目 DSH 执行约束
  tasks/                                   单任务说明书（T-AND-001 ~ 009）
  contracts/                               只读契约快照（来源 opendance-web v0.1.0）
  app/src/main/java/com/opendance/studio/
      MainActivity.kt        三页导航
      model/                 239 字节帧编解码 + 33 点拓扑
      camera/                CameraX 采集
      pose/                  MediaPipe 端侧推理
      net/                   WebSocket 推流 + 主机发现
      data/                  设置
      ui/                    连接页 / 运行页 / 关于页
  app/src/main/assets/pose_landmarker_lite.task   MediaPipe 模型
  build/                   打包与验证脚本

--
十、许可
--

本应用代码以 MIT 许可发布。第三方开源项目声明见 THIRD_PARTY.md
（应用内「关于」页同样可查看）。
未使用 SMPL 模型及其衍生拓扑，统一采用 MediaPipe 33 点拓扑。
