Skip to content

[Lane 3 · android] Precision/Recall/F1 — Android target parity check (enable host tests for skainet-backend-cpu) #1230

Open

Description

@michalharakal

Sub-issue of #1222 (Precision, Recall and F1Score metrics).

Lane: 3 · Platform verification · Android
Skill needed: Android build tooling — running a Kotlin Multiplatform module's tests on this target. No tensor-internals or metrics knowledge required. The code under test is pure commonMain Kotlin over Double counters; this is a smoke check, not new implementation.
Size: s (~1–2 h — see Notes: host tests are not enabled for this module yet, so the first step is a small build change)
Blocked by: #1229 (F1Score merged to develop), or check out its branch early.

What to do

  1. Check whether skainet-backends/skainet-backend-cpu runs commonTest on the Android
    target at all. As of today it does not: ./gradlew :skainet-backends:skainet-backend-cpu:tasks --all
    warns "The commonTest source directory exists, but android host tests are not
    enabled. To enable android host tests, add withHostTest {} to your android target
    configuration"
    and lists no Android test task.
  2. Add withHostTest {} to the module's Android target configuration (the
    com.android.kotlin.multiplatform.library plugin, applied via sk.ainet.multiplatform
    / libs.plugins.androidMultiplatformLibrary — check whether it belongs in the
    convention plugin under build-logic/convention/ so every module gets it, and say
    which you chose in the PR).
  3. Run the resulting host-test task (something like
    ./gradlew :skainet-backends:skainet-backend-cpu:testAndroidHostTest — take the name
    from the task list) and, if you have a device or emulator, the instrumented variant too.

Then, in every case:

  • Confirm the metric tests (sk.ainet.exec.metrics.*) pass and the values match the JVM run
    bit-for-bit — pure Long counting and Double division, so any drift is itself a finding.
  • Report on [Feature]: Precision, Recall and F1Score metrics #1222: target, toolchain versions, pass/fail, wall-clock, anything
    target-specific you hit (an expect/actual gap, a disabled test source set, a task
    that doesn't exist).

Acceptance

Notes

Enabling host tests may surface other failing tests in commonTest that have never run
on Android before. If so, that is a real finding: report the list on the parent and open
one bug for it; do not try to fix them in this PR. The kmp / Android conventions live
in build-logic/convention/ — see Explanation → Android NEON kernels via JNI for how
the Android target is wired.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    codingImplementation task (DARC: C)good first issueGood for newcomers; no prior SKaiNET codebase knowledge assumedplatformPlatform support (WASM, JVM, native)size:sA few hoursskill:androidAndroid target/build/kernel worksub-issueSub-issue of a tracking issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions