Esempio n. 1
0
        public void BisectLeft_MultipleItemsExists_Test()
        {
            var array = new[] { 0, 1, 1, 1, 2, 3 };
            var index = SortingHelper.CalculateSortedInsertIndex(array, 1, SortMethod.BisectLeft);

            Assert.Equal(1, index);
        }
        [HttpPost] // Sorts passed list and saves to file
        public ActionResult <string> SortNumbersList([FromBody] DataToSort pDataToSort)
        {
            try
            {
                if (pDataToSort.InputData.Length == 0 || pDataToSort.InputData == null)
                {
                    return(BadRequest());
                }
                SortingHelper vSorter = new SortingHelper();
                int[]         vSortedArray;
                try
                {
                    vSortedArray = vSorter.SortNumbers(pDataToSort.InputData);
                }
                catch (Exception ex)
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, "Error during array sorting: +" +
                                      Environment.NewLine + ex.StackTrace));
                }

                return(Ok(gFilesHelper.SaveSortedData(vSortedArray)));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex.Message));
            }
        }
Esempio n. 3
0
    public static T[] BubbleSort <T>(params T[] source) where T : IComparable
    {
        bool sorted = false;

        for (int iteration = 0; iteration <= source.Length * source.Length; iteration++)        //Worst case is n^2
        {
            bool swapped = false;
            for (int i = 0; i < source.Length - 1; i++)
            {
                if (source[i].CompareTo(source[i + 1]) == 1)
                {
                    SortingHelper.Swap(ref source[i], ref source[i + 1]);
                    swapped = true;
                }
            }

            if (!swapped)
            {
                sorted = true;
                Debug.Log(iteration);
                break;
            }
        }

        if (!sorted)
        {
            throw new ArgumentException("Too few iterations to sort array.");
        }

        return(source);
    }
Esempio n. 4
0
        public void FilterFlightsByAirportPair_MultipleAirportPairs_ReturnsFilteredFlights()
        {
            // Arrange
            var firstFlight = new Flight
            {
                DepartureAirportCode = "SEA",
                ArrivalAirportCode   = "PHX"
            };
            var secondFlight = new Flight
            {
                DepartureAirportCode = "SEA",
                ArrivalAirportCode   = "PHX"
            };
            var thirdFlight = new Flight
            {
                DepartureAirportCode = "PHX",
                ArrivalAirportCode   = "LAX"
            };
            var initialFlights = new List <Flight> {
                firstFlight, secondFlight, thirdFlight
            };

            var sortingHelper = new SortingHelper();

            // Act
            var filteredFlights = sortingHelper.FilterFlightsByAirportPair("SEA", "PHX", initialFlights);

            // Assert
            filteredFlights.Count.ShouldBe(2);
            filteredFlights.ShouldNotContain(thirdFlight);
        }
Esempio n. 5
0
        public void SortFlightsByDepartureTimeEarlyToLate_ReverseOrderedFlights_ReturnsSortedFlights()
        {
            // Arrange
            var firstFlight = new Flight
            {
                ScheduledDepartureTime = "6:00 PM"
            };
            var secondFlight = new Flight
            {
                ScheduledDepartureTime = "9:00 AM"
            };
            var initialFlights = new List <Flight> {
                firstFlight, secondFlight
            };

            var sortingHelper = new SortingHelper();

            // Act
            var sortedFlights = sortingHelper.SortFlightsByDepartureTimeEarlyToLate(initialFlights);

            initialFlights.Reverse();

            // Assert
            sortedFlights.ShouldBe(initialFlights);
        }
Esempio n. 6
0
 protected void InitializePager(IEnumerable <Product> entities)
 {
     ViewModel.Pagging.List = SortingHelper.ToSortedPagedList(entities, (Sort)ViewModel.SortFilter.Sort,
                                                              ViewModel.PageSizeFilter.PageSize,
                                                              ViewModel.PageFilter.Page);
     InitializeRoutes();
 }
Esempio n. 7
0
        public void BisectRight_ItemNotExists_Test()
        {
            var array = new[] { 0, 1, 3 };
            var index = SortingHelper.CalculateSortedInsertIndex(array, 2, SortMethod.BisectRight);

            Assert.Equal(2, index);
        }
