public void ConstructorTest() { Func<int, double> function = x => x * x * x + 2 * x * x - 10 * x + 1; BinarySearch search = new BinarySearch(function, -4, 3); double root = search.FindRoot(); Assert.AreEqual(0, root); }
public void ConstructorTest4() { // (x+5)^3 + 2(x+5)^2 - 10(x+5) Func<int, double> function = x => { int y = (x + 5); return y * y * y + 2 * y * y - 10 * y; }; BinarySearch search = new BinarySearch(function, -6, -4); double root = search.FindRoot(); Assert.AreEqual(-5, root); }
public void ConstructorTest() { // https://www.wolframalpha.com/input/?i=%28x%2B1%29+*+%28x%2B1%29+*+%28x%2B1%29+%2B+2+*+%28x%2B1%29+*+%28x%2B1%29+%3D+0%2C+x+is+integer Func<int, double> function = x => (x + 1) * (x + 1) * (x + 1) + 2 * (x + 1) * (x + 1); // Possible roots are -3 or -1 BinarySearch search; search = new BinarySearch(function, -2, 3); double r1 = search.FindRoot(); Assert.AreEqual(-1, r1); search = new BinarySearch(function, -10, -2); double r2 = search.FindRoot(); Assert.AreEqual(-3, r2); }
public void ConstructorTest1() { Func<int, double> function = x => elements[x]; BinarySearch search = new BinarySearch(function, 0, elements.Length); int a1 = search.FindRoot(); Assert.AreEqual(1, a1); for (int i = 0; i < elements.Length; i++) { int a2 = search.Find(elements[i]); Assert.AreEqual(i, a2); } }