public void perLevelTest()
        {
            Word w;
            using (var b = new DataBase())
            {
                b.CreateDatabase();
                b.Lessons.InsertOnSubmit(new Lesson());
                b.SubmitChanges();
                Lesson t = b.Lessons.First();
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 0 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);

                }
                for (int i = 0; i < 5; i++)
                {
                    w = new Word() { Level = 1 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);

                }
                for (int i = 0; i < 5; i++)
                {
                    w = new Word() { Level = 2 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 5; i++)
                {
                    w = new Word() { Level = 3 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 5; i++)
                {
                    w = new Word() { Level = 4 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 5; i++)
                {
                    w = new Word() { Level = 5 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                b.SubmitChanges();
            }
            double[] per = new double[5] { 0.970373176, 0.004, 0.007872, 0.008572608, 0.009182216};
            TimeSpan sp = new TimeSpan();
            Stopwatch stopWatch = new Stopwatch();
            stopWatch.Start();
            double[] per2 = WordEngine.perLevel();
            stopWatch.Stop();
            TimeSpan ts = stopWatch.Elapsed;
            Assert.AreEqual(per.Count(), per2.Count());

            for (int i = 0; i < per.Count();i++ )
                Assert.AreEqual(per[i], per2[i]);
        }
        public void IdLevelWitheMaxCountElementsTest()
        {
            DataBase.Create();
            using (var b = new DataBase())
            {
                b.DeleteDatabase();
                b.CreateDatabase();
                b.Lessons.InsertOnSubmit(new Lesson());
                b.Lessons.InsertOnSubmit(new Lesson());
                b.Lessons.InsertOnSubmit(new Lesson());
                b.Lessons.InsertOnSubmit(new Lesson());
                b.Lessons.InsertOnSubmit(new Lesson());
                b.SubmitChanges();
                var temp = b.Lessons;
                Word w;
                int i;

                foreach (var t in temp)
                {

                    i = 2;
                    w = new Word() { Level = i++};
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                    w = new Word() { Level = i++ };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                    w = new Word() { Level = i };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                    w = new Word() { Level = i++ };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                    w = new Word() { Level = i++ };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                b.SubmitChanges();
                Assert.AreEqual(4, WordRepository.LevelWitheMaxCountElements());

            }
        }
        public void LevelTest()
        {
            Word w;
            using (var b = new DataBase())
            {
                b.CreateDatabase();
                b.Lessons.InsertOnSubmit(new Lesson());
                b.SubmitChanges();
                Lesson t = b.Lessons.First();
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 0 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);

                }
                for (int i = 0; i < 1; i++)
                {
                    w = new Word() { Level = 1 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);

                }
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 2 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 3 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 4 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                for (int i = 0; i < 0; i++)
                {
                    w = new Word() { Level = 5 };
                    t.AttachWord(w);
                    b.Words.InsertOnSubmit(w);
                }
                b.SubmitChanges();
            }
            //Assert.AreEqual(5, WordEngine.level(2));
            //Assert.AreEqual(5, WordEngine.level(1));
            //Assert.AreEqual(5, WordEngine.level(0.893));
            //Assert.AreEqual(5, WordEngine.level(0.892));
            //Assert.AreEqual(4, WordEngine.level(0.891));
            //Assert.AreEqual(4, WordEngine.level(0.88));
            //Assert.AreEqual(3, WordEngine.level(0.86));
            //Assert.AreEqual(3, WordEngine.level(0.85));
            //Assert.AreEqual(2, WordEngine.level(0.84));
            //Assert.AreEqual(2, WordEngine.level(0.75));
            //Assert.AreEqual(1, WordEngine.level(0.74));
            //Assert.AreEqual(1, WordEngine.level(0));
            Assert.AreEqual(5, WordEngine.level(2));
            Assert.AreEqual(5, WordEngine.level(1));
            Assert.AreEqual(1, WordEngine.level(0.99));
            Assert.AreEqual(1, WordEngine.level(0.5));
            Assert.AreEqual(1, WordEngine.level(0));
        }