diff --git a/datok_test.go b/datok_test.go
index 8562a98..8130690 100644
--- a/datok_test.go
+++ b/datok_test.go
@@ -210,7 +210,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 	assert.NotNil(dat)
 	assert.True(dat.LoadFactor() >= 60)
@@ -239,10 +239,10 @@
 
 func XTestDoubleArrayFullTokenizerBuild(t *testing.T) {
 	assert := assert.New(t)
-	tok := LoadFomaFile("testdata/tokenizer.fst")
+	tok := LoadFomaFile("testdata/tokenizer_de.fst")
 	dat := tok.ToDoubleArray()
 	assert.NotNil(dat)
-	// n, err := dat.Save("testdata/tokenizer.datok")
+	// n, err := dat.Save("testdata/tokenizer_de.datok")
 	// assert.Nil(err)
 	// assert.True(n > 500)
 }
@@ -251,7 +251,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 
 	assert.NotNil(dat)
@@ -284,7 +284,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 
 	assert.NotNil(dat)
@@ -378,7 +378,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 
 	assert.NotNil(dat)
@@ -920,7 +920,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 
 	b := make([]byte, 0, 2048)
@@ -951,7 +951,7 @@
 	assert := assert.New(t)
 
 	if dat == nil {
-		dat = LoadDatokFile("testdata/tokenizer.datok")
+		dat = LoadDatokFile("testdata/tokenizer_de.datok")
 	}
 
 	assert.NotNil(dat)
@@ -1005,7 +1005,7 @@
 	Mach's macht's was'n ist's haste willste kannste biste kriegste.`
 	r := strings.NewReader(s)
 
-	dat := LoadDatokFile("testdata/tokenizer.datok")
+	dat := LoadDatokFile("testdata/tokenizer_de.datok")
 
 	b.ResetTimer()
 
@@ -1024,7 +1024,7 @@
 // This test is deprecated as the datok file changes over time
 func XBenchmarkLoadDatokFile(b *testing.B) {
 	for i := 0; i < b.N; i++ {
-		dat := LoadDatokFile("testdata/tokenizer.datok")
+		dat := LoadDatokFile("testdata/tokenizer_de.datok")
 		if dat == nil {
 			fmt.Println("Fail!")
 			os.Exit(1)
