summaryrefslogtreecommitdiff
path: root/go/food-chain/food_chain_test.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-08-25 12:42:33 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-08-25 12:42:33 +0200
commita06033b5d6a99005d1b6dae1853af39cd52b25bd (patch)
tree488a6dde711dce7673e385412f5911d78d6a80c3 /go/food-chain/food_chain_test.go
parentc460ce761cb29d8d04f302dc6fd62fd0c170bfab (diff)
Food wip
Diffstat (limited to 'go/food-chain/food_chain_test.go')
-rw-r--r--go/food-chain/food_chain_test.go95
1 files changed, 95 insertions, 0 deletions
diff --git a/go/food-chain/food_chain_test.go b/go/food-chain/food_chain_test.go
new file mode 100644
index 0000000..179e9f5
--- /dev/null
+++ b/go/food-chain/food_chain_test.go
@@ -0,0 +1,95 @@
+package foodchain
+
+import (
+ "strings"
+ "testing"
+)
+
+const targetTestVersion = 2
+
+func TestTestVersion(t *testing.T) {
+ if testVersion != targetTestVersion {
+ t.Errorf("Found testVersion = %v, want %v.", testVersion, targetTestVersion)
+ }
+}
+
+var ref = []string{``,
+
+ `I know an old lady who swallowed a fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a spider.
+It wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a bird.
+How absurd to swallow a bird!
+She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a cat.
+Imagine that, to swallow a cat!
+She swallowed the cat to catch the bird.
+She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a dog.
+What a hog, to swallow a dog!
+She swallowed the dog to catch the cat.
+She swallowed the cat to catch the bird.
+She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a goat.
+Just opened her throat and swallowed a goat!
+She swallowed the goat to catch the dog.
+She swallowed the dog to catch the cat.
+She swallowed the cat to catch the bird.
+She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a cow.
+I don't know how she swallowed a cow!
+She swallowed the cow to catch the goat.
+She swallowed the goat to catch the dog.
+She swallowed the dog to catch the cat.
+She swallowed the cat to catch the bird.
+She swallowed the bird to catch the spider that wriggled and jiggled and tickled inside her.
+She swallowed the spider to catch the fly.
+I don't know why she swallowed the fly. Perhaps she'll die.`,
+
+ `I know an old lady who swallowed a horse.
+She's dead, of course!`,
+}
+
+func TestVerse(t *testing.T) {
+ for v := 1; v <= 8; v++ {
+ if ret := Verse(v); ret != ref[v] {
+ t.Fatalf("Verse(%d) =\n%s\n want:\n%s", v, ret, ref[v])
+ }
+ }
+}
+
+func TestVerses(t *testing.T) {
+ if ret, want := Verses(1, 2), ref[1]+"\n\n"+ref[2]; ret != want {
+ t.Fatalf("Verses(1, 2) =\n%s\n want:\n%s", ret, want)
+ }
+
+}
+
+func TestSong(t *testing.T) {
+ if ret, want := Song(), strings.Join(ref[1:], "\n\n"); ret != want {
+ t.Fatalf("Song() =\n%s\n want:\n%s", ret, want)
+ }
+}
+
+func BenchmarkSong(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ Song()
+ }
+}