示例#1
0
        public static double Calculate(string expr)
        {
            switch (expr)
            {
            case null:
                throw new ArgumentNullException(nameof(expr));

            case "":
                return(0);
            }

            stack = new ClassLibrary.Stack <double>(10);

            var entries = expr.Split(' ');

            foreach (var entry in entries)
            {
                ProcessEntry(entry);
            }

            if (stack.Count != 1)
            {
                throw new ArgumentException("Invalid expression. Numbers > operations.");
            }

            return(stack.Pop());
        }
示例#2
0
        static void Main(string[] args)
        {
            //Workflow

            //var workflow = new ClassLibrary.Workflow(new List<ClassLibrary.IActivity>());
            //workflow.Add(new ClassLibrary.ActivityUploadVideo());
            //workflow.Add(new ClassLibrary.ActivityEncodeVideo());
            //workflow.Add(new ClassLibrary.ActivityNotify());
            //workflow.Add(new ClassLibrary.ActivityChangeStatus());
            //var workflowEngine = new ClassLibrary.WorkflowEngine();
            //workflowEngine.Run(workflow);
            //Console.ReadKey();

            //Connection
            //ClassLibrary.DbConnection dbConnection = new ClassLibrary.OracleConnection("Connection string", new TimeSpan(0, 5, 0));
            //ClassLibrary.DbCommand dbCommand = new ClassLibrary.DbCommand(dbConnection, "SELECT * FROM CLIENT;");
            //dbCommand.Execute();

            //Console.ReadKey();

            // Stack

            var stack = new ClassLibrary.Stack();

            stack.Push("Hello World");
            stack.Push(1);
            stack.Push(15.69);
            stack.Push(true);
            stack.Push('e');
            stack.PrintAll();
            Console.WriteLine(stack.Pop().ToString());
            Console.WriteLine(stack.Pop().ToString());
            Console.WriteLine(stack.Pop().ToString());
            Console.WriteLine(stack.Pop().ToString());
            Console.WriteLine(stack.Pop().ToString());
            Console.ReadKey();


            //Stack Overflow post
            //ClassLibrary.Post post = new ClassLibrary.Post("My New Post", "This is just a test to see how to post");
            //var upvotes = 80;
            //var downvotes = 20;
            //for (int i = 0; i < upvotes; i++)
            //{
            //    post.UpVote();
            //}
            //for (int i = 0; i < downvotes; i++)
            //{
            //    post.DownVote();
            //}
            //Console.WriteLine("Title: " + post._Title);
            //Console.WriteLine("Description: " + post._Description);
            //Console.WriteLine("Creation date: " + post._CreationDate);
            //Console.WriteLine("Upvotes: " + post.UpVotes);
            //Console.WriteLine("Downvotes: " + post.DownVotes);
            //Console.WriteLine("Votes: " + post.Votes);
            //Console.ReadKey();
        }
        public override void PerformOperation(ClassLibrary.Stack <double> stack)
        {
            var first  = stack.Pop();
            var second = stack.Pop();

            var res = second / first;

            stack.Push(res);
        }
示例#4
0
        public void Pop_EmptyStack_ThrowsException()
        {
            var Stack = new ClassLibrary.Stack();

            Stack.Pop();
        }
示例#5
0
        public void Push_NullObject_ThrowsException()
        {
            var Stack = new ClassLibrary.Stack();

            Stack.Push(null);
        }
示例#6
0
 public abstract void PerformOperation(ClassLibrary.Stack <double> stack);