public void TestBoxedPosition_Boxed()
        {
            List <Position> inputPositions = new List <Position> {
                new Position("Mike", "MS", "AAPL.N", 100, 20),
                new Position("Mike", "ML", "AAPL.N", -70, 20)
            };

            List <BoxedPosition> expectedBoxedPositions = new List <BoxedPosition>
            {
                new BoxedPosition("Mike", "AAPL.N", 70)
            };

            IEnumerable <BoxedPosition> actualBoxedPositions = positionCalculator.calculateBoxedPositions(inputPositions);

            Assert.Equal(expectedBoxedPositions, actualBoxedPositions);
        }
        static int Main(string[] args)
        {
            if (args.Length < 1)
            {
                Console.WriteLine("Usage: dotnet run <input_file_full_path>");
                return(-1);
            }

            string inputfile = args[0];

            IEnumerable <Position> inputPositions = null;

            try
            {
                inputPositions = parseInputFile(inputfile);
            }
            catch (IOException ioe)
            {
                Console.WriteLine("IOException while processing input files {0}", inputfile);
                Console.WriteLine("StackTrace: {0} ", ioe.StackTrace);

                return(-1);
            }
            catch (Exception e)
            {
                Console.WriteLine("The program has encountered an unexpected error");
                Console.WriteLine("StackTrace: {0} ", e.StackTrace);

                return(-1);
            }


            PositionCalculator positionCalculator = new PositionCalculator();

            IEnumerable <NetPosition>   netPositions   = positionCalculator.calculateNetPositions(inputPositions);
            IEnumerable <BoxedPosition> boxedPositions = positionCalculator.calculateBoxedPositions(inputPositions);

            Console.WriteLine("Net Positions: \n");
            outputNetPositions(netPositions);

            Console.WriteLine("\n\nBox Positions: \n");
            outputBoxedPositions(boxedPositions);

            return(0);
        }