public static IEnumerable <FormulaModel[]> GetBooleanFormulas()
        {
            var myTrue  = true;
            var myFalse = false;

            yield return(CreateTestModel("true || false", true));

            yield return(CreateTestModel("(true && false) || false", false));

            yield return(CreateTestModel("(true && false) || false || 1 != 0", true));

            yield return(CreateTestModel("(true || false) || false", true));

            yield return(CreateTestModel("1 + 2 > 4", false));

            yield return(CreateTestModel("1 + 2 > 2", true));

            yield return(CreateTestModel("if(myTrue; 0; 1)", false, ("myTrue", myTrue)));

            yield return(CreateTestModel("Not([my false])", true, ("my false", myFalse)));

            // IsText
            yield return(CreateTestModel("IsText(26)", false));

            yield return(CreateTestModel("IsText('26')", true));

            yield return(CreateTestModel("IsText('Hello!')", true));

            // IsNumber
            yield return(CreateTestModel("IsNumber(26)", true));

            yield return(CreateTestModel("IsNumber('26')", false));

            yield return(CreateTestModel("IsNumber('Hello!')", false));
        }
Exemplo n.º 2
0
        public static IEnumerable <FormulaModel[]> GetWordListAsNumberFormulas()
        {
            var list1 = new[] { "one", "tWo" }.ToList();
            var list2 = new[] { "a", "b", "c", "a", "c" }.ToList();

            // Count
            yield return(CreateTestModel("Count(list; '*')", 3, ("list", list1)));

            yield return(CreateTestModel("Count(list1; list2)", 7, ("list1", list1), ("list2", list2)));

            yield return(CreateTestModel("Count(1; 2)", 2));

            yield return(CreateTestModel("Count(1; 'dd'; 2)", 3));

            yield return(CreateTestModel("Count(1; 'dd'; 2; list)", 5, ("list", list1)));

            yield return(CreateTestModel("Count(1; 2; {1, 5, 6, 3, 7})", 7));

            yield return(CreateTestModel("Count(1; 2; {'one' 'two' 'thrte'})", 5));

            // IsMember
            yield return(CreateTestModel("IsMember({'printer', 'computer', 'monitor'};'computer')", 1));

            yield return(CreateTestModel("IsMember(list; 'one')", 1, ("list", list1)));

            yield return(CreateTestModel("IsMember(list; 'onee')", 0, ("list", list1)));
        }
        public static IEnumerable <FormulaModel[]> GetNumberListFormulas()
        {
            var list1 = new[] { 1d, 3d, 2d }.ToList();

            // Sort
            yield return(CreateTestModel("Sort(list)", list1.OrderBy(x => x).ToList(), ("list", list1)));

            yield return(CreateTestModel("Sort(list; 1)", list1.OrderBy(x => x).ToList(), ("list", list1)));

            yield return(CreateTestModel("Sort(list; -1)", list1.OrderByDescending(x => x).ToList(), ("list", list1)));
        }
        public static IEnumerable <FormulaModel[]> GetCommonFormulas()
        {
            yield return(CreateTestModel("5 + 6 * 13 / 2", "5 6 13 * 2 / +", 44));

            yield return(CreateTestModel("256 / 32 / 4 * 2 + (256.346 / (32 / 4 * 2) + 256 / (32 / 4))", "256 32 / 4 / 2 * 256.346 32 4 / 2 * / 256 32 4 / / + +", 52.022));

            yield return(CreateTestModel("(5)", "5", 5));

            yield return(CreateTestModel("(5+6)", "5 6 +", 11));

            yield return(CreateTestModel("256 / 32 / 4 * 2 + (256.346 / (32 / 4 * 2) + 256 / (32 / 4)) * 2^4", "256 32 / 4 / 2 * 256.346 32 4 / 2 * / 256 32 4 / / + 2 4 ^ * +", 772.346));

            yield return(CreateTestModel("5 + aDd(78+6; 5; 6; 77+5) / 17", "5 ADD(78 6 +; 5; 6; 77 5 +) 17 / +", 15.412));

            yield return(CreateTestModel("add(ADD(5*3; 6))", "ADD(ADD(5 3 *; 6))", 21));

            yield return(CreateTestModel("78 + if(1; [my variable] * 9 /1; 1 - 3)", "78 IF(1; [my variable] 9 * 1 /; 1 3 -) +", 789, ("my variable", 79)));

            yield return(CreateTestModel("or(8 + 9 + 6)", "OR(8 9 + 6 +)", 1));

            yield return(CreateTestModel("add(add(5) - 3)", "ADD(ADD(5) 3 -)", 2));

            yield return(CreateTestModel("add(Add(5) - add(5))", "ADD(ADD(5) ADD(5) -)", 0));

            yield return(CreateTestModel("add(add(5; 1) - add(5; 2; 3))", "ADD(ADD(5; 1) ADD(5; 2; 3) -)", -4));

            yield return(CreateTestModel("add(add(5); add(5); and(8; 0))", "ADD(ADD(5); ADD(5); AND(8; 0))", 10));

            yield return(CreateTestModel(
                             "if([my variable]; add(56 + 9 / 12 * 123.596; or(78; 9; 5; 2; 4; 5; 8; 7); 45;5); 9) *     24 + 52 -33",
                             "IF([my variable]; ADD(56 9 12 / 123.596 * +; OR(78; 9; 5; 2; 4; 5; 8; 7); 45; 5); 9) 24 * 52 + 33 -",
                             4811.728, ("my variable", 1)));

            yield return(CreateTestModel("2 > 3", "2 3 >", 0));

            yield return(CreateTestModel("3 >= 3", "3 3 >=", 1));

            yield return(CreateTestModel("3 == 3", "3 3 ==", 1));

            yield return(CreateTestModel("1 != 3", "1 3 !=", 1));
        }
        public static IEnumerable <FormulaModel[]> GetDateTimeAsNumberFormulas()
        {
            var date1 = DateTime.Parse("02/12/2002 14:18:23", CultureInfo.InvariantCulture);
            var date2 = DateTime.Parse("07/18/2005 18:30:10", CultureInfo.InvariantCulture);

            var time1 = DateTime.Parse("01/01/2000 14:18:23", CultureInfo.InvariantCulture);
            var time2 = DateTime.Parse("01/01/2000 18:30:10", CultureInfo.InvariantCulture);

            // DateDif
            yield return(CreateTestModel("DateDif(date1; date2; 'Y')", 3, ("date1", date1), ("date2", date2)));

            yield return(CreateTestModel("DateDif(ToDateTime('12/02/2002'); ToDateTime('02/07/2005'); 'Y')", 2));

            yield return(CreateTestModel("DateDif(date1; date2; 'M')", 41, ("date1", date1), ("date2", date2)));

            yield return(CreateTestModel("DateDif(date1; date2; 'D')", 1252, ("date1", date1), ("date2", date2)));

            // TimeDif
            yield return(CreateTestModel("Round(TimeDif(date1; date2; 'H'); 0)", 4, ("date1", time1), ("date2", time2)));

            yield return(CreateTestModel("Round(TimeDif(date1; date2; 'M'); 0)", 252, ("date1", time1), ("date2", time2)));

            yield return(CreateTestModel("Round(TimeDif(date1; date2; 'S'); 0)", 15107, ("date1", time1), ("date2", time2)));

            // WeekDay
            yield return(CreateTestModel("WeekDay(ToDateTime('04/18/2021'))", 1));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/19/2021'))", 2));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/20/2021'))", 3));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/21/2021'))", 4));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/22/2021'))", 5));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/23/2021'))", 6));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/24/2021'))", 7));

            yield return(CreateTestModel("WeekDay(ToDateTime('04/25/2021'))", 1));
        }