Esempio n. 8
0
    public static T[] CombSort <T>(float shrinkFactor, params T[] source) where T : IComparable
    {
        bool sorted = false;

        int gap = source.Length;

        for (int iteration = 0; iteration <= source.Length * source.Length; iteration++)        //Worst case is n^2
        {
            bool swapped = false;
            for (int i = 0; i + gap < source.Length; i++)
            {
                if (source[i].CompareTo(source[i + gap]) == 1)
                {
                    SortingHelper.Swap(ref source[i], ref source[i + gap]);
                    swapped = true;
                }
            }

            gap = Mathf.FloorToInt(gap / shrinkFactor);
            gap = Mathf.Clamp(gap, 1, source.Length);

            if (!swapped && gap == 1)            //Gap must be 1(regular bubble sort) to make sure everything was sorted
            {
                sorted = true;
                break;
            }
        }

        if (!sorted)        //MaxIterations were hit
        {
            throw new ArgumentException("Too few iterations to sort array.");
        }

        return(source);
    }
Esempio n. 9
0
 public void InitHelpers()
 {
     cartHelper           = new CartHelper(driver);
     comparingHelper      = new ComparingHelper(driver);
     discountHelper       = new DiscountHelper(driver);
     filterHelper         = new FilterHelper(driver);
     productCatalogHelper = new ProductCatalogHelper(driver);
     productListHelper    = new ProductListHelper(driver);
     searchHelper         = new SearchHelper(driver);
     sortingHelper        = new SortingHelper(driver);
 }
Esempio n. 10
0
        public IEnumerable <House> GetFilteredListOfHouses(Properties.SearchCriteria searchCriteria, Properties.SortingCriteria sortingCritera, Houses serviceData)
        {
            ServiceData = serviceData;
            if (ServiceData == null)
            {
                GetHousingInfo();
            }

            _sortingHelper = SortingHelper.Create(ServiceData);
            return(_sortingHelper.GetSortedHouseList(searchCriteria, sortingCritera));
        }
Esempio n. 11
0
        public House GetIdealHouse(Houses serviceData)
        {
            ServiceData = serviceData;

            if (ServiceData == null)
            {
                GetHousingInfo();
            }
            _sortingHelper = SortingHelper.Create(ServiceData);
            return(_sortingHelper.GetIdealHouse());
        }
Esempio n. 12
0
        public async Task <IEnumerable <Order> > GetAllFilteredAsync(PaginationFilter paginationFilter, SortingFilter sortingFilter, GetAllOrdersFilter filter = null)
        {
            var query = dbContext.Set <Order>()
                        .Include(x => x.OrderDetails)
                        .ThenInclude(x => x.Product)
                        .AsQueryable();

            AddFiltersOnQuery(ref query, filter);
            SortingHelper.ApplySort(ref query, sortingFilter.OrderBy);

            return(await PaginationHelper <Order> .PagedList(query, paginationFilter.Page));
        }
Esempio n. 13
0
        private void StartAlgorithm_Execute()
        {
            try
            {
                IAlgorithm algorithm;

                if (!CheckContainerSize())
                {
                    throw new InvalidContainerSizeException("Container is not big enough to contain biggest object. Enlarge the container.");
                }

                if (Dimensionality == AlgorithmDimensionality.TwoDimensional)
                {
                    Container2D startingContainer = containerFactory.Create(algorithmProperties, ContainerWidth, ContainerHeight);
                    algorithm = factory.Create(algorithmProperties, startingContainer);
                }
                else
                {
                    Container3D startingContainer = containerFactory.Create(algorithmProperties, ContainerWidth, ContainerHeight, ContainerDepth);
                    algorithm = factory.Create(algorithmProperties, startingContainer);
                }

                stopwatch.Reset();

                var sortedObjects = SortingHelper.Sort(objectsToPack, ObjectOrdering);

                stopwatch.Start();
                algorithm.Execute(sortedObjects);
                stopwatch.Stop();

                var endResults = algorithm.CreateResults();

                ExecutionTime                     = stopwatch.ElapsedMilliseconds;
                Quality                           = endResults.Quality;
                ContainersUsed                    = endResults.ContainersUsed;
                ObjectAmount                      = endResults.ObjectCount;
                ObjectTotalFullfilment            = endResults.ObjectsTotalFulfillment;
                ContainerFulfillment              = endResults.ContainerFulfillment;
                AverageFulfillmentRatio           = endResults.AverageFulfillmentRatio;
                FulfillmentRatioStandardDeviation = endResults.FulfillmentRatioStandardDeviation;
                WorstFulfillment                  = endResults.WorstFulfillment;

                System.Windows.MessageBox.Show("Program successfully packed input object set.", "End of packing.");
            }
            catch (Exception err)
            {
                System.Windows.MessageBox.Show("Error during executing algorithm: " + err.Message, "Error");
            }
        }
    public static int DescendingOrder(int inputNumber)
    {
        int output;

        // it was not explained in the task how to handle negative values so only choice I had was to throw an exception
        if (inputNumber < MinimalAllowedNumber)
        {
            throw new Exception($"Input number must be higher than or equal to { MinimalAllowedNumber }.");
        }

        var inputNumberAsCharArray = ConvertionHelper.IntToCharArray(inputNumber);

        SortingHelper.SortCharArrayDescending(inputNumberAsCharArray);
        output = ConvertionHelper.CharArrayToInt(inputNumberAsCharArray);

        return(output);
    }
