public void CtorWithNullHandler() { try { var task = new VariableArgumentTask<int> (1, null); Assert.Fail ("#2"); } catch (ArgumentNullException) {} }
public void CtorWithBadArgs() { int cnt = 1; try { var task = new VariableArgumentTask<int> (-1, (a) => cnt += a.Length); Assert.Fail ("#1"); } catch (OverflowException) {} //LAMEIMPL should throw a smarter exception }
public void Execute() { int cnt = 1; var task = new VariableArgumentTask<int> (2, (a) => cnt += a.Length); try { task.Execute (); Assert.Fail ("#1"); } catch (NullReferenceException) {} task [0] = new PortElement<int> (10); try { task.Execute (); Assert.Fail ("#2"); } catch (NullReferenceException) {} task [1] = new PortElement<int> (20); Assert.IsNull (task.Execute (), "#3"); Assert.AreEqual (3, cnt, "#4"); }
public void ExecuteWithBoundFirstArg() { double cntA = 1; int cntB = 1; var task = new VariableArgumentTask<double, int> (1, (a, b) => { cntA += a; cntB += b.Length; }); task [0] = new PortElement <double> (4); task [1] = new PortElement <int> (2); Assert.IsNull (task.Execute (), "#1"); Assert.AreEqual (5, cntA, "#2"); Assert.AreEqual (2, cntB, "#3"); }
public void PortElementCountWithBoundFirstArg() { double cntA = 1; int cntB = 1; var task = new VariableArgumentTask<double, int> (1, (a, b) => { cntA += a; cntB += b.Length; }); Assert.AreEqual (2, task.PortElementCount, "#1"); }
public void PortElementCount() { int cnt = 1; var task = new VariableArgumentTask<int> (3, (a) => cnt += a.Length); Assert.AreEqual (3, task.PortElementCount, "#1"); }
public void PartialCloneEmptyElements() { int cnt = 1; var task = new VariableArgumentTask<int> (2, (a) => cnt += a.Length); task [0] = new PortElement<int> (10); task [1] = new PortElement<int> (20); var tk = task.PartialClone (); Assert.IsNull (tk [0], "#1"); Assert.IsNull (tk [0], "#2"); }
public void ItemPropertyBounds() { int cnt = 1; var task = new VariableArgumentTask<int> (5, (a) => cnt += a.Length); try { task [-1] = new PortElement<int> (10); Assert.Fail ("#1"); } catch (IndexOutOfRangeException) {} try { task [5] = new PortElement<int> (10); Assert.Fail ("#2"); } catch (IndexOutOfRangeException) {} try { var obj = task [-1]; Assert.Fail ("#3"); } catch (IndexOutOfRangeException) {} try { var obj = task [5]; Assert.Fail ("#4"); } catch (IndexOutOfRangeException) {} }