diff --git a/matrix_test.go b/matrix_test.go
index 9d2c674..e58005f 100644
--- a/matrix_test.go
+++ b/matrix_test.go
@@ -207,7 +207,7 @@
 
 func xTestMatrixReadWriteFullTokenizer(t *testing.T) {
 	assert := assert.New(t)
-	foma := LoadFomaFile("testdata/tokenizer.fst")
+	foma := LoadFomaFile("testdata/tokenizer_de.fst")
 	assert.NotNil(foma)
 
 	mat := foma.ToMatrix()
@@ -244,7 +244,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -276,7 +276,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	b := make([]byte, 0, 2048)
@@ -443,7 +443,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	b := make([]byte, 0, 2048)
@@ -467,7 +467,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	b := make([]byte, 0, 2048)
@@ -1149,7 +1149,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1183,7 +1183,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1249,9 +1249,9 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
-	dat := LoadDatokFile("testdata/tokenizer.datok")
+	dat := LoadDatokFile("testdata/tokenizer_de.datok")
 
 	r := strings.NewReader(s)
 
@@ -1278,7 +1278,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1297,7 +1297,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1314,7 +1314,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1362,7 +1362,7 @@
 	assert := assert.New(t)
 
 	if mat_de == nil {
-		mat_de = LoadMatrixFile("testdata/tokenizer.matok")
+		mat_de = LoadMatrixFile("testdata/tokenizer_de.matok")
 	}
 
 	assert.NotNil(mat_de)
@@ -1381,7 +1381,7 @@
 
 	r := strings.NewReader(s)
 
-	mat := LoadMatrixFile("testdata/tokenizer.matok")
+	mat := LoadMatrixFile("testdata/tokenizer_de.matok")
 
 	b.ResetTimer()
 
