import edu.columbia.main.LanguageDataManager;
import edu.columbia.main.configuration.BabelConfig;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Test;

import java.io.File;
import java.io.IOException;
import java.lang.reflect.Array;
import java.lang.reflect.Method;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.fail;


/**
 * Created by Sania on 3/7/16.
 */
public class TestLanguageManager
{

    @Test
    public void testGetMostCommonWords() throws IOException {
        //from existing data for ngram=1
        Assert.assertNotNull(BabelConfig.getResource("languageData/" + "mon" + "MostCommon.txt"));
        ArrayList<String> mon = LanguageDataManager.getMostCommonWords("mon", 100, 1);
        Assert.assertNotNull(mon);
        Assert.assertEquals("нь", mon.get(0));
        Assert.assertNotNull(BabelConfig.getResource("languageData/" + "mon" + "MostCommon.txt"));
        File monMostCommon = new File(BabelConfig.getResource("languageData/" + "mon" + "MostCommon.txt"));
        Assert.assertTrue(monMostCommon.exists());

        //no most common words file - create
        Assert.assertNull(BabelConfig.getResource("languageData/" + "mih" + "MostCommon.txt"));
        ArrayList<String> mih = LanguageDataManager.getMostCommonWords("mih", 100, 1);
        Assert.assertNotNull(mih);
        Assert.assertEquals("ra", mih.get(0));
        Assert.assertNotNull(BabelConfig.getResource("languageData/" + "mih" + "MostCommon.txt"));
        File mihMostCommon = new File(BabelConfig.getResource("languageData/" + "mih" + "MostCommon.txt"));
        Assert.assertTrue(mihMostCommon.exists());
        mihMostCommon.delete();
    }




}

@@ -1,28 +1,30 @@
+//
 import edu.columbia.main.Lan
@@ -41,16 +41,18 @@
 anager;%0A
+//
 import e
@@ -95,16 +95,18 @@
 Config;%0A
+//
 import o
@@ -137,16 +137,18 @@
 eUtils;%0A
+//
 import o
@@ -164,16 +164,18 @@
 Assert;%0A
+//
 import o
@@ -189,17 +189,21 @@
 t.Test;%0A
-%0A
+//%0A//
 import j
@@ -215,16 +215,18 @@
 o.File;%0A
+//
 import j
@@ -245,16 +245,18 @@
 eption;%0A
+//
 import j
@@ -279,16 +279,18 @@
 .Array;%0A
+//
 import j
@@ -314,16 +314,18 @@
 Method;%0A
+//
 import j
@@ -358,16 +358,18 @@
 arsets;%0A
+//
 import j
@@ -388,16 +388,18 @@
 .Files;%0A
+//
 import j
@@ -417,16 +417,18 @@
 e.Path;%0A
+//
 import j
@@ -447,16 +447,18 @@
 .Paths;%0A
+//
 import j
@@ -473,24 +473,26 @@
 .ArrayList;%0A
+//
 import java.
@@ -504,16 +504,18 @@
 Arrays;%0A
+//
 import j
@@ -529,16 +529,18 @@
 l.List;%0A
+//
 import s
@@ -572,14 +572,22 @@
 il;%0A
-%0A%0A
+//%0A//%0A//
 /**%0A
+//
  * C
@@ -617,12 +617,16 @@
 16.%0A
+//
  */%0A
+//
 publ
@@ -658,11 +658,17 @@
 ger%0A
-%7B%0A%0A
+//%7B%0A//%0A//
     
@@ -673,16 +673,18 @@
   @Test%0A
+//
     publ
@@ -737,16 +737,18 @@
 ption %7B%0A
+//
         
@@ -780,16 +780,18 @@
 ngram=1%0A
+//
         
@@ -873,32 +873,34 @@
 tCommon.txt%22));%0A
+//
         ArrayLis
@@ -962,32 +962,34 @@
 %22mon%22, 100, 1);%0A
+//
         Assert.a
@@ -1007,16 +1007,18 @@
 l(mon);%0A
+//
         
@@ -1048,32 +1048,34 @@
 %22, mon.get(0));%0A
+//
         Assert.a
@@ -1149,32 +1149,34 @@
 tCommon.txt%22));%0A
+//
         File mon
@@ -1259,32 +1259,34 @@
 tCommon.txt%22));%0A
+//
         Assert.a
@@ -1320,17 +1320,21 @@
 sts());%0A
-%0A
+//%0A//
         
@@ -1370,16 +1370,18 @@
  create%0A
+//
         
@@ -1460,32 +1460,34 @@
 tCommon.txt%22));%0A
+//
         ArrayLis
@@ -1557,16 +1557,18 @@
 00, 1);%0A
+//
         
@@ -1594,16 +1594,18 @@
 l(mih);%0A
+//
         
@@ -1639,24 +1639,26 @@
 ih.get(0));%0A
+//
         Asse
@@ -1736,32 +1736,34 @@
 tCommon.txt%22));%0A
+//
         File mih
@@ -1850,24 +1850,26 @@
 mon.txt%22));%0A
+//
         Asse
@@ -1907,16 +1907,18 @@
 sts());%0A
+//
         
@@ -1945,16 +1945,28 @@
 ();%0A
+//
     %7D%0A
-%0A%0A%0A%0A
+//%0A//%0A//%0A//%0A//
 %7D%0A

remove flakey test