diff --git a/helpers.go b/helpers.go new file mode 100644 index 0000000..d30251c --- /dev/null +++ b/helpers.go @@ -0,0 +1,53 @@ +package metar + +// InHgTohPa converts "inch of mercury" to "hectopascal" +func InHgTohPa(inHg float64) float64 { + return inHg * 33.8638866667 +} + +// KtsToMs converts "knots" to "meters per second" +func KtsToMs(kts float64) float64 { + return kts * 0.514444 +} + +// KtsToBft converts "knots" to "bft" +func KtsToBft(kts float64) int { + switch { + case kts < 1: + return 0 + case kts < 4: + return 1 + case kts < 7: + return 2 + case kts < 11: + return 3 + case kts < 16: + return 4 + case kts < 22: + return 5 + case kts < 28: + return 6 + case kts < 34: + return 7 + case kts < 41: + return 8 + case kts < 48: + return 9 + case kts < 56: + return 10 + case kts < 64: + return 11 + default: + return 12 + } +} + +// StatMileToKm converts "statute miles" to "kilometers" +func StatMileToKm(sm float64) float64 { + return sm * 1.60934 +} + +// MbTohPa converts "millibar" to "hectopascal" +func MbTohPa(mb float64) float64 { + return mb * 0.1 +} diff --git a/helpers_test.go b/helpers_test.go new file mode 100644 index 0000000..349f88a --- /dev/null +++ b/helpers_test.go @@ -0,0 +1,20 @@ +package metar_test + +import ( + . "github.com/Luzifer/go-metar" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("Helpers", func() { + + It("should convert values into expected results", func() { + Expect(KtsToMs(1)).To(Equal(0.514444)) + Expect(InHgTohPa(1)).To(Equal(33.8638866667)) + Expect(StatMileToKm(1)).To(Equal(1.60934)) + Expect(MbTohPa(1)).To(Equal(0.1)) + Expect(KtsToBft(5)).To(Equal(2)) + }) + +}) diff --git a/metar.go b/metar.go index ee79a02..acf80bb 100644 --- a/metar.go +++ b/metar.go @@ -107,23 +107,3 @@ func FetchCurrentStationWeather(station string) (*Result, error) { return &r.Data.Results[0], nil } - -// InHgTohPa converts "inch of mercury" to "hectopascal" -func InHgTohPa(inHg float64) float64 { - return inHg * 33.8638866667 -} - -// KtsToMs converts "knots" to "meters per second" -func KtsToMs(kts float64) float64 { - return kts * 0.514444 -} - -// StatMileToKm converts "statute miles" to "kilometers" -func StatMileToKm(sm float64) float64 { - return sm * 1.60934 -} - -// MbTohPa converts "millibar" to "hectopascal" -func MbTohPa(mb float64) float64 { - return mb * 0.1 -}