///|
fn main {
try {
// Materials: instrument percentages -> balance scores -> inverse audit.
let materials = @coda.dataset(
["sand", "silt", "clay"],
["lot1", "lot2", "lot3", "lot4"],
[
[60.0, 30.0, 10.0],
[55.0, 30.0, 15.0],
[10.0, 30.0, 60.0],
[15.0, 35.0, 50.0],
],
)
let b = @coda.sbp_basis([[1, 1, -1], [1, -1, 0]])
let coordinates = materials.ilr_rows(b)
let restored = @coda.ilr_inverse(coordinates[0], b)
assert_true(@coda.distance(restored, materials.rows()[0]) < 1.0e-9)
println("materials: balance/inverse audit passed")
// Analytics: named mixture matrix -> PCA -> reconstruction and clustering.
let model = @coda.pca(materials, 2)
let rebuilt = model.reconstruct(model.transform(materials))
assert_true(@coda.distance(rebuilt[1], materials.rows()[1]) < 1.0e-9)
let clusters = @coda.kmeans(materials, 2)
assert_true(clusters.converged())
assert_eq(clusters.assignments()[0], clusters.assignments()[1])
assert_eq(clusters.assignments()[2], clusters.assignments()[3])
println("analytics: PCA reconstruction and clustering passed")
// Telemetry: train on resource shares -> score separate named observations.
let baseline = @coda.dataset(["cpu", "io", "idle"], ["t1", "t2", "t3"], [
[20.0, 30.0, 50.0],
[21.0, 29.0, 50.0],
[19.0, 31.0, 50.0],
])
let incoming = @coda.dataset(["cpu", "io", "idle"], ["normal", "shift"], [
[20.0, 30.0, 50.0],
[80.0, 10.0, 10.0],
])
let detector = @coda.gaussian(baseline, 0.01)
let scores = detector.squared_mahalanobis(incoming)
assert_true(scores[1] > scores[0])
assert_eq(detector.rank(incoming)[0], 1)
println("telemetry: held-out ILR scoring passed")
} catch {
e => {
println("workflow failed: \{e}")
panic()
}
}
}