//TODO fix this
        private static double[] GetTopXAmountOfRatings(int amountOfRatings, KeyValueObject[] nearestNeighbours,
                                                       Dictionary <int, Dictionary <int, double> > dictionary)
        {
            var uniqueItemIds = new List <int>();

            foreach (var neighbour in nearestNeighbours)
            {
                var ids = dictionary[neighbour.Key].Keys.ToArray();
                for (int i = 0; i < ids.Length; i++)
                {
                    if (!uniqueItemIds.Contains(ids[i]))
                    {
                        uniqueItemIds.Add(ids[i]);
                    }
                }
            }

            var bestRatings = new List <double>();

            for (int i = 0; i < uniqueItemIds.Count; i++)
            {
                PredictedRatingCalculations predictedRatingCalculations = new PredictedRatingCalculations();
                var predictedRating = predictedRatingCalculations.CalculatePredictedRating(uniqueItemIds[i], nearestNeighbours, dictionary);
                bestRatings.Add(predictedRating);
            }
            return(bestRatings.OrderByDescending(x => x).Take(amountOfRatings).ToArray());
        }
        private void Act()
        {
            // Act
            PredictedRatingCalculations predictedRatingCalculations = new PredictedRatingCalculations();
            var result = predictedRatingCalculations.CalculatePredictedRating(3, _nearestNeigbours, _ratings);

            _result = Math.Round(result, 3);
        }