Esempio n. 15
0
        public SortingFilter(string sortField, bool ascending)
        {
            var sortFields = SortingHelper.GetSortField();

            sortField = sortField.ToLower();

            if (sortFields.Select(x => x.Key).Contains(sortField.ToLower()))
            {
                sortField = sortFields.Where(x => x.Key == sortField).Select(x => x.Value).SingleOrDefault();
            }
            else
            {
                sortField = "Id";
            }

            SortField = sortField;
            Ascending = ascending;
        }
Esempio n. 16
0
        private static void RunAlgorithm()
        {
            IFigure           startingContainer;
            IAlgorithm        algorithm;
            Stopwatch         stopwatch        = new Stopwatch();
            IContainerFactory containerFactory = new ContainerFactory();
            IAlgorithmFactory factory          = new AlgorithmFactory();



            if (Properties.Dimensionality == AlgorithmDimensionality.TwoDimensional)
            {
                startingContainer = containerFactory.Create(Properties, ContainerWidth, ContainerHeight);
                algorithm         = factory.Create(Properties, startingContainer);
            }
            else
            {
                startingContainer = containerFactory.Create(Properties, ContainerWidth, ContainerHeight, ContainerDepth);
                algorithm         = factory.Create(Properties, startingContainer);
            }

            ObjectSet objectsToPack = LoadObjectSet();

            if (!CheckContainerSize(objectsToPack))
            {
                throw new InvalidContainerSizeException("Container is not big enough to contain biggest object. Enlarge the container.");
            }


            stopwatch.Reset();

            var sortedObjects = SortingHelper.Sort(objectsToPack, Ordering);

            stopwatch.Start();
            algorithm.Execute(sortedObjects);
            stopwatch.Stop();

            var endResults = algorithm.CreateResults();

            endResults.ExecutionTime = stopwatch.ElapsedMilliseconds;

            WriteResiltsToCsv(endResults, startingContainer);
        }
Esempio n. 17
0
        public AllRoleProfilesViewModel(
            IEnumerable <RoleProfile> roleProfiles,
            string?searchString,
            string sortBy,
            string sortDirection,
            int page
            ) : base(searchString, sortBy, sortDirection, page)
        {
            var sortedItems = SortingHelper.SortRoleProfileItems(
                roleProfiles,
                sortBy,
                sortDirection
                );
            var filteredItems = SearchHelper.FilterRoleProfiles(sortedItems, SearchString, 60, false).ToList();

            MatchingSearchResults = filteredItems.Count;
            SetTotalPages();
            var paginatedItems = PaginateItems(filteredItems);

            RoleProfiles = paginatedItems.Cast <RoleProfile>();
        }
Esempio n. 18
0
        /// <summary>
        /// Sorts IQueryable source according to provided sort criteria  and sort functor
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source">Source IQueryable</param>
        /// <param name="sortCriteria">SortCriteria to be used for sorting</param>
        /// <param name="sortFunctor">Sort functor to be used for sorting</param>
        /// <returns><see cref="IOrderedQueryable<typeparamref name="T"/>"/></returns>
        public static IOrderedQueryable <T> DoSorting <T>(this IQueryable <T> source, IEnumerable <SortCriteria> sortCriteria, Func <string, Expression <Func <T, object> > > sortFunctor)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            // Convert to IOrderedQueryable, will leave current order
            var ordered = source.OrderBy(x => 0);

            if (!ordered.Any() || sortCriteria == null || !sortCriteria.Any())
            {
                return(ordered);
            }

            foreach (var sortRule in sortCriteria.OrderBy(x => x.Priority))
            {
                ordered = SortingHelper.ApplySortRule(ordered, sortRule, sortFunctor);
            }

            return(ordered);
        }
