package solar import "testing" // A trimmed sample of the real N0NBH hamqsl.com solarxml.php document. const sampleXML = ` N0NBH 08 Jul 2025 2100 GMT 170 5 2 C1.5 150 QUIET 18.5 ` func TestParseSolar(t *testing.T) { d, err := parseSolar([]byte(sampleXML)) if err != nil { t.Fatalf("parse: %v", err) } if !d.OK { t.Fatalf("expected OK") } checks := map[string]string{ "SFI": d.SFI, "SSN": d.SSN, "A": d.AIndex, "K": d.KIndex, "XRay": d.XRay, "Geomag": d.GeomagField, "Source": d.Source, } want := map[string]string{ "SFI": "170", "SSN": "150", "A": "5", "K": "2", "XRay": "C1.5", "Geomag": "QUIET", "Source": "N0NBH", } for k, got := range checks { if got != want[k] { t.Errorf("%s = %q, want %q", k, got, want[k]) } } } func TestParseSolarBadXML(t *testing.T) { if _, err := parseSolar([]byte("not xml")); err == nil { t.Fatalf("expected an error for non-XML input") } }