diff options
| author | Lance Wicks <lw@judocoach.com> | 2021-07-08 17:00:30 +0100 |
|---|---|---|
| committer | Lance Wicks <lw@judocoach.com> | 2021-07-08 17:00:30 +0100 |
| commit | f508952ad389f2f4fe9a33d7393cfbee19843cf4 (patch) | |
| tree | 7cedf8c789c0da554bd0f67c061fdb5fdb0b8ffe /challenge-120 | |
| parent | 265753075d0882cafc5b21312a7fe5b4e3590a60 (diff) | |
| download | perlweeklychallenge-club-f508952ad389f2f4fe9a33d7393cfbee19843cf4.tar.gz perlweeklychallenge-club-f508952ad389f2f4fe9a33d7393cfbee19843cf4.tar.bz2 perlweeklychallenge-club-f508952ad389f2f4fe9a33d7393cfbee19843cf4.zip | |
Task 2 in go
Diffstat (limited to 'challenge-120')
| -rw-r--r-- | challenge-120/lance-wicks/golang/bits/bits.go (renamed from challenge-120/lance-wicks/golang/bits.go) | 0 | ||||
| -rw-r--r-- | challenge-120/lance-wicks/golang/bits/bits_test.go (renamed from challenge-120/lance-wicks/golang/bits_test.go) | 0 | ||||
| -rw-r--r-- | challenge-120/lance-wicks/golang/clocks/clock.go | 36 | ||||
| -rw-r--r-- | challenge-120/lance-wicks/golang/clocks/clock_test.go | 23 |
4 files changed, 59 insertions, 0 deletions
diff --git a/challenge-120/lance-wicks/golang/bits.go b/challenge-120/lance-wicks/golang/bits/bits.go index 3448a13786..3448a13786 100644 --- a/challenge-120/lance-wicks/golang/bits.go +++ b/challenge-120/lance-wicks/golang/bits/bits.go diff --git a/challenge-120/lance-wicks/golang/bits_test.go b/challenge-120/lance-wicks/golang/bits/bits_test.go index 6fa1388c32..6fa1388c32 100644 --- a/challenge-120/lance-wicks/golang/bits_test.go +++ b/challenge-120/lance-wicks/golang/bits/bits_test.go diff --git a/challenge-120/lance-wicks/golang/clocks/clock.go b/challenge-120/lance-wicks/golang/clocks/clock.go new file mode 100644 index 0000000000..7a3001b93c --- /dev/null +++ b/challenge-120/lance-wicks/golang/clocks/clock.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "os" + "strconv" + "strings" +) + +func main() { + fmt.Print("Output: ") + fmt.Println(angle(os.Args[1])) +} + +func angle(s string) float64 { + parts := strings.Split(s, ":") + angleH := hourAngle(parts[0], parts[1]) + angleM := minuteAngle(parts[0], parts[1]) + + return angleH - angleM +} + +func hourAngle(h string, m string) float64 { + hour, _ := strconv.ParseFloat(h, 32) + min, _ := strconv.ParseFloat(m, 32) + + angle := ((hour * 60) + min) * .5 + return angle +} + +func minuteAngle(h string, m string) float64 { + min, _ := strconv.ParseFloat(m, 32) + + angle := (6 * min) + return angle +} diff --git a/challenge-120/lance-wicks/golang/clocks/clock_test.go b/challenge-120/lance-wicks/golang/clocks/clock_test.go new file mode 100644 index 0000000000..a846ca4afc --- /dev/null +++ b/challenge-120/lance-wicks/golang/clocks/clock_test.go @@ -0,0 +1,23 @@ +package main + +import ( + "github.com/stretchr/testify/assert" + "testing" +) + +func TestAngle(t *testing.T) { + assert.Equal(t, float64(35), angle("03:10"), "Example 1") + assert.Equal(t, float64(120), angle("04:00"), "Example 2") +} + +func TestHoursAngle(t *testing.T) { + expect := float64(((3 * 60) + 10) * .5) + got := hourAngle("03", "10") + assert.Equal(t, expect, got, "Example 1") +} + +func TestMinuteAngle(t *testing.T) { + expect := float64(6 * 10) + got := minuteAngle("03", "10") + assert.Equal(t, expect, got, "Example 1") +} |
