Esempio n. 1
0
        public void Run()
        {
            PrintProblem();

            Console.WriteLine("Number of queries:");
            a = long.Parse(Console.ReadLine());

            List <List <int> > d = new List <List <int> >();

            Console.WriteLine("Queries:");
            for (int i = 0; i < a; i++)
            {
                d[i] = new List <int>(System.Array.ConvertAll(Console.ReadLine().Split(' '), arrTemp => Convert.ToInt32(arrTemp)));
            }

            List <int> result = FrequencyQueries.freqQuery(d);

            Console.WriteLine();
            Console.WriteLine("Result:");
            foreach (var c in result)
            {
                Console.WriteLine(c);
            }
            Console.ReadKey();
        }
Esempio n. 2
0
        public void FrequencyQueriesTest2()
        {
            List <int> result = new List <int>();

            List <List <int> > queries = new List <List <int> >
            {
                new List <int> {
                    3, 4
                },
                new List <int> {
                    2, 1003
                },
                new List <int> {
                    1, 16
                },
                new List <int> {
                    3, 1
                }
            };

            result = FrequencyQueries.freqQuery(queries);

            Assert.AreEqual(0, result[0]);
            Assert.AreEqual(1, result[1]);
        }
Esempio n. 3
0
        public void FrequencyQueriesTest3()
        {
            List <int> result = new List <int>();

            List <List <int> > queries = new List <List <int> >
            {
                new List <int> {
                    1, 3
                },
                new List <int> {
                    2, 3
                },
                new List <int> {
                    3, 2
                },
                new List <int> {
                    1, 4
                },
                new List <int> {
                    1, 5
                },
                new List <int> {
                    1, 5
                },
                new List <int> {
                    1, 4
                },
                new List <int> {
                    3, 2
                },
                new List <int> {
                    2, 4
                },
                new List <int> {
                    3, 2
                }
            };

            result = FrequencyQueries.freqQuery(queries);

            Assert.AreEqual(0, result[0]);
            Assert.AreEqual(1, result[1]);
            Assert.AreEqual(1, result[2]);
        }
Esempio n. 4
0
        public void Test1()
        {
            // Arrange
            List <List <int> > queries = new List <List <int> >
            {
                new List <int> {
                    1, 1
                },
                new List <int> {
                    2, 2
                },
                new List <int> {
                    3, 2
                },
                new List <int> {
                    1, 1
                },
                new List <int> {
                    1, 1
                },
                new List <int> {
                    2, 1
                },
                new List <int> {
                    3, 2
                }
            };

            // Act
            (Dictionary <int, int> dataDict, Dictionary <int, int> frequencyDict, List <int> resultList) = FrequencyQueries.FrequeryQuery(queries);          // [0, 1]

            // Assert
            Dictionary <int, int> expectedDataDict = new Dictionary <int, int>
            {
                [1] = 2
            };
            Dictionary <int, int> expectedFrequencyDict = new Dictionary <int, int>
            {
                [1] = 1
            };
            List <int> expectedResultList = new List <int> {
                0, 1
            };

            Assert.Equal(expectedResultList, resultList);
            Assert.Equal(expectedResultList, resultList);
            Assert.Equal(expectedResultList, resultList);
        }
Esempio n. 5
0
        public void Test8()
        {
            // Arrange
            List <List <int> > queries = new List <List <int> >
            {
                new List <int> {
                    1, 2
                },
                new List <int> {
                    3, 1
                },
                new List <int> {
                    2, 1
                },
                new List <int> {
                    2, 2
                },
                new List <int> {
                    3, 1
                }
            };

            // Act
            (Dictionary <int, int> dataDict, Dictionary <int, int> frequencyDict, List <int> resultList) = FrequencyQueries.FrequeryQuery(queries);

            // Assert
            Dictionary <int, int> expectedDataDict      = new Dictionary <int, int>();
            Dictionary <int, int> expectedFrequencyDict = new Dictionary <int, int>();
            List <int>            expectedResultList    = new List <int> {
                1, 0
            };

            Assert.Equal(expectedDataDict, dataDict);
            Assert.Equal(expectedFrequencyDict, frequencyDict);
            Assert.Equal(expectedResultList, resultList);
        }
Esempio n. 6
0
        public void Test5()
        {
            // Arrange
            List <List <int> > queries = new List <List <int> >
            {
                new List <int> {
                    1, 1
                },
                new List <int> {
                    1, 2
                },
                new List <int> {
                    1, 3
                },
                new List <int> {
                    1, 4
                },
                new List <int> {
                    1, 5
                },
                new List <int> {
                    3, 1
                }
            };

            // Act
            (Dictionary <int, int> dataDict, Dictionary <int, int> frequencyDict, List <int> resultList) = FrequencyQueries.FrequeryQuery(queries);

            // Assert
            Dictionary <int, int> expectedDataDict = new Dictionary <int, int>
            {
                [1] = 1,
                [2] = 1,
                [3] = 1,
                [4] = 1,
                [5] = 1
            };
            Dictionary <int, int> expectedFrequencyDict = new Dictionary <int, int>
            {
                [1] = 5
            };
            List <int> expectedResultList = new List <int> {
                1
            };

            Assert.Equal(expectedDataDict, dataDict);
            Assert.Equal(expectedFrequencyDict, frequencyDict);
            Assert.Equal(expectedResultList, resultList);
        }
Esempio n. 7
0
        public void Frequencies()
        {
            var test = new FrequencyQueries();

            test.Run();
        }