package helicopter_usage import "testing" func f64(v float64) *float64 { return &v } func TestApplyManualSummary_SeedBackComputed(t *testing.T) { h := &HelicopterUsage{TotalAirframeHours: 5} // aggregated 5, manual 0 h.ApplyManualSummary(ManualSummaryInput{AirframeHours: f64(6000)}) if h.TotalAirframeHours != 6000 { t.Fatalf("total = %v, want 6000", h.TotalAirframeHours) } if h.ManualAirframeHours != 5995 { t.Fatalf("manual = %v, want 5995 (6000-5)", h.ManualAirframeHours) } } func TestApplyManualSummary_NewFlightAccumulates(t *testing.T) { h := &HelicopterUsage{TotalAirframeHours: 5} h.ApplyManualSummary(ManualSummaryInput{AirframeHours: f64(6000)}) // a new +10h flight raises aggregated from 5 to 15; RefreshAll recomputes Total = aggregated + manual. if got := 15.0 + h.ManualAirframeHours; got != 6010 { t.Fatalf("post-flight total = %v, want 6010", got) } } func TestApplyManualSummary_CccDirectAndNilUntouched(t *testing.T) { h := &HelicopterUsage{TotalEngine1Ccc: 2, TotalLanding: 100} h.ApplyManualSummary(ManualSummaryInput{Engine1Ccc: f64(44)}) if h.TotalEngine1Ccc != 44 { t.Fatalf("ccc = %v, want 44", h.TotalEngine1Ccc) } if h.ManualEngine1GpcNgN1 != 0 || h.TotalLanding != 100 { t.Fatal("nil inputs must leave fields untouched") } }