コード例 #1
0
        public void TestMethod1()
        {
            DuplicateRemover remover = new DuplicateRemover();

            int result1  = remover.RemoveDuplicates(new int[] { 1, 1, 1 });
            int result2  = remover.RemoveDuplicatesLinq(new int[] { 1, 1, 1 });
            int result3  = remover.RemoveDuplicates(new int[] { 1 });
            int result4  = remover.RemoveDuplicatesLinq(new int[] { 1 });
            int result5  = remover.RemoveDuplicates(new int[] { 1, 2, 3, 4, 4, 5 });
            int result6  = remover.RemoveDuplicatesLinq(new int[] { 1, 2, 3, 4, 4, 5 });
            int result7  = remover.RemoveDuplicates(new int[] { 1, 2, 3, 4, 5 });
            int result8  = remover.RemoveDuplicatesLinq(new int[] { 1, 2, 3, 4, 5 });
            int result9  = remover.RemoveDuplicates(null);
            int result10 = remover.RemoveDuplicatesLinq(null);

            Assert.AreEqual(1, result1);
            Assert.AreEqual(1, result2);
            Assert.AreEqual(1, result3);
            Assert.AreEqual(1, result4);
            Assert.AreEqual(5, result5);
            Assert.AreEqual(5, result6);
            Assert.AreEqual(5, result7);
            Assert.AreEqual(5, result8);
            Assert.AreEqual(0, result9);
            Assert.AreEqual(0, result10);
        }
コード例 #2
0
 private void DoPush(Request request)
 {
     if (!DuplicateRemover.IsDuplicate(request) || ShouldReserved(request))
     {
         PushWhenNoDuplicate(request);
     }
 }
コード例 #3
0
 /// <summary>
 /// Reset duplicate check.
 /// </summary>
 public override void ResetDuplicateCheck()
 {
     lock (_lock)
     {
         _queue.Clear();
         DuplicateRemover.ResetDuplicateCheck();
     }
 }
コード例 #4
0
        /// <summary>
        /// 批量导入
        /// </summary>
        /// <param name="requests">请求对象</param>
        public override void Reload(ICollection <Request> requests)
        {
            if (requests == null)
            {
                return;
            }

            lock (_lock)
            {
                _queue.Clear();
                foreach (var request in requests)
                {
                    if (!DuplicateRemover.IsDuplicate(request))
                    {
                        _queue.Add(request);
                    }
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// 添加请求对象到队列
        /// </summary>
        /// <param name="request">请求对象</param>
        public void Push(Request request)
        {
            var action = new Action(() =>
            {
                if (!DuplicateRemover.IsDuplicate(request))
                {
                    PushWhenNoDuplicate(request);
                }
            });

            if (UseInternet)
            {
                NetworkCenter.Current.Execute("sch-push", action);
            }
            else
            {
                action();
            }
        }
コード例 #6
0
 public int GetTotalRequestsCount(ISpider spider)
 {
     return(DuplicateRemover.GetTotalRequestsCount(spider));
 }
コード例 #7
0
 /// <summary>
 /// 重置去重器
 /// </summary>
 public override void ResetDuplicateCheck()
 {
     DuplicateRemover.ResetDuplicateCheck();
 }
コード例 #8
0
 public virtual void Clear()
 {
     DuplicateRemover.ResetDuplicateCheck();
 }
コード例 #9
0
 public virtual void Dispose()
 {
     DuplicateRemover.Dispose();
 }
コード例 #10
0
 public int GetTotalRequestsCount(ITask task)
 {
     return(DuplicateRemover.GetTotalRequestsCount(task));
 }
コード例 #11
0
        public void VerifyThreeCharMatchIsHandled()
        {
            string output = DuplicateRemover.Remove("helhel");

            Assert.AreEqual("hel", output);
        }
コード例 #12
0
        public void EmptyStringReturnsEmptyString()
        {
            string output = DuplicateRemover.Remove(string.Empty);

            Assert.IsEmpty(output);
        }
コード例 #13
0
        public void NullStringReturnsEmptyString()
        {
            string output = DuplicateRemover.Remove(null);

            Assert.IsEmpty(output);
        }
コード例 #14
0
        public void VerifyShortStringsAreUnchanged()
        {
            string output = DuplicateRemover.Remove("he");

            Assert.AreEqual("he", output);
        }
コード例 #15
0
        public void VerifySimpleOutput()
        {
            string output = DuplicateRemover.Remove("hellohello");

            Assert.AreEqual("hello", output);
        }
コード例 #16
0
 public override long GetTotalRequestsCount()
 {
     return(DuplicateRemover.GetTotalRequestsCount());
 }
コード例 #17
0
        public void VerifyNoDuplicatesLeavesStringUnchanged()
        {
            string output = DuplicateRemover.Remove("hello");

            Assert.AreEqual("hello", output);
        }
コード例 #18
0
 public virtual void Dispose()
 {
     DuplicateRemover.Dispose();
     IsExited = true;
 }
コード例 #19
0
 public void TestRepetitions(string withoutRepetitions, int maxRepetitions, string withRepetitions)
 {
     Assert.Equal(withRepetitions, DuplicateRemover.RemoveRepetitions(withoutRepetitions, maxRepetitions));
 }