adjust ai insight and seed data

This commit is contained in:
Alberto-Audrix committed 2026-09-18 11:34:07 +07:00
1 parent 68e0d1a0bb
commit a2b5b10977
18 files changed
+1835 -140

No files matched your search

@@ -30,7 +30,7 @@ describe('buildDashboardInsightMetrics', () => {
iot_weight: 1400,
mortality_total: 500,
harvest_total: 100,
harvest_weight_total: 150.5,
harvest_weight_total: 150_500, // grams
feed_total: 400,
},
],
@@ -45,7 +45,7 @@ describe('buildDashboardInsightMetrics', () => {
expect(metrics.hari_ke).toBe(28);
expect(metrics.fcr).toBe(1.55);
expect(metrics.eef).toBe(260);
expect(metrics.ayam_hidup_ekor).toBe(9500);
expect(metrics.ayam_hidup_ekor).toBe(9400); // 9500 life − 100 harvest
expect(metrics.mortalitas_kumulatif_persen).toBe(5);
expect(metrics.bobot_avg_gram).toBe(1400);
expect(metrics.doc_in_ekor).toBe(10000);
@@ -108,7 +108,7 @@ describe('scopeDashboardInsightMetrics', () => {
iot_weight: 450,
mortality_total: 200,
harvest_total: 50,
harvest_weight_total: 80,
harvest_weight_total: 80_000, // grams
feed_total: 90,
},
],
+85
View File
@@ -0,0 +1,85 @@
import { describe, expect, it } from 'vitest';
import {
buildEndCycleRollups,
type DashboardInsightMetrics,
} from '../insightContextBuilders.ts';
const baseMetrics = (): DashboardInsightMetrics => ({
hari_ke: 21,
fcr: 1.45,
eef: 280,
ayam_hidup_ekor: 9000,
mortalitas_kumulatif_persen: 4.2,
bobot_avg_gram: 900,
doc_in_ekor: 10000,
kematian_kumulatif_ekor: 420,
panen_kumulatif_ekor: 0,
tonase_panen_kg: 0,
uniformity_persen: 78,
pakan_kumulatif_karung: 400,
weightSeries: [],
kpiSeries: [
{
hari: 7,
fcr: 0.9,
eef: null,
ayam_hidup_ekor: 9800,
mortalitas_kumulatif_persen: 1.5,
bobot_avg_gram: 180,
kematian_kumulatif_ekor: 150,
panen_kumulatif_ekor: 0,
tonase_panen_kg: 0,
uniformity_persen: 85,
pakan_kumulatif_karung: 80,
},
{
hari: 14,
fcr: 1.1,
eef: null,
ayam_hidup_ekor: 9600,
mortalitas_kumulatif_persen: 3.0,
bobot_avg_gram: 450,
kematian_kumulatif_ekor: 300,
panen_kumulatif_ekor: 0,
tonase_panen_kg: 0,
uniformity_persen: 82,
pakan_kumulatif_karung: 180,
},
{
hari: 21,
fcr: 1.45,
eef: null,
ayam_hidup_ekor: 9000,
mortalitas_kumulatif_persen: 4.2,
bobot_avg_gram: 900,
kematian_kumulatif_ekor: 420,
panen_kumulatif_ekor: 0,
tonase_panen_kg: 0,
uniformity_persen: 78,
pakan_kumulatif_karung: 400,
},
],
});
describe('buildEndCycleRollups', () => {
it('builds weekly mortality deltas and phase buckets', () => {
const rollups = buildEndCycleRollups(baseMetrics(), [
{
date: '2026-01-05',
hari: 5,
avg_temp_C: 28,
avg_humidity_pct: 60,
sample_count: 10,
hours_temp_below: 8,
hours_humidity_above: 0,
},
]);
expect(rollups.weekly_summaries).toHaveLength(3);
expect(rollups.weekly_summaries[0]?.mortalitas_delta_persen).toBe(1.5);
expect(rollups.weekly_summaries[1]?.mortalitas_delta_persen).toBe(1.5);
expect(rollups.weekly_summaries[0]?.jam_suhu_di_bawah_standar).toBe(8);
expect(rollups.phase_summaries.brooding?.mortalitas_delta_persen).toBe(3);
expect(rollups.mati_ekor).toBe(420);
});
});