github.com/yaricom/goNEAT@v0.0.0-20210507221059-e2110b885482/experiments/experiment_test.go (about) 1 package experiments 2 3 import ( 4 "testing" 5 "bytes" 6 ) 7 8 func TestExperiment_Write_Read(t *testing.T) { 9 ex := Experiment{Id:1, Name:"Test Encode Decode", Trials:make(Trials, 3)} 10 for i := 0; i < len(ex.Trials); i++ { 11 ex.Trials[i] = *buildTestTrial(i + 1, 10) 12 } 13 14 // Write experiment 15 var buff bytes.Buffer 16 err := ex.Write(&buff) 17 if err != nil { 18 t.Error("Failed to write experiment") 19 } 20 21 // Read experiment 22 data := buff.Bytes() 23 new_ex := Experiment{} 24 err = new_ex.Read(bytes.NewBuffer(data)) 25 if err != nil { 26 t.Error("failed to read experiment") 27 } 28 29 // Deep compare results 30 if ex.Id != new_ex.Id { 31 t.Error("ex.Id != new_ex.Id") 32 } 33 34 if ex.Name != new_ex.Name { 35 t.Error("ex.Name != new_ex.Name") 36 } 37 38 if len(ex.Trials) != len(new_ex.Trials) { 39 t.Error("len(ex.Trials) != len(new_ex.Trials)") 40 return 41 } 42 43 for i := 0; i < len(ex.Trials); i++ { 44 deepCompareTrials(&ex.Trials[i], &new_ex.Trials[i], t) 45 } 46 }