Esempio n. 19
0
        public IActionResult SizeList(SearchPaginationListModel searchModel)
        {
            try
            {
                if (searchModel.pageNo <= 0)
                {
                    searchModel.pageNo = 1;
                }
                var sizeList = iSize.GetSizeList(searchModel.searchString);
                if (sizeList != null)
                {
                    List <SizeListModel> sizeResult = new List <SizeListModel>();
                    sizeResult = SizeHelper.BindSizeListModel(sizeList);
                    var sizeIds     = SizeHelper.GetSizeIds(sizeResult);
                    var productList = iSize.GetTotalProductSizeCount(sizeIds);
                    sizeResult = SizeHelper.BindSizeListModel(sizeResult, productList);

                    #region Sorting
                    var sizeResult1 = SortingHelper.GetSortedSizes(searchModel.column, searchModel.direction, sizeResult).ToPagedList(searchModel.pageNo, searchModel.limit).ToList();
                    #endregion

                    PagedListModel <SizeListModel> pagedListModel = new PagedListModel <SizeListModel>();
                    pagedListModel.Items = sizeResult1.ToList();
                    pagedListModel.Total = sizeResult.Select(x => x.SizeId).Distinct().Count();
                    return(Ok(ResponseHelper.Success(pagedListModel)));
                }
                else
                {
                    return(Ok(ResponseHelper.Error(MessageConstants.DataNotFound)));
                }
            }
            catch (Exception ex)
            {
                LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
                return(Ok(ResponseHelper.Error(ex.Message)));
            }
        }
Esempio n. 20
0
    public void ShowChoiceButtons(DialogueFragment hubFragment)
    {
        HideChoiceButtons();
        if (hubFragment.OutputPins[0].Connections.Count <= 0)
        {
            Debug.LogError("Hub has no choices!");
        }

        List <SortingHelper> sorts = new List <SortingHelper>();

        for (int i = 0; i < hubFragment.OutputPins[0].Connections.Count; ++i)
        {
            DialogueFragment    frag           = hubFragment.OutputPins[0].Connections[i].Target as DialogueFragment;
            IObjectWithPosition positionObject = hubFragment.OutputPins[0].Connections[i].Target as IObjectWithPosition;

            SortingHelper sort = new SortingHelper();
            sort.Fragment  = frag;
            sort.PositionY = positionObject.Position.y;
            sorts.Add(sort);
        }

        sorts = sorts.OrderBy(f => f.PositionY).ToList();

        for (int i = 0; i < sorts.Count; ++i)
        {
            if (sorts[i].Fragment.InputPins[0].Evaluate())
            {
                DialogueChoiceButton choiceButton = Instantiate(ButtonChoiceTemplate);

                choiceButton.gameObject.SetActive(true);
                choiceButton.gameObject.transform.SetParent(PanelChoice, false);
                choiceButton.SetChoice(i, sorts[i].Fragment);
                ButtonChoiceList.Add(choiceButton);
            }
        }
    }
Esempio n. 21
0
 /// <summary>
 /// Orders IOrderedQueryable ThenByDescending
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="source">Source IQueryable to order ThenByDescending</param>
 /// <param name="property">Property for ordering</param>
 /// <returns><see cref="IOrderedQueryable<typeparamref name="T"/>"/></returns>
 public static IOrderedQueryable <T> ThenByDescending <T>(this IOrderedQueryable <T> source, string property)
 {
     return(SortingHelper.ApplyOrder <T>(source, property, "ThenByDescending"));
 }
Esempio n. 22
0
 /// <summary>
 /// Orders IOrderedQueryable Ascending
 /// </summary>
 /// <typeparam name="T">IOrderedQueryable</typeparam>
 /// <param name="source">Source IQueryable to OrderByAscending</param>
 /// <param name="property">Property for ordering</param>
 /// <returns><see cref="IOrderedQueryable<typeparamref name="T"/>"/></returns>
 public static IOrderedQueryable <T> OrderBy <T>(this IQueryable <T> source, string property)
 {
     return(SortingHelper.ApplyOrder <T>(source, property, "OrderBy"));
 }
Esempio n. 23
0
 public IActionResult GetSortFields()
 {
     return(Ok(SortingHelper.GetSortField().Select(x => x.Key)));
 }
