Sha256: fb94a2e48d04175f5ae0c9e3a8f8afd7c9f828ee1b4d6928dabd3a80ec5b7f1e

Contents?: true

Size: 620 Bytes

Versions: 274

Compression:

Stored size: 620 Bytes

Contents

package allergies

import "math"

const testVersion = 1

var allergens = []string{"eggs", "peanuts", "shellfish", "strawberries", "tomatoes", "chocolate", "pollen", "cats"}

func Allergies(i uint) (result []string) {
	for _, v := range allergens {
		if AllergicTo(i, v) {
			result = append(result, []string{v}...)
		}
	}
	return result
}

func AllergicTo(i uint, allergen string) bool {
	index := indexOf(allergens, allergen)
	x := uint(math.Pow(2.0, float64(index)))
	return (i & x) > 0
}

func indexOf(slice []string, string string) int {
	for p, v := range slice {
		if v == string {
			return p
		}
	}
	return -1
}

Version data entries

274 entries across 274 versions & 1 rubygems

Version Path
trackler-2.2.1.56 tracks/go/exercises/allergies/example.go
trackler-2.2.1.55 tracks/go/exercises/allergies/example.go
trackler-2.2.1.54 tracks/go/exercises/allergies/example.go
trackler-2.2.1.53 tracks/go/exercises/allergies/example.go
trackler-2.2.1.52 tracks/go/exercises/allergies/example.go
trackler-2.2.1.51 tracks/go/exercises/allergies/example.go
trackler-2.2.1.50 tracks/go/exercises/allergies/example.go
trackler-2.2.1.49 tracks/go/exercises/allergies/example.go
trackler-2.2.1.48 tracks/go/exercises/allergies/example.go
trackler-2.2.1.47 tracks/go/exercises/allergies/example.go
trackler-2.2.1.46 tracks/go/exercises/allergies/example.go
trackler-2.2.1.45 tracks/go/exercises/allergies/example.go
trackler-2.2.1.44 tracks/go/exercises/allergies/example.go
trackler-2.2.1.43 tracks/go/exercises/allergies/example.go
trackler-2.2.1.42 tracks/go/exercises/allergies/example.go
trackler-2.2.1.41 tracks/go/exercises/allergies/example.go
trackler-2.2.1.40 tracks/go/exercises/allergies/example.go
trackler-2.2.1.39 tracks/go/exercises/allergies/example.go
trackler-2.2.1.38 tracks/go/exercises/allergies/example.go
trackler-2.2.1.37 tracks/go/exercises/allergies/example.go