aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/function/Addition.java
diff options
context:
space:
mode:
authorEduardo Pedroni <ep625@york.ac.uk>2014-02-14 18:13:21 +0000
committerEduardo Pedroni <ep625@york.ac.uk>2014-02-14 18:13:21 +0000
commitafa484021ba94d12e98da682a9ff69c3837d5dbb (patch)
tree2150c437cb74ccf141f8cfde228ebf5dd442314a /src/jcgp/function/Addition.java
parent6419b69faeb4736db1ccb50cfa5a030f9aa818aa (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/Addition.java')
-rw-r--r--src/jcgp/function/Addition.java14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/jcgp/function/Addition.java b/src/jcgp/function/Addition.java
index 45a8d35..f40bc24 100644
--- a/src/jcgp/function/Addition.java
+++ b/src/jcgp/function/Addition.java
@@ -3,19 +3,23 @@ package jcgp.function;
import jcgp.population.Connection;
public class Addition extends Function {
+
+ private int arity = 2;
@Override
- public int run(Connection... connections) {
- if (connections.length > 0) {
- 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;
}
}