Esempio n. 24
0
    public override void InitManager()
    {
        base.InitManager();
        instance = this;

        if (MirrorReference.HasReference)
        {
            MirrorTemplate = MirrorReference.GetObject <template_item>();
        }
        if (EraserReference.HasReference)
        {
            EraserTemplate = EraserReference.GetObject <template_item>();
        }
        if (ShopKeeperAltGreetReference.HasReference)
        {
            List <SortingHelper> sorts            = new List <SortingHelper>();
            Dialogue             altGreetDialogue = ShopKeeperAltGreetReference.GetObject <Dialogue>();
            for (int i = 0; i < altGreetDialogue.Children.Count; ++i)
            {
                DialogueFragment frag = altGreetDialogue.Children[i] as DialogueFragment;
                if (frag != null)
                {
                    IObjectWithPosition positionObject = frag as IObjectWithPosition;

                    SortingHelper sort = new SortingHelper();
                    sort.Fragment  = frag;
                    sort.PositionY = positionObject.Position.y;
                    sorts.Add(sort);
                }
            }

            sorts.OrderBy(f => f.PositionY);

            for (int i = 0; i < sorts.Count; ++i)
            {
                AltGreetFragments.Add(sorts[i].Fragment);
            }
        }

        for (int i = 0; i < 3; ++i)
        {
            ItemDictionary.Add(i, new List <template_item>());
        }
        if (StarterBodyReference.HasReference)
        {
            StarterBody = StarterBodyReference.GetObject <template_item>();
        }
        if (StarterHeadReference.HasReference)
        {
            StarterHead = StarterHeadReference.GetObject <template_item>();
        }

        if (ItemFolderReference.HasReference)
        {
            UserFolder itemFolder = ItemFolderReference.GetObject <UserFolder>();

            if (itemFolder != null)
            {
                for (int i = 0; i < itemFolder.Children.Count; ++i)
                {
                    UserFolder childFolder = itemFolder.Children[i] as UserFolder;
                    for (int j = 0; j < childFolder.Children.Count; ++j)
                    {
                        template_item item = childFolder.Children[j] as template_item;

                        UserFolder childSubfolder = childFolder.Children[j] as UserFolder;
                        if (childSubfolder != null)
                        {
                            for (int y = 0; y < childSubfolder.Children.Count; ++y)
                            {
                                template_item subfolderItem = childSubfolder.Children[y] as template_item;
                                if (subfolderItem != null)
                                {
                                    ReadItemData(subfolderItem);
                                }
                            }
                        }
                        if (item != null)
                        {
                            ReadItemData(item);
                        }
                    }
                }
            }
            Debug.Log("Found " + ItemDictionary[0].Count + " Slot 0 items");
            Debug.Log("Found " + ItemDictionary[1].Count + " Slot 1 items");
            Debug.Log("Found " + ItemDictionary[2].Count + " Slot 2 items");

            Debug.Log("Found " + HeadList.Count + " heads");
            Debug.Log("Found " + BodyList.Count + " bodies");
        }
    }
