public void should_return_one_travelled_edge_for_trivial_case()
        {
            var deviceSource = new Currency("EUR");
            var deviceTarget = new Currency("JPY");

            var rates = new List <ChangeRate>()
            {
                new ChangeRate("EUR", "JPY", (decimal)0.6571),
            };

            var currencyGraph = new global::CurrencyGraph.Domain.CurrencyGraph(
                rates,
                new ChangeRateComputationStrategy(4));

            var result = currencyGraph.GetShortestPath(deviceSource, deviceTarget);

            var actualResult =
                new List <PathStep <Currency, WeightedBidrectionalEdge <Currency> > >()
            {
                new PathStep <Currency,
                              WeightedBidrectionalEdge <Currency> >(
                    "EUR",
                    "JPY",
                    null),
            };

            Assert.IsTrue(this.CompareEqualityPaths(result, actualResult));
        }
        public void should_return_correct_value_in_example_test_case()
        {
            var deviceSource = new Currency("EUR");
            var deviceTarget = new Currency("JPY");

            var rates = new List <ChangeRate>()
            {
                new ChangeRate("AUD", "CHF", (decimal)0.9661),
                new ChangeRate("JPY", "KRW", (decimal)13.1151),
                new ChangeRate("EUR", "CHF", (decimal)1.2053),
                new ChangeRate("AUD", "JPY", (decimal)86.0305),
                new ChangeRate("EUR", "USD", (decimal)1.2989),
                new ChangeRate("JPY", "INR", (decimal)0.6571),
            };

            var currencyGraph = new global::CurrencyGraph.Domain.CurrencyGraph(
                rates,
                new ChangeRateComputationStrategy(4));

            var result = currencyGraph.GetShortestPath(deviceSource, deviceTarget);

            var actualResult = new List <PathStep <Currency, WeightedBidrectionalEdge <Currency> > >()
            {
                new PathStep <
                    Currency,
                    WeightedBidrectionalEdge <Currency> >(
                    "EUR",
                    "CHF",
                    null),
                new PathStep <
                    Currency,
                    WeightedBidrectionalEdge <Currency> >(
                    "CHF",
                    "AUD",
                    null),
                new PathStep <
                    Currency,
                    WeightedBidrectionalEdge <Currency> >(
                    "AUD",
                    "JPY",
                    null),
            };

            Assert.IsTrue(this.CompareEqualityPaths(result, actualResult));
        }