You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

TestUtils.cs 1.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Microsoft.VisualStudio.TestTools.UnitTesting;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. namespace Shadowsocks.Test
  6. {
  7. class TestUtils
  8. {
  9. public static void ArrayEqual<T>(IEnumerable<T> expected, IEnumerable<T> actual, string msg = "")
  10. {
  11. var e1 = expected.GetEnumerator();
  12. var e2 = actual.GetEnumerator();
  13. int ctr = 0;
  14. while (true)
  15. {
  16. var e1next = e1.MoveNext();
  17. var e2next = e2.MoveNext();
  18. if (e1next && e2next)
  19. {
  20. Assert.AreEqual(e1.Current, e2.Current, "at " + ctr);
  21. }
  22. else if (!e1next && !e2next)
  23. {
  24. return;
  25. }
  26. else if (!e1next)
  27. {
  28. Assert.Fail($"actual longer than expected ({ctr}) {msg}");
  29. }
  30. else
  31. {
  32. Assert.Fail($"actual shorter than expected ({ctr}) {msg}");
  33. }
  34. ctr++;
  35. }
  36. }
  37. }
  38. }