package financial import ( "testing" ) func TestDefaultConfig(t *testing.T) { config := DefaultConfig() if config == nil { t.Fatal("DefaultConfig() returned nil") } // Check default values if config.DefaultDiscountRate != 0.08 { t.Errorf("DefaultDiscountRate = %v, want 0.08", config.DefaultDiscountRate) } if config.DefaultProjectLife != 10 { t.Errorf("DefaultProjectLife = %v, want 10", config.DefaultProjectLife) } if config.GridEmissionFactor != 0.3 { t.Errorf("GridEmissionFactor = %v, want 0.3", config.GridEmissionFactor) } if config.OpexPctOfCapex != 0.03 { t.Errorf("OpexPctOfCapex = %v, want 0.03", config.OpexPctOfCapex) } } // Config validation not implemented - no Validate method exists func TestNewCalculator(t *testing.T) { config := DefaultConfig() calc := NewCalculator(config) if calc == nil { t.Error("NewCalculator() returned nil") } // Test that we can call methods data := &ResourceFlowData{ ResourceType: "heat", DistanceKm: 10.0, AnnualVolume: 1000.0, CostIn: 100.0, CostOut: 20.0, } assumptions := &EconomicAssumptions{ DiscountRate: 0.08, ProjectLifeYears: 10, } result, err := calc.Calculate(AnalysisTypeBasic, data, assumptions) if err != nil { t.Fatalf("Calculate() error = %v", err) } if result == nil { t.Error("Calculate() returned nil result") } }