package trans_test import ( "testing" "." "reflect" ) type testData struct { job []string transOutput []byte expectedResults []string } func TestTranslation(t *testing.T) { cases := []testData{ testData{ []string{"actuator", "en", "hu"}, []byte(`működtető noun indítókar actuator, starting lever actuator működtető, beavatkozó, hajtómű, aktuátor, hajtás `), []string{"működtető", "indítókar", "beavatkozó", "hajtómű", "aktuátor", "hajtás"}, }, testData{ []string{"szaxofon", "hu", "en"}, []byte(`saxophone szaxofon saxophone `), []string{"saxophone"}, }, testData{ []string{"cat", "en", "hu"}, []byte(`macska noun macska cat, pussy pletykás nő cat verb felvon hoist, cat cat macska, cica `), []string{"macska", "pletykás nő", "felvon", "cica"}, }, testData{ []string{"méltányosság", "hu", "en"}, []byte(`equity noun equity méltányosság, jogosság fairness méltányosság, szőkeség justness jogosság, méltányosság méltányosság equity, fairness `), []string{"equity", "fairness", "justness"}, }, } for _, data := range cases { j := trans.New(data.job[0], data.job[1], data.job[2]) j.Executor = func(tj trans.TransJob) ([]byte, error) { return data.transOutput, nil } r := j.Translate() if (!reflect.DeepEqual(r, data.expectedResults)) { t.Errorf("\nExpected: '%v'\nActual: '%v'", data.expectedResults, r) } } }