From ec3128182be7ed947960cdb5707590b3dfd7787a Mon Sep 17 00:00:00 2001 From: naminodarie Date: Fri, 16 Jul 2021 03:55:16 +0900 Subject: [PATCH] Add VersionCheck --- .../Collections/Generic/SortedSet.TreeSubSet.cs | 2 ++ .../Generic/SortedSet/SortedSet.Generic.cs | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs b/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs index 945c5b03a43d2c..d01ab1183a5f00 100644 --- a/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs +++ b/src/libraries/System.Collections/src/System/Collections/Generic/SortedSet.TreeSubSet.cs @@ -125,6 +125,7 @@ internal override T MinInternal { get { + VersionCheck(); Node? current = root; T? result = default; @@ -155,6 +156,7 @@ internal override T MaxInternal { get { + VersionCheck(); Node? current = root; T? result = default; diff --git a/src/libraries/System.Collections/tests/Generic/SortedSet/SortedSet.Generic.cs b/src/libraries/System.Collections/tests/Generic/SortedSet/SortedSet.Generic.cs index 5e94a196c74d2f..2da60215daaa5b 100644 --- a/src/libraries/System.Collections/tests/Generic/SortedSet/SortedSet.Generic.cs +++ b/src/libraries/System.Collections/tests/Generic/SortedSet/SortedSet.Generic.cs @@ -85,6 +85,23 @@ public void SortedSet_Generic_GetViewBetween_MinMax_Exhaustive() } } } + + [Fact] + public void SortedSet_Generic_GetViewBetween_MinMax_Updating() + { + var set = (SortedSet)CreateSortedSet(new[] { 1 }, 1, 1); + var lowerView = set.GetViewBetween(-5, -2); + var upperView = set.GetViewBetween(2, 5); + + set.Add(-3); + set.Add(2); + set.Add(3); + + Assert.Equal(-3, lowerView.Min); + Assert.Equal(-3, lowerView.Max); + Assert.Equal(2, upperView.Min); + Assert.Equal(3, upperView.Max); + } } public class SortedSet_Generic_Tests_int_With_NullComparer : SortedSet_Generic_Tests_int