major refactoring of the api

This commit is contained in:
didier amyot committed 2015-03-28 20:53:28 -07:00
1 parent d4f7dc57fc
commit f0628e4682
38 files changed
+821 -367

No files matched your search

+4 -3
View File
@@ -31,8 +31,8 @@ func (wId *DoormanId) AsJson() string {
}
type DoormanDefinition struct {
Id bson.ObjectId `json:"id,omitempty" bson:"_id"`
Name string `json:"name" bson:"name"`
Id bson.ObjectId `json:"id,omitempty" bson:"_id"`
Name string `json:"name" bson:"name"`
Values []*DoormanValue `json:"values" bson:"values"`
}
@@ -71,13 +71,14 @@ func (dmd *DoormanDefinition) ValidateDoormanValueNames() error {
func (dmd *DoormanDefinition) ValidateDoormanValueProbabilities() error {
var sum float64 = 0
for _, w := range dmd.Values {
if p := w.Probability; p < 0-epsilon || p > 1+epsilon {
return errors.New(fmt.Sprintf("doorman value %v is out of range", p))
} else {
sum += p
}
}
if sum < 0-epsilon || sum > 1+epsilon {
if sum < 1-epsilon || sum > 1+epsilon {
return errors.New("the sum of the probability must be 1.0")
}
return nil
+5
View File
@@ -57,6 +57,11 @@ func TestValidate(t *testing.T) {
if err := dmd.Validate(); err.Error() != "the sum of the probability must be 1.0" {
t.Error(err)
}
dmd = &DoormanDefinition{Name: "foo", Values: []*DoormanValue{&DoormanValue{"foo", 0.2}, &DoormanValue{"bar", 0.2}}}
if err := dmd.Validate(); err.Error() != "the sum of the probability must be 1.0" {
t.Error(err)
}
}
func TestAsJson(t *testing.T) {