Esempio n. 25
0
        static void Main(string[] args)
        {
            User user1 = new User("Igor Dzambazov");

            user1.SetAge(55);

            User user2 = new User("Vaska Vasileva");

            user2.SetAge(26);

            User user3 = new User("Petko Petkovski");

            user3.SetAge(35);

            User user4 = new User("Mitre Mitrevski");

            user4.SetAge(52);

            User user5 = new User("Mia Minovska");

            user5.SetAge(20);

            User user6 = new User("Daniela Ristevska");

            user6.SetAge(33);

            User user7 = new User("Darko Trajkov");

            user7.SetAge(78);

            User user8 = new User("Luka Dimitriev");

            user8.SetAge(18);

            User user9 = new User("Darijan Andreevski");

            user9.SetAge(62);

            User user10 = new User("Vojdan Trpkovski");

            user10.SetAge(29);


            Ticket ticket1 = new Ticket()
            {
                Combination = new int[] { 11, 23, 5, 34, 3, 16, 7 },
                User        = user1
            };

            Session.AddToArrayTickets(ticket1);


            Ticket ticket2 = new Ticket()
            {
                Combination = new int[] { 18, 6, 32, 4, 27, 9, 23 },
                User        = user2
            };

            Session.AddToArrayTickets(ticket2);


            Ticket ticket3 = new Ticket()
            {
                Combination = new int[] { 5, 14, 16, 8, 25, 29, 24 },
                User        = user3
            };

            Session.AddToArrayTickets(ticket3);


            Ticket ticket4 = new Ticket()
            {
                Combination = new int[] { 4, 28, 17, 19, 25, 6, 3 },
                User        = user4
            };

            Session.AddToArrayTickets(ticket4);


            Ticket ticket5 = new Ticket()
            {
                Combination = new int[] { 1, 15, 24, 25, 26, 36, 31 },
                User        = user5
            };

            Session.AddToArrayTickets(ticket5);


            Ticket ticket6 = new Ticket()
            {
                Combination = new int[] { 2, 8, 9, 15, 28, 34, 1 },
                User        = user6
            };

            Session.AddToArrayTickets(ticket6);


            Ticket ticket7 = new Ticket()
            {
                Combination = new int[] { 5, 4, 19, 18, 6, 32, 2 },
                User        = user7
            };

            Session.AddToArrayTickets(ticket7);


            Ticket ticket8 = new Ticket()
            {
                Combination = new int[] { 9, 12, 18, 25, 26, 35, 4 },
                User        = user8
            };

            Session.AddToArrayTickets(ticket8);


            Ticket ticket9 = new Ticket()
            {
                Combination = new int[] { 15, 18, 21, 25, 28, 31, 34 },
                User        = user9
            };

            Session.AddToArrayTickets(ticket9);


            Ticket ticket10 = new Ticket()
            {
                Combination = new int[] { 3, 19, 35, 2, 7, 14, 6 },
                User        = user10
            };

            Session.AddToArrayTickets(ticket10);
            int answer = 0;

            while (answer != 2)
            {
                Console.WriteLine("Do you want to add a new user(1) or start the session(2)? ");
                var input = Console.ReadLine();
                while (true)
                {
                    if (input == "1" || input == "2")
                    {
                        break;
                    }
                    Console.WriteLine("You need to enter 1(new user) or 2(start session).");
                    input = Console.ReadLine();
                }

                int.TryParse(input, out answer);

                switch (answer)
                {
                case 1:
                    AddUserHelper.AddNewTicket();
                    break;

                case 2:
                {
                    Session firstSession = new Session();
                    firstSession.StartSession();
                    firstSession.PrintWinningCombination();
                    Console.WriteLine("All users participating in the session are: ");
                    Session.Print();

                    SortingHelper.SortTickets(firstSession);
                    WinnersAnnouncement.AnnounceWinners(firstSession);

                    FirstSession.GetFirstSessionWinner(firstSession);
                    SecondSession.GetSecondSessionWinner(firstSession);
                }
                break;
                }
            }


            Console.ReadLine();
        }
        protected override void Run()
        {
            var sortingHelper = new SortingHelper();

            sortingHelper.QuickSort(values, 0, values.Length - 1);
        }
