Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.
You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.
A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.
Add new test case
module ExampleSpec where -- Tests can be written using Hspec http://hspec.github.io/ -- Replace this with your own tests. import Test.Hspec import ToUpperFirst -- `spec` of type `Spec` must exist spec :: Spec spec = do describe "toUpperFirst" $ do it "should capitalize first character of a string" $ do toUpperFirst "" `shouldBe` "" toUpperFirst "finn the human" `shouldBe` "Finn the human" toUpperFirst "alice" `shouldBe` "Alice" toUpperFirst "Joe" `shouldBe` "Joe" -- the following line is optional for 8.2 main = hspec spec
- module ExampleSpec where
- -- Tests can be written using Hspec http://hspec.github.io/
- -- Replace this with your own tests.
- import Test.Hspec
- import ToUpperFirst
- -- `spec` of type `Spec` must exist
- spec :: Spec
- spec = do
- describe "toUpperFirst" $ do
it "capitalize first character of a string" $ do- it "should capitalize first character of a string" $ do
- toUpperFirst "" `shouldBe` ""
- toUpperFirst "finn the human" `shouldBe` "Finn the human"
- toUpperFirst "alice" `shouldBe` "Alice"
- toUpperFirst "Joe" `shouldBe` "Joe"
- -- the following line is optional for 8.2
- main = hspec spec
add a new test case
module NumberPrintSpec where import Test.Hspec import NumberPrint spec :: Spec spec = do describe "Tests" $ do it "Fixed Tests" $ do numberprint 1 `shouldBe` 1 numberprint 2 `shouldBe` 121 numberprint 4 `shouldBe` 1234321 numberprint 10 `shouldBe` 12345678910987654321 numberprint 12 `shouldBe` 1234567891011121110987654321 numberprint 15 `shouldBe` 1234567891011121314151413121110987654321 main = hspec spec
- module NumberPrintSpec where
- import Test.Hspec
- import NumberPrint
- spec :: Spec
- spec = do
- describe "Tests" $ do
- it "Fixed Tests" $ do
- numberprint 1 `shouldBe` 1
- numberprint 2 `shouldBe` 121
- numberprint 4 `shouldBe` 1234321
- numberprint 10 `shouldBe` 12345678910987654321
- numberprint 12 `shouldBe` 1234567891011121110987654321
- numberprint 15 `shouldBe` 1234567891011121314151413121110987654321
- main = hspec spec
update tests
module AreThereThreeSpec where import Test.Hspec import AreThereThree spec :: Spec spec = do describe "Tests" $ do it "should return True if contains 3" $ do solution 354523 `shouldBe` True solution 35 `shouldBe` True it "should return False if doesn't contain 3" $ do solution 1 `shouldBe` False solution 264568 `shouldBe` False main = hspec spec
- module AreThereThreeSpec where
- import Test.Hspec
- import AreThereThree
- spec :: Spec
- spec = do
- describe "Tests" $ do
it "Fixed Tests" $ dosolution 525458 `shouldBe` Falsesolution 2222 `shouldBe` False- it "should return True if contains 3" $ do
- solution 354523 `shouldBe` True
- solution 35 `shouldBe` True
- it "should return False if doesn't contain 3" $ do
- solution 1 `shouldBe` False
- solution 264568 `shouldBe` False
- main = hspec spec
module Sum (Sum.sum) where import Prelude hiding (sum) sum :: [Word] -> Word sum xs | null xs = 0 | otherwise = foldr1 (+) xs
- module Sum (Sum.sum) where
- import Prelude hiding (sum)
- sum :: [Word] -> Word
sum xs = if xs == [] then 0 else foldr1 (+) xs- sum xs | null xs = 0 | otherwise = foldr1 (+) xs
Another one thread using 'deque' method
from collections import deque def reverse_string(string): reversed_str = deque("") [reversed_str.appendleft(letter) for letter in string] return "".join(reversed_str)
- from collections import deque
- def reverse_string(string):
return string[::-1]- reversed_str = deque("")
- [reversed_str.appendleft(letter) for letter in string]
- return "".join(reversed_str)
from collections import deque def test(): dequedStr = deque("test") return ''.join([dequedStr.popleft() for x in range(len(dequedStr))])
from itertools import compress- from collections import deque
- def test():
string = "letters inside a string"digits = [0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0]result = compress(string, digits)return ''.join(list(result))- dequedStr = deque("test")
- return ''.join([dequedStr.popleft() for x in range(len(dequedStr))])