Exemplo n.º 6
0
        public async Task <int> AddTestAsync(CreateTestModel createTestModel)
        {
            var user = await this.userRepository.GetUser(createTestModel.UserPrincible);

            var test = new Test()
            {
                Name        = createTestModel.Name,
                Description = createTestModel.Description,
                Start       = createTestModel.Start,
                End         = createTestModel.End,
                Duration    = createTestModel.Duration,
                Grade3      = createTestModel.Grade3,
                Grade4      = createTestModel.Grade4,
                Grade5      = createTestModel.Grade5,
                Grade6      = createTestModel.Grade6,
                User        = user,
            };

            this.context.Tests.Add(test);
            await this.context.SaveChangesAsync();

            return(test.Id);
        }
Exemplo n.º 7
0
        public static IEnumerable <FormulaModel[]> GetWordFormulas()
        {
            var numberList = new[] { 1d, 2d, 3d }.ToList();
            var wordList = new[] { "one", "Two" }.ToList();
            var word  = "one two kovtun loves painting two";
            var date1 = DateTime.Parse("02/12/2002", CultureInfo.InvariantCulture);
            var date2 = DateTime.Parse("07/18/2005", CultureInfo.InvariantCulture);

            // Word
            yield return(CreateTestModel("\"my word\"", "my word"));

            // Contat
            yield return(CreateTestModel("Concat('world'; 5)", "world5"));

            yield return(CreateTestModel("Concat(5; 6; 7)", "567"));

            yield return(CreateTestModel("Concat('one'; 'two')", "onetwo"));

            yield return(CreateTestModel("Concat(myList; ' *')", "123 *", ("myList", numberList)));

            yield return(CreateTestModel("Concat(myList; ' * '; myList2)", "123 * oneTwo", ("myList", numberList), ("myList2", wordList)));

            // Implode
            yield return(CreateTestModel("Implode(1; 5; \"-\")", "1-5"));

            yield return(CreateTestModel("Implode(wordList)", "oneTwo", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(wordList; \" \")", "one Two", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(wordList; ' ')", "one Two", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(wordList; ' * ')", "one * Two", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(wordList; 5; ' * ')", "one * Two * 5", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(1; wordList; 5; ' * ')", "1 * one * Two * 5", ("wordList", wordList)));

            yield return(CreateTestModel("Implode(numberList; ' * ')", "1 * 2 * 3", ("numberList", numberList)));

            // Left
            yield return(CreateTestModel("Left('Hello world')", "H"));

            yield return(CreateTestModel("Left('Hello world'; 4)", "Hell"));

            yield return(CreateTestModel("Left('Hello world'; -4)", ""));

            yield return(CreateTestModel("Left('Hello world'; 40)", "Hello world"));

            yield return(CreateTestModel("Left('Hello world'; 'or')", "Hello w"));

            // Lower
            yield return(CreateTestModel("Lower('HellO')", "hello"));

            yield return(CreateTestModel("Lower('HE')", "he"));

            yield return(CreateTestModel("Lower('ONE tWo')", "one two"));

            yield return(CreateTestModel("Lower(Concat(wordList))", "onetwo", ("wordList", wordList)));

            // Middle
            yield return(CreateTestModel("Middle(word; 0; 3)", "one", ("word", word)));

            yield return(CreateTestModel("Middle(word; 4; 3)", "two", ("word", word)));

            yield return(CreateTestModel("Middle(word; -56; 3)", "", ("word", word)));

            yield return(CreateTestModel("Middle(word; 56; 3)", "", ("word", word)));

            yield return(CreateTestModel("Middle(word; 4; 30)", "two kovtun loves painting two", ("word", word)));

            yield return(CreateTestModel("Middle(word; 8; 'two')", "kovtun loves painting ", ("word", word)));

            yield return(CreateTestModel("Middle(word; 'two'; 7)", " kovtun", ("word", word)));

            yield return(CreateTestModel("Middle(word; 'two '; ' two')", "kovtun loves painting", ("word", word)));

            // Proper
            yield return(CreateTestModel("Proper(word)", "One Two Kovtun Loves Painting Two", ("word", word)));

            yield return(CreateTestModel("Proper('i am Crazy about you')", "I Am Crazy About You", ("word", word)));

            // Replace
            yield return(CreateTestModel("Replace(word; 'two'; 'Table')", "one Table kovtun loves painting Table", ("word", word)));

            yield return(CreateTestModel("Replace('rttttr'; 't'; 'ol')", "rololololr"));

            // Right
            yield return(CreateTestModel("Right('Hello world')", "d"));

            yield return(CreateTestModel("Right('Hello world'; 4)", "orld"));

            yield return(CreateTestModel("Right('Hello world'; -4)", ""));

            yield return(CreateTestModel("Right('Hello world'; 40)", "Hello world"));

            yield return(CreateTestModel("Right('Hello world'; 'wo')", "rld"));

            yield return(CreateTestModel("Right('my word'; 'w')", "ord"));

            yield return(CreateTestModel("Right('my word'; 'wo')", "rd"));

            // Text
            yield return(CreateTestModel("Text('Hello world')", "Hello world"));

            yield return(CreateTestModel("Text(5+6)", "11"));

            yield return(CreateTestModel("Text(ToDateTime('01.01.2021'))", "01/01/2021 00:00:00"));

            // Upper
            yield return(CreateTestModel("Upper('HellO')", "HELLO"));

            yield return(CreateTestModel("Upper('he')", "HE"));

            yield return(CreateTestModel("Upper('ONE tWo')", "ONE TWO"));

            yield return(CreateTestModel("Upper(Concat(wordList))", "ONETWO", ("wordList", wordList)));

            // Day
            yield return(CreateTestModel("Day(date)", "12", ("date", date1)));

            yield return(CreateTestModel("Day(date)", "18", ("date", date2)));

            yield return(CreateTestModel("Day(date + 6)", "24", ("date", date2)));

            // Month
            yield return(CreateTestModel("Month(date)", "2", ("date", date1)));

            yield return(CreateTestModel("Month(date)", "7", ("date", date2)));

            yield return(CreateTestModel("Month(date + 20)", "8", ("date", date2)));

            // Year
            yield return(CreateTestModel("Year(date)", "2002", ("date", date1)));

            yield return(CreateTestModel("Year(date)", "2005", ("date", date2)));

            yield return(CreateTestModel("Year(date + 320)", "2006", ("date", date2)));

            // DateFormat
            yield return(CreateTestModel("DateFormat(date; 'yy')", "02", ("date", date1)));

            yield return(CreateTestModel("DateFormat(ToDateTime('2021/01/30 18:05:33');'HH:mm:ss')", "18:05:33"));
        }
        public static IEnumerable <FormulaModel[]> GetFormulasToCalculate()
        {
            foreach (var val in GetCommonFormulas())
            {
                yield return(val);
            }

            yield return(CreateTestModel("2", 2));

            yield return(CreateTestModel("add(5; 6; 9)", 20));

            yield return(CreateTestModel("kov(1; 2; 3) - kovt(8; 9)", 7));

            yield return(CreateTestModel("1/6 + 5/12 + 3/4 * 1/6 + 5/12 + 3/4 - 1/6 + 5/12 + 3/4- 78", -75.125));

            yield return(CreateTestModel("(45^6 + (12 - (34*896^2) / 325) / 80000000) / 7^13 + 1.2", 1.286));

            yield return(CreateTestModel("mean ([super power war]; 6; 6; 8; add(78;89;6;5;4;2;1;5;8;789;56;6;6)*7; 5; 2; 4; 87; 7; 89; 5; 4; 52; 3; 5; 4; 8; 78; 5; 4; 2; 3)",
                                         357.739, ("super power war", 456)));

            yield return(CreateTestModel("[Provider(\"My test provider\").Month(-1).Price] * [Consumer(\"My test consumer\").Month().Volume]", 48,
                                         ("Provider(\"My test provider\").Month(-1).Price", 6), ("Consumer(\"My test consumer\").Month().Volume", 8)));

            yield return(CreateTestModel("if([var1] > 5 || [var1] != [var2]; 56+3; 1-344)", 59, ("var1", 5), ("var2", 6)));

            yield return(CreateTestModel("if([var1] >= 5 && [var1] + 10 == 15; 1; 0)", 1, ("var1", 5)));

            yield return(CreateTestModel("if(and(5; 8; 6) && [var1] < 5; 1; 0)", 0, ("var1", 5)));

            yield return(CreateTestModel("15+24 != [var1] * 3", 1, ("var1", 5)));

            yield return(CreateTestModel("15+24 == [var1] * 3", 1, ("var1", 13)));

            yield return(CreateTestModel("15+24 == [var1] * 3", 1, ("var1", 13)));

            yield return(CreateTestModel("15+24 == [var1] * 2", 0, ("var1", -3)));

            yield return(CreateTestModel("(5*3)-1", 14));

            yield return(CreateTestModel("5*3-1", 14));

            yield return(CreateTestModel("5*(3-1)", 10));

            yield return(CreateTestModel("if(-1; -6; -7)", -6));

            yield return(CreateTestModel("5 - -6", 11));

            yield return(CreateTestModel("if ([Arg1] > 0; - [Arg1]; 0)", -16, ("Arg1", 16)));

            yield return(CreateTestModel("if ([Arg1] != 0; -----Arg1; 0)", -16, ("Arg1", 16)));

            yield return(CreateTestModel("-(5+6)", -11));

            yield return(CreateTestModel("- add(1;3) - add(1; 2; 3)", -10));

            yield return(CreateTestModel("if(5 > 0; -(5+6); 0)", -11));

            yield return(CreateTestModel("-(9 - 7 + -(5 + 3))", 6));

            yield return(CreateTestModel("-((5 + 6) * -(9 - 7 - (5 + 3))) * -((5 + 6) * -(9 - 7 - (5 + 3)))", 4356));

            yield return(CreateTestModel("5 * -add(1; 3) * -[Arg1] / -(-add(1; 3) *3)", 1480, ("Arg1", 888)));

            yield return(CreateTestModel("5 * -add(1;3) * - 88 / -(-add(1; 16; 23; -(7+12)) *3)", 27.937));

            yield return(CreateTestModel("-(5* -(5 / (6-7)+3))", -10));

            yield return(CreateTestModel("-(5* -(5 * -(5+16) - (6-7 * -(5+16 * -(3+6)))+3))", 4325));

            yield return(CreateTestModel("(5* -(5 * (5+16) - (6-7 * (5+16 * -(3+6)))+3))", 4355));

            yield return(CreateTestModel("(5* -(5 * (5+16) - (6-7 * (5+16 * (3+6)))+3))", -5725));

            yield return(CreateTestModel("(5* (5 * (5+16) - (6-7 * (5+16 * (3+6)))+3))", 5725));

            yield return(CreateTestModel("1.56 *56.89 +8.3", 97.048));

            yield return(CreateTestModel("1,56 *56,89 +8,3", 97.048));

            yield return(CreateTestModel("add + [add] * add(1; 4)", 18, ("add", 3)));

            yield return(CreateTestModel("add * -add(1; 4)", -15, ("add", 3)));

            yield return(CreateTestModel("-add", -3, ("add", 3)));

            yield return(CreateTestModel("add", 3, ("add", 3)));

            yield return(CreateTestModel("add + add(add(5; add))", 11, ("add", 3)));

            yield return(CreateTestModel("15+24 == var1 * 2", 0, ("var1", -3)));

            yield return(CreateTestModel("15+24 == var_1 * 3", 1, ("var_1", 13)));

            yield return(CreateTestModel("- (my_name_is / 15)", -3, ("my_name_is", 45)));

            yield return(CreateTestModel("[myVariable ♥]", 30, ("myVariable ♥", 30)));

            yield return(CreateTestModel("Pi*pI/[PI] + -pI", 0));

            yield return(CreateTestModel("if([tau] > 6 == true; 5+6; -9)", 11));

            yield return(CreateTestModel("if(tAu > 6 == false; 5+6; -9)", -9));

            yield return(CreateTestModel("e + [E]", Math.Round(Math.E + Math.E, 3)));

            // Check functions
            foreach (var func in CheckFunctions())
            {
                yield return(func);
            }
        }
Exemplo n.º 9
0
        public static IEnumerable <FormulaModel[]> GetWordListFormulas()
        {
            var word = "one*two * three";
            var list1 = new[] { "one", "tWo" }.ToList();
            var list2 = new[] { "ONE", "tWo" }.ToList();
            var list3 = new[] { "a", "b", "c", "a", "c" }.ToList();

            // Explode
            yield return(CreateTestModel("Explode(word; '*')", new[] { "one", "two ", " three" }.ToList(), ("word", word)));

            yield return(CreateTestModel("Explode(word)", new[] { "one*two", "*", "three" }.ToList(), ("word", word)));

            // Lower
            yield return(CreateTestModel("Lower(list)", new[] { "one", "two" }.ToList(), ("list", list1)));

            yield return(CreateTestModel("Lower({'Mumbai','London','New York'})", new[] { "mumbai", "london", "new york" }.ToList()));

            // Replace
            yield return(CreateTestModel("Replace(list; 'o'; '*')", new[] { "*ne", "tW*" }.ToList(), ("list", list1)));

            yield return(CreateTestModel("Replace({'New','York','City'}; 'New'; 'Old')", new[] { "Old", "York", "City" }.ToList()));

            // Qnique
            yield return(CreateTestModel("Unique(list; true)", new[] { "b" }.ToList(), ("list", list3)));

            yield return(CreateTestModel("Unique(list; false)", new[] { "a", "b", "c" }.ToList(), ("list", list3)));

            yield return(CreateTestModel("Unique(list)", new[] { "a", "b", "c" }.ToList(), ("list", list3)));

            yield return(CreateTestModel("Unique({'NEW','OLD','NEW','HEAVEN','OLD'})", new[] { "NEW", "OLD", "HEAVEN" }.ToList()));

            yield return(CreateTestModel("Unique({'NEW','OLD','NEW','HEAVEN','OLD'}; true)", new[] { "HEAVEN" }.ToList()));

            // Upper
            yield return(CreateTestModel("Upper(list)", new[] { "ONE", "TWO" }.ToList(), ("list", list2)));

            yield return(CreateTestModel("Upper({'Mumbai','London','New York'})", new[] { "MUMBAI", "LONDON", "NEW YORK" }.ToList()));

            // Sort
            yield return(CreateTestModel("Sort(list)", list3.OrderBy(x => x).ToList(), ("list", list3)));

            yield return(CreateTestModel("Sort(list; 1)", list3.OrderBy(x => x).ToList(), ("list", list3)));

            yield return(CreateTestModel("Sort(list; -1)", list3.OrderByDescending(x => x).ToList(), ("list", list3)));

            yield return(CreateTestModel("Sort({ \"a\", \"b\", \"c\", \"a\", \"c\" })", list3.OrderBy(x => x).ToList()));

            yield return(CreateTestModel("Sort({ \"a\", \"b\", \"c\", \"a\", \"c\" }; ASC)", list3.OrderBy(x => x).ToList()));

            yield return(CreateTestModel("Sort({ \"a\", \"b\", \"c\", \"a\", \"c\" }; DESC)", list3.OrderByDescending(x => x).ToList()));

            // Left
            yield return(CreateTestModel("Left({'Analogy', 'Anecdote', 'Anomaly'}; 3)", new [] { "Ana", "Ane", "Ano" }.ToList()));

            yield return(CreateTestModel("Left({'Analogy', 'Anecdote', 'Anomaly'}; 'n')", new [] { "A", "A", "A" }.ToList()));

            // Middle
            yield return(CreateTestModel("Middle({'Analogy', 'Anecdote', 'Anomaly'}; 3; 2)", new[] { "lo", "cd", "ma" }.ToList()));

            yield return(CreateTestModel("Middle({'Analogy', 'Anecdote', 'Anomaly'}; 'n'; 'o')", new[] { "al", "ecd", "" }.ToList()));

            // Right
            yield return(CreateTestModel("Right({'Analogy', 'Anecdote', 'Anomaly'}; 3)", new[] { "ogy", "ote", "aly" }.ToList()));

            yield return(CreateTestModel("Right({'Analogy', 'Anecdote', 'Anomaly'}; 'n')", new[] { "alogy", "ecdote", "omaly" }.ToList()));
        }
        public static IEnumerable <FormulaModel[]> GetNumberListAsNumberFormulas()
        {
            var list1 = new[] { 1d, 3d, 2d }.ToList();
            var list2 = new[] { 1d, 3d, 2d, 14d }.ToList();

            // Count
            yield return(CreateTestModel("Count(list)", 3, ("list", list1)));

            yield return(CreateTestModel("Count(list; 1; 1)", 5, ("list", list1)));

            yield return(CreateTestModel("Count(8; 'j'; list; 1; 1)", 7, ("list", list1)));

            // Add
            yield return(CreateTestModel("Add(list)", 6, ("list", list1)));

            yield return(CreateTestModel("Add(10; list)", 16, ("list", list1)));

            yield return(CreateTestModel("Add(10; list; 90)", 106, ("list", list1)));

            yield return(CreateTestModel("Add(list; list)", 12, ("list", list1)));

            // Max
            yield return(CreateTestModel("Max(list)", 3, ("list", list1)));

            yield return(CreateTestModel("Max(list; 300)", 300, ("list", list1)));

            yield return(CreateTestModel("Max(2; 3; 4; 1; list)", 4, ("list", list1)));

            yield return(CreateTestModel("Max(2; 3; -4; 1; list; 2)", 3, ("list", list1)));

            yield return(CreateTestModel("Max(2; 3; -4; 1; list; 12)", 12, ("list", list1)));

            yield return(CreateTestModel("Max(2; 3; -4; 1; list1; 12; list2; 10)", 14, ("list1", list1), ("list2", list2)));

            // Mean
            yield return(CreateTestModel("Mean(list)", 2, ("list", list1)));

            yield return(CreateTestModel("Mean(2; 3; 4; 1; list)", 2.286, ("list", list1)));

            yield return(CreateTestModel("Mean(2; 3; -4; 1; list; 2)", 1.25, ("list", list1)));

            yield return(CreateTestModel("Mean(2; 3; -4; 1; list; 12)", 2.5, ("list", list1)));

            yield return(CreateTestModel("Mean(2; 3; -4; 1; list1; 12; list2; 10)", 3.846, ("list1", list1), ("list2", list2)));

            // Min
            yield return(CreateTestModel("Min(list)", 1, ("list", list1)));

            yield return(CreateTestModel("Min(list; -17)", -17, ("list", list1)));

            yield return(CreateTestModel("Min(2; 3; 4; list)", 1, ("list", list1)));

            yield return(CreateTestModel("Min(2; 3; -4; list; 2)", -4, ("list", list1)));

            yield return(CreateTestModel("Min(2; 3; -4; 1; list; 12)", -4, ("list", list1)));

            yield return(CreateTestModel("Min(2; 3; -4; 1; list1; 12; list2; -10)", -10, ("list1", list1), ("list2", list2)));

            // Multi
            yield return(CreateTestModel("Multi(list; 3)", 18, ("list", list1)));

            yield return(CreateTestModel("Multi(10; list)", 60, ("list", list1)));

            yield return(CreateTestModel("Multi(10; list; 90)", 5400, ("list", list1)));

            yield return(CreateTestModel("Multi(list; list)", 36, ("list", list1)));
        }