func main() {
	optaln := new(algorithms.OptAli)
	log.Println(optaln.CalculateDistance("SimpleTest", "SimplTest"))

	optaln = new(algorithms.OptAli)
	log.Println(optaln.CalculateDistance("ATCGT", "TGGTG"))

	optaln = new(algorithms.OptAli)
	log.Println(optaln.CalculateDistance("GACTTAC", "CGTGAATTCAT"))

	damleu := new(algorithms.DamLev)
	log.Println(damleu.CalculateDistanceWithAlphabet("SimpleTest", "SimplTest", 20))

	damleu = new(algorithms.DamLev)
	log.Println(damleu.CalculateDistanceWithAlphabet("ATCGT", "TGGTG", 20))

	//gap, missmatchscore, exactscore

	neewun := algorithms.NewNeeWun(-2, 1, 1)
	log.Println(neewun.CalculateDistance("ATCGT", "TGGTG"))

	smiwat := algorithms.NewSmiWat(-4, 3, 5)
	log.Println(smiwat.CalculateDistance("GACTTAC", "CGTGAATTCAT"))

}
func TestCalculateDistanceSmiWat(t *testing.T) {
	smiwat := algorithms.NewSmiWat(-4, 3, 5)
	result := smiwat.CalculateDistance("GACTTAC", "CGTGAATTCAT")
	assert.Equal(t, 6, result, "Calculation for Smith Waterman is not correct!")
}