Esempio n. 27
0
        void pnListColor_Paint(object sender, PaintEventArgs e)
        {
            if (currentDrawing == DRAWING.NONE)
            {
            }
            else if (currentDrawing == DRAWING.LIST_VW_COLORS)
            {
                #region
                pnListColor.AutoScroll = true;
                pnListColor.CreateGraphics().SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
                Graphics g = e.Graphics;
                int      x = 0, y = 0;
                int      widthEachColor = 30;

                List <Color> colorVisualWord = ColorHelper.GenerateColorVisualWord_Rgb();
                for (int i = 0; i < colorVisualWord.Count; i++)
                {
                    DrawDot(g, new Dot_RGB(new Point(x + widthEachColor / 2, y + widthEachColor / 2), widthEachColor / 2, colorVisualWord[i]));
                    x += widthEachColor + 10;

                    // go to new row
                    if (x + widthEachColor + 10 > pnListColor.Width - widthEachColor / 2)
                    {
                        x  = 0;
                        y += widthEachColor + 20;
                    }
                }
                #endregion
            }
            else if (currentDrawing == DRAWING.LIST_VW_COLORS_RGB_SORTED)
            {
                #region
                // Input: rgb color
                // Output: draw input color, draw visualize color in distance order des, distance below the color

                Color        inputColor     = Color.FromArgb(int.Parse(txtR.Text.Trim()), int.Parse(txtG.Text.Trim()), int.Parse(txtB.Text.Trim()));
                List <Color> listVWColorRgb = ColorHelper.GenerateColorVisualWord_Rgb();

                List <double> listDistance = new List <double>();
                foreach (Color colorVWRgb in listVWColorRgb)
                {
                    listDistance.Add(DistanceHelper.CalDistance_RGBEuclid(Color.FromArgb((int)inputColor.R, (int)inputColor.G, (int)inputColor.B), colorVWRgb));
                }
                List <int> listIndexSortAsc = SortingHelper.SortAsc(listDistance);



                DrawDot(pnVisualizse.CreateGraphics(), new Dot_RGB(new Point(50, 50), 20, Color.FromArgb(int.Parse(txtR.Text.Trim()), int.Parse(txtG.Text.Trim()), int.Parse(txtB.Text.Trim()))));

                int          x = 0, y = 0;
                int          widthEachColor = 30;
                List <Color> colorVisualWord = ColorHelper.GenerateColorVisualWord_Rgb();
                foreach (int index in listIndexSortAsc)
                {
                    //Console.WriteLine(listDistance[index]);

                    Graphics g = e.Graphics;
                    //g.Clear(Color.Green);
                    DrawDot(g, new Dot_RGB(new Point(x + widthEachColor / 2, y + widthEachColor / 2), widthEachColor / 2, colorVisualWord[index]));
                    g.DrawString(Math.Round(listDistance[index], 1).ToString(), new Font("Arial", 8), new SolidBrush(Color.Black), x, y + widthEachColor);
                    x += widthEachColor + 10;

                    // go to new row
                    if (x + widthEachColor + 10 > pnListColor.Width - widthEachColor / 2)
                    {
                        x  = 0;
                        y += widthEachColor + 20;
                    }
                }
                #endregion
            }
            else if (currentDrawing == DRAWING.LIST_VW_COLORS_LAB_SORTED)
            {
                #region
                // Input: rgb color
                // Output: draw input color, draw visualize color in distance order des, distance below the color

                Lab inputColor = ColorHelper.RgbToLab(new Rgb {
                    R = double.Parse(txtR.Text.Trim()), G = double.Parse(txtG.Text.Trim()), B = double.Parse(txtB.Text.Trim())
                });
                List <Lab> listVWColorLab = ColorHelper.GenerateColorVisualWord_Lab();

                List <double> listDistance = new List <double>();
                if (currentDeltaE == DELTA_E.CIE76)
                {
                    calDistanceHander = DistanceHelper.CalDistance_CIE76;
                }
                else if (currentDeltaE == DELTA_E.CMCIC)
                {
                    calDistanceHander = DistanceHelper.CalDistance_CMCIC;
                }
                else if (currentDeltaE == DELTA_E.CIE94)
                {
                    calDistanceHander = DistanceHelper.CalDistance_CIE94;
                }
                else if (currentDeltaE == DELTA_E.CIE2000)
                {
                    calDistanceHander = DistanceHelper.CalDistance_CIE2000;
                }
                foreach (Lab colorVWLab in listVWColorLab)
                {
                    listDistance.Add(calDistanceHander(inputColor, colorVWLab));
                }
                List <int> listIndexSortAsc = SortingHelper.SortAsc(listDistance);



                DrawDot(pnVisualizse.CreateGraphics(), new Dot_RGB(new Point(50, 50), 20, Color.FromArgb(int.Parse(txtR.Text.Trim()), int.Parse(txtG.Text.Trim()), int.Parse(txtB.Text.Trim()))));

                int          x = 0, y = 0;
                int          widthEachColor = 30;
                List <Color> colorVisualWord = ColorHelper.GenerateColorVisualWord_Rgb();
                foreach (int index in listIndexSortAsc)
                {
                    //Console.WriteLine(listDistance[index]);

                    Graphics g = e.Graphics;
                    //g.Clear(Color.Green);
                    DrawDot(g, new Dot_RGB(new Point(x + widthEachColor / 2, y + widthEachColor / 2), widthEachColor / 2, colorVisualWord[index]));
                    g.DrawString(Math.Round(listDistance[index], 1).ToString(), new Font("Arial", 8), new SolidBrush(Color.Black), x, y + widthEachColor);
                    x += widthEachColor + 10;

                    // go to new row
                    if (x + widthEachColor + 10 > pnListColor.Width - widthEachColor / 2)
                    {
                        x  = 0;
                        y += widthEachColor + 20;
                    }
                }
                #endregion
            }
        }
