diff options
author | Eduardo Pedroni <ep625@york.ac.uk> | 2014-02-14 18:13:21 +0000 |
---|---|---|
committer | Eduardo Pedroni <ep625@york.ac.uk> | 2014-02-14 18:13:21 +0000 |
commit | afa484021ba94d12e98da682a9ff69c3837d5dbb (patch) | |
tree | 2150c437cb74ccf141f8cfde228ebf5dd442314a /src/jcgp/function/Subtraction.java | |
parent | 6419b69faeb4736db1ccb50cfa5a030f9aa818aa (diff) |
Generic data type functionality implemented. All tests were refactored to reflect this, and some chromosome tests were rewritten with more rigorous assertions.
Diffstat (limited to 'src/jcgp/function/Subtraction.java')
-rw-r--r-- | src/jcgp/function/Subtraction.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/jcgp/function/Subtraction.java b/src/jcgp/function/Subtraction.java index 8f107b1..d785614 100644 --- a/src/jcgp/function/Subtraction.java +++ b/src/jcgp/function/Subtraction.java @@ -4,18 +4,22 @@ import jcgp.population.Connection; public class Subtraction extends Function { + private int arity = 2; + @Override - public int run(Connection... connections) { - if (connections.length > 1) { - return connections[0].getValue() - connections[1].getValue(); + public Object run(Connection... connections) { + if (connections.length < arity) { + throw new InvalidArgumentsException("Not enough connections were given."); + } else if (connections[0].getValue() instanceof Integer) { + return ((Integer) connections[0].getValue()) - ((Integer) connections[1].getValue()); } else { - throw new InsufficientArgumentsException(); + throw new InvalidArgumentsException("Wrong data type, this function takes Integer."); } } @Override public int getArity() { - return 2; + return arity; } } |