private static DenseSet <int> ParseDenseSet(string text) { text = text.Trim(); // Empty string means empty set if (text.Length == 0) { return(new()); } // Split by Union and parse intervals var intervalParts = text.Split('U'); var intervals = intervalParts.Select(ParseInterval); // Construct the dense set var result = new DenseSet <int>(); foreach (var iv in intervals) { result.Add(iv); } // Check, if the constructed set is indeed the specified one Assert.True(intervals.SequenceEqual(result)); return(result); }
private static void AssertEquals(DenseSet <int> a, DenseSet <int> b) { // Same intervals Assert.True(a.SequenceEqual(b)); // Set-equality Assert.True(a.SetEquals(b)); Assert.True(b.SetEquals(a)); // Subset-ness Assert.True(a.IsSubsetOf(b)); Assert.True(b.IsSubsetOf(a)); // Proper subset-ness Assert.False(a.IsProperSubsetOf(b)); Assert.False(b.IsProperSubsetOf(a)); // Superset-ness Assert.True(a.IsSupersetOf(b)); Assert.True(b.IsSupersetOf(a)); // Proper superset-ness Assert.False(a.IsProperSupersetOf(b)); Assert.False(b.IsProperSupersetOf(a)); }