예제 #1
0
 public void ConvertToOperator()
 {
     Assert.AreEqual(modulus, converter.ToOperator(0));
     Assert.AreEqual(minus, converter.ToOperator(1));
     Assert.AreEqual(power, converter.ToOperator(2));
     Assert.AreEqual(log, converter.ToOperator(3));
     Assert.AreEqual(factorial, converter.ToOperator(4));
 }
예제 #2
0
        private ICollection <Filter> GetFilters()
        {
            var filters = new List <Filter>();

            for (int i = 0; i < filterDataGridView.Rows.Count - 1; i++)
            {
                var tableName    = filterDataGridView.Rows[i].Cells[0].Value.ToString();
                var columnName   = filterDataGridView.Rows[i].Cells[1].Value.ToString();
                var operatorType = OperatorConverter.ToOperator(filterDataGridView.Rows[i].Cells[2].Value.ToString());
                var value        = filterDataGridView.Rows[i].Cells[3].Value.ToString();

                var filter = new Filter(tableName, columnName, operatorType, value);
                filters.Add(filter);
            }

            return(filters);
        }
예제 #3
0
        private ICollection <Join> GetJoins()
        {
            var joins = new List <Join>();

            for (int i = 0; i < joinDataGridView.Rows.Count - 1; i++)
            {
                var leftTableName   = joinDataGridView.Rows[i].Cells[0].Value.ToString();
                var leftColumnName  = joinDataGridView.Rows[i].Cells[1].Value.ToString();
                var rightTableName  = joinDataGridView.Rows[i].Cells[2].Value.ToString();
                var rightColumnName = joinDataGridView.Rows[i].Cells[3].Value.ToString();
                var operatorType    = OperatorConverter.ToOperator(filterDataGridView.Rows[i].Cells[4].Value.ToString());

                var join = new Join(leftTableName, leftColumnName, rightTableName, rightColumnName, operatorType);
                joins.Add(join);
            }

            return(joins);
        }
예제 #4
0
        public decimal Evaluate(INode node)
        {
            if (node == null)
            {
                return(0);
            }

            if (node.IsOperand)
            {
                return(node.Value);
            }

            return(Calculate(

                       OperatorConverter.ToOperator((int)node.Value),
                       Evaluate(node.Left),
                       Evaluate(node.Right)
                       ));
        }