Esempio n. 28
0
        static void Main(string[] args)
        {
            //Lze upravit výchozí hodnoty pro generování
            int        min   = -500;
            int        max   = 200;
            int        count = 1000;
            string     path;
            string     fileName;
            string     saveQ;
            bool?      saveToFile = null;
            List <int> lst        = null;

            Console.WriteLine("Chcete generovat náhodná čísla do souboru? Ano/Ne");

            while (!saveToFile.HasValue)
            {
                saveQ = Console.ReadLine().Trim();
                if (saveQ.ToLower() == "ano")
                {
                    //Přepsat soubor
                    saveToFile = true;
                    break;
                }
                else if (saveQ.ToLower() == "ne")
                {
                    //Nepřepsat soubor
                    saveToFile = false;
                    break;
                }
                Console.WriteLine(@"Neplatný vstup. Zadejte Ano/Ne.");
            }

            if (saveToFile.Value)
            {
                Console.WriteLine("Zadejte vstupní parametry pro přípravu pole celočíselných čísel.");
                Console.Write("Zadejte minimální hodnotu čísla: ");
                while (!int.TryParse(Console.ReadLine(), out min))
                {
                    Console.Write("Vstup není platný. Zadejte minimální hodnotu čísla: ");
                }

                Console.Write("Zadejte maximální hodnotu čísla: ");
                while (!int.TryParse(Console.ReadLine(), out max))
                {
                    Console.Write("Vstup není platný. Zadejte maximální hodnotu čísla: ");
                }

                Console.Write("Zadejte počet generovaných čísel: ");
                while (!int.TryParse(Console.ReadLine(), out count))
                {
                    Console.Write("Vstup není platný. Zadejte počet generovaných čísel: ");
                }

                Console.Write("Zadejte absolutní cestu pro uložení vygenerovaných čísel do souboru(bez názvu souboru): ");
                path = Console.ReadLine();

                while (!Directory.Exists(path))
                {
                    Console.Write("Vstup není platný. Zadejte absolutní cestu pro uložení vygenerovaných čísel do souboru(bez názvu souboru): ");
                    path = Console.ReadLine();
                }

                Console.Write("Zadejte název souboru: ");
                fileName = Console.ReadLine();

                while (fileName.IndexOfAny(Path.GetInvalidFileNameChars()) != -1)
                {
                    Console.Write("Vstup není platný. Zadejte název souboru: ");
                    fileName = Console.ReadLine();
                }

                if (path.Last() != '\\')
                {
                    path += '\\';
                }

                if (RandomGeneratorHelper.GetRandomNumbers(min, max, count, path + fileName))
                {
                    string        data     = File.ReadAllLines(path + fileName)[0];
                    List <string> dataList = data.Split(' ').ToList();
                    lst = dataList.Select(a => int.Parse(a)).ToList();
                }
            }
            else
            {
                lst = RandomGeneratorHelper.GetRandomNumbers(min, max, count);
            }

            //Otestuje vložit všechny hodnoty do stacku + jednu navíc

            /*Console.WriteLine("Stack");
             * TestStack(count, lst);
             *
             * //Otestuje vložit všechny hodnoty do queue + jednu navíc
             * Console.WriteLine("Queue");
             * TestQueue(count, lst);*/
            Console.WriteLine();

            /*Console.WriteLine("Vygenerované pole");
             * Console.WriteLine(String.Join(", ", lst.ToArray()));*/
            /*Console.WriteLine("Select sort");
             * Console.WriteLine(String.Join(", ", SortingHelper.SelectSort(lst.ToArray())));
             * Console.WriteLine("Insert sort");
             * Console.WriteLine(String.Join(", ", SortingHelper.InsertSort(lst.ToArray())));
             * Console.WriteLine("Bubble sort");
             * Console.WriteLine(String.Join(", ", SortingHelper.BubbleSort(lst.ToArray())));*/

            //arr = FileReader.ReadToList(path).ToArray();
            var arr = lst.ToArray();

            SortingHelper.QuickSort(arr);
            FileWriter.WriteListToFile(arr.ToList(), @"c:\skola\ADS\Quick.txt");

            int val = 0;

            Console.Write("Zadejte hledanou hodnotu čísla: ");
            while (!int.TryParse(Console.ReadLine(), out val))
            {
                Console.Write("Vstup není platný. Zadejte hledanou hodnotu čísla: ");
            }
            var retLst = SearchHelper.BinarySearch(arr, val);

            if (retLst.Count == 0)
            {
                Console.WriteLine("Hledaná hodnota {0} nebyla nalezena", val);
            }
            else
            {
                Console.WriteLine("Hledaná hodnota {0} se nachází na pozicích: ", val);
                foreach (var pos in retLst)
                {
                    Console.WriteLine(pos);
                }
            }

            Console.ReadKey();
        }