aboutsummaryrefslogtreecommitdiff
path: root/challenge-120
diff options
context:
space:
mode:
authorLance Wicks <lw@judocoach.com>2021-07-08 17:00:30 +0100
committerLance Wicks <lw@judocoach.com>2021-07-08 17:00:30 +0100
commitf508952ad389f2f4fe9a33d7393cfbee19843cf4 (patch)
tree7cedf8c789c0da554bd0f67c061fdb5fdb0b8ffe /challenge-120
parent265753075d0882cafc5b21312a7fe5b4e3590a60 (diff)
downloadperlweeklychallenge-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.go36
-rw-r--r--challenge-120/lance-wicks/golang/clocks/clock_test.go23
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")
+}