Example #1
0
        public static void Constructor_ExpectedValues()
        {
            // Setup
            var dynamicsFactory = Substitute.For <ITakeOffDynamicsCalculatorFactory>();

            // Call
            var factory = new DistanceCalculatorFactory(dynamicsFactory);

            // Assert
            Assert.IsInstanceOf <IDistanceCalculatorFactory>(factory);
        }
Example #2
0
        public void CreateContinuedTakeOffDistanceCalculator_WithValidArguments_ReturnsExpectedCalculator()
        {
            // Setup
            var    random  = new Random(21);
            double density = random.NextDouble();
            double gravitationalAcceleration = random.NextDouble();
            int    nrOfFailedEngines         = random.Next();

            AircraftData aircraftData = AircraftDataTestFactory.CreateRandomAircraftData();

            var normalTakeOffDynamicsCalculator  = Substitute.For <INormalTakeOffDynamicsCalculator>();
            var failureTakeOffDynamicsCalculator = Substitute.For <IFailureTakeOffDynamicsCalculator>();

            var takeOffDynamicsCalculatorFactory = Substitute.For <ITakeOffDynamicsCalculatorFactory>();

            takeOffDynamicsCalculatorFactory.CreateNormalTakeOffDynamics(aircraftData, density, gravitationalAcceleration)
            .Returns(normalTakeOffDynamicsCalculator);
            takeOffDynamicsCalculatorFactory.CreateContinuedTakeOffDynamicsCalculator(aircraftData, nrOfFailedEngines, density, gravitationalAcceleration)
            .Returns(failureTakeOffDynamicsCalculator);

            var integrator = Substitute.For <IIntegrator>();

            IDistanceCalculatorFactory factory = new DistanceCalculatorFactory(takeOffDynamicsCalculatorFactory);

            // Call
            IDistanceCalculator calculator = factory.CreateContinuedTakeOffDistanceCalculator(aircraftData,
                                                                                              integrator,
                                                                                              nrOfFailedEngines,
                                                                                              density,
                                                                                              gravitationalAcceleration,
                                                                                              CalculationSettingsTestFactory.CreateDistanceCalculatorSettings());

            // Assert
            takeOffDynamicsCalculatorFactory.DidNotReceiveWithAnyArgs().CreateAbortedTakeOffDynamics(Arg.Any <AircraftData>(),
                                                                                                     Arg.Any <double>(),
                                                                                                     Arg.Any <double>());
            takeOffDynamicsCalculatorFactory.Received(1).CreateNormalTakeOffDynamics(Arg.Any <AircraftData>(),
                                                                                     Arg.Any <double>(),
                                                                                     Arg.Any <double>());
            takeOffDynamicsCalculatorFactory.Received(1).CreateContinuedTakeOffDynamicsCalculator(Arg.Any <AircraftData>(),
                                                                                                  Arg.Any <int>(),
                                                                                                  Arg.Any <double>(),
                                                                                                  Arg.Any <double>());

            Assert.IsInstanceOf <DistanceCalculator>(calculator);
        }
Example #3
0
        static void Main(string[] args)
        {
            //temporary solution for testing untill the unit tests are done
            if (!ConfigurationHelper.Instance.TestMode)
            {
                var options = new Options();

                if (CommandLine.Parser.Default.ParseArguments(args, options))
                {
                    var computationRequest = InputHelper.Instance.GetQueryAndDistanceMatrix(options.QueryStringFilePath, options.DataSetFilePath);
                    computationRequest.CalculateDistance = MetricFactory.GetDistanceMetric(options.MetricType);

                    var result = DistanceCalculatorFactory.GetCalculator(options.ComputationType).GetComputationResult(computationRequest);

                    Console.WriteLine(result.TotalRuntime);
                }
                else
                {
                    Console.WriteLine("One or more invalid arguments");
                    return;
                }
            }
            else
            {
                Console.WriteLine("Begin");

                var options = new Options();

                options.ComputationType = CalculatorType.SYNC;
                options.MetricType      = MetricType.HAMMING;

                //options.QueryStringFilePath = @"D:\ParallelProgramming\parallelprogramming\david_demirkhanyan\ParallelProgramming\ParallelProgramming.Tests\SampleData\queries.csv";
                //options.DataSetFilePath = @"D:\ParallelProgramming\parallelprogramming\david_demirkhanyan\ParallelProgramming\ParallelProgramming.Tests\SampleData\data.csv";

                var computationRequest = InputHelper.Instance.GetQueryAndDistanceMatrix(options.QueryStringFilePath, options.DataSetFilePath);
                computationRequest.CalculateDistance = MetricFactory.GetDistanceMetric(options.MetricType);

                var result = DistanceCalculatorFactory.GetCalculator(options.ComputationType).GetComputationResult(computationRequest);

                Console.WriteLine(result.TotalRuntime);
            }
        }
Example #4
0
        public void TestHammingSync()
        {
            try
            {
                var computationRequest = InputHelper.Instance.GetQueryAndDistanceMatrix();

                Assert.IsNotNull(computationRequest.CalculateDistance);
                Assert.IsNotNull(computationRequest.DatasetVectors);

                computationRequest.CalculateDistance = MetricFactory.GetDistanceMetric(MetricType.HAMMING);

                var computationResult = DistanceCalculatorFactory.GetCalculator(CalculatorType.SYNC).GetComputationResult(computationRequest);

                Assert.IsNotNull(computationResult.DistanceMatrix);
            }
            catch (Exception ex)
            {
                throw new AssertFailedException();
            }
        }
Example #5
0
        /// <summary>
        /// Creates a new instance of <see cref="AggregatedDistanceCalculatorKernel"/>.
        /// </summary>
        public AggregatedDistanceCalculatorKernel()
        {
            var distanceCalculatorFactory = new DistanceCalculatorFactory(new TakeOffDynamicsCalculatorFactory());

            aggregatedDistanceCalculator = new AggregatedDistanceCalculator(distanceCalculatorFactory);
        }
Example #6
0
 /// <summary>
 /// Constructor which initializes the factory being used to return the service for distance method calculation.
 /// </summary>
 /// <param name="distanceCalculatorFactory"></param>
 public DistanceController(DistanceCalculatorFactory distanceCalculatorFactory)
 {
     _distanceCalculatorFactory = distanceCalculatorFactory;
 }