public void Test() { var result = new ThreeSum_15().ThreeSum(new[] { -1, 0, 1, 2, -1, -4 }); Assert.Equal(2, result.Count); Assert.True(result[0].ContainsSameElement(new[] { -1, -1, 2 })); Assert.True(result[1].ContainsSameElement(new[] { -1, 0, 1 })); }
public async Task ThreeSum_Perf_Tests(string nums, int maxMilliseconds) { var n = nums.Split(",").Select(int.Parse).ToArray(); IList <IList <int> > actual = null; var sw = new Stopwatch(); var actualTask = Task.Run(() => { sw.Start(); actual = ThreeSum_15.ThreeSum(n); sw.Stop(); }); var delayTask = Task.Delay(maxMilliseconds * 100, new CancellationToken()); var completedTask = await Task.WhenAny(actualTask, delayTask); // Assert.False(true, $"ms: '{sw.ElapsedMilliseconds}'"); Assert.True(completedTask.Id == actualTask.Id, $"Elapsed time (ms): '{sw.ElapsedMilliseconds}'"); Assert.NotNull(actual); }
public void ThreeSum_Tests(string nums, string expected) { var n = nums.Split(",").Select(int.Parse).ToArray(); List <List <int> > exp; if (string.IsNullOrWhiteSpace(expected)) { exp = new List <List <int> >(); } else { exp = expected.Split(";") .Select(s => s.Split(",") .Select(int.Parse) .ToList()) .ToList(); } var actual = ThreeSum_15.ThreeSum(n); Assert.NotNull(actual); if (exp.Count != 0) { Assert.NotEmpty(actual); } else { Assert.Empty(actual); return; } Assert.Equal(exp.Count, actual.Count); var actualOrdered = actual.Select(t => t.OrderBy(li => li).ToList()).OrderBy(l => $"{l[0]}{l[1]}{l[2]}").ToList(); var expOrdered = exp.Select(t => t.OrderBy(li => li).ToList()).OrderBy(l => $"{l[0]}{l[1]}{l[2]}").ToList(); for (var i = 0; i < exp.Count; ++i) { Assert.True(expOrdered[i].SequenceEqual(actualOrdered[i])); } }