Browse Source

K7 mumbling

Frederic G. MARAND 4 years ago
parent
commit
d322595faf

+ 10 - 0
go/.idea/runConfigurations/k7_a_rule_of_divisibility_by_7.xml

@@ -3,6 +3,16 @@
     <module name="codewars" />
     <working_directory value="$PROJECT_DIR$/" />
     <go_parameters value="-i" />
+    <EXTENSION ID="net.ashald.envfile">
+      <option name="IS_ENABLED" value="false" />
+      <option name="IS_SUBST" value="false" />
+      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
+      <option name="IS_IGNORE_MISSING_FILES" value="false" />
+      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
+      <ENTRIES>
+        <ENTRY IS_ENABLED="true" PARSER="runconfig" />
+      </ENTRIES>
+    </EXTENSION>
     <framework value="gotest" />
     <kind value="PACKAGE" />
     <package value="code.osinet.fr/fgm/codewars/kyu7/a_rule_of_divisibility_by_7" />

+ 21 - 0
go/.idea/runConfigurations/k7_mumbling.xml

@@ -0,0 +1,21 @@
+<component name="ProjectRunConfigurationManager">
+  <configuration default="false" name="k7 mumbling" type="GoTestRunConfiguration" factoryName="Go Test">
+    <module name="codewars" />
+    <working_directory value="$PROJECT_DIR$/" />
+    <go_parameters value="-i" />
+    <EXTENSION ID="net.ashald.envfile">
+      <option name="IS_ENABLED" value="false" />
+      <option name="IS_SUBST" value="false" />
+      <option name="IS_PATH_MACRO_SUPPORTED" value="false" />
+      <option name="IS_IGNORE_MISSING_FILES" value="false" />
+      <option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
+      <ENTRIES>
+        <ENTRY IS_ENABLED="true" PARSER="runconfig" />
+      </ENTRIES>
+    </EXTENSION>
+    <framework value="gotest" />
+    <kind value="PACKAGE" />
+    <package value="code.osinet.fr/fgm/codewars/kyu7/mumbling" />
+    <method v="2" />
+  </configuration>
+</component>

+ 15 - 0
go/kyu7/mumbling/k.go

@@ -0,0 +1,15 @@
+package kata
+
+import (
+	"strings"
+	"unicode"
+)
+
+func Accum(s string) string {
+	var sl []string
+	for i, r := range s {
+		s = string(unicode.ToUpper(r))
+		sl = append(sl, s + strings.Repeat(string(unicode.ToLower(r)), i))
+	}
+	return strings.Join(sl, "-")
+}

+ 24 - 0
go/kyu7/mumbling/k_test.go

@@ -0,0 +1,24 @@
+package kata_test
+
+import (
+	. "github.com/onsi/ginkgo"
+	. "github.com/onsi/gomega"
+
+	. "code.osinet.fr/fgm/codewars/kyu7/mumbling"
+)
+
+func dotest(s string, exp string) {
+	var ans = Accum(s)
+	Expect(ans).To(Equal(exp))
+}
+
+var _ = Describe("Test Example", func() {
+
+	It("should handle basic cases", func() {
+		dotest("ZpglnRxqenU", "Z-Pp-Ggg-Llll-Nnnnn-Rrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnn-Uuuuuuuuuuu")
+		dotest("NyffsGeyylB", "N-Yy-Fff-Ffff-Sssss-Gggggg-Eeeeeee-Yyyyyyyy-Yyyyyyyyy-Llllllllll-Bbbbbbbbbbb")
+		dotest("MjtkuBovqrU", "M-Jj-Ttt-Kkkk-Uuuuu-Bbbbbb-Ooooooo-Vvvvvvvv-Qqqqqqqqq-Rrrrrrrrrr-Uuuuuuuuuuu")
+		dotest("EvidjUnokmM", "E-Vv-Iii-Dddd-Jjjjj-Uuuuuu-Nnnnnnn-Oooooooo-Kkkkkkkkk-Mmmmmmmmmm-Mmmmmmmmmmm")
+		dotest("HbideVbxncC", "H-Bb-Iii-Dddd-Eeeee-Vvvvvv-Bbbbbbb-Xxxxxxxx-Nnnnnnnnn-Cccccccccc-Ccccccccccc")
+	})
+})

+ 13 - 0
go/kyu7/mumbling/mumbling_suite_test.go

@@ -0,0 +1,13 @@
+package kata_test
+
+import (
+	"testing"
+
+	. "github.com/onsi/ginkgo"
+	. "github.com/onsi/gomega"
+)
+
+func TestMumbling(t *testing.T) {
+	RegisterFailHandler(Fail)
+	RunSpecs(t, "Mumbling Suite")
+}