// Path: src/main/java/org/avmframework/Vector.java
// public class Vector extends AbstractVector {
// 
//   public void addVariable(Variable variable) {
//     variables.add(variable);
//   }
// 
//   public List<Variable> getVariables() {
//     return new ArrayList<>(variables);
//   }
// 
//   public void setVariablesToInitial() {
//     for (Variable var : variables) {
//       var.setValueToInitial();
//     }
//   }
// 
//   public void setVariablesToRandom(RandomGenerator rg) {
//     for (Variable var : variables) {
//       var.setValueToRandom(rg);
//     }
//   }
// 
//   public Vector deepCopy() {
//     Vector copy = new Vector();
//     deepCopyVariables(copy);
//     return copy;
//   }
// }
// 
// Path: src/main/java/org/avmframework/variable/IntegerVariable.java
// public class IntegerVariable extends AtomicVariable {
// 
//   public IntegerVariable(int initialValue, int min, int max) {
//     super(initialValue, min, max);
//     if (min > max) {
//       throw new MinGreaterThanMaxException(min, max);
//     }
//     setValueToInitial();
//   }
// 
//   public int asInt() {
//     return value;
//   }
// 
//   @Override
//   public IntegerVariable deepCopy() {
//     IntegerVariable copy = new IntegerVariable(initialValue, min, max);
//     copy.value = value;
//     return copy;
//   }
// 
//   @Override
//   public String toString() {
//     return "" + asInt();
//   }
// }


import org.avmframework.Vector;
import org.avmframework.variable.IntegerVariable;
import java.util.List;
package org.avmframework.examples.testoptimization;



public class SelectionObject {
  static final int INIT = 0;
  static final int MIN = 0;
  static final int MAX = 1;

  // set up the vector to be optimized
// Path: src/main/java/org/avmframework/Vector.java
// public class Vector extends AbstractVector {
// 
//   public void addVariable(Variable variable) {
//     variables.add(variable);
//   }
// 
//   public List<Variable> getVariables() {
//     return new ArrayList<>(variables);
//   }
// 
//   public void setVariablesToInitial() {
//     for (Variable var : variables) {
//       var.setValueToInitial();
//     }
//   }
// 
//   public void setVariablesToRandom(RandomGenerator rg) {
//     for (Variable var : variables) {
//       var.setValueToRandom(rg);
//     }
//   }
// 
//   public Vector deepCopy() {
//     Vector copy = new Vector();
//     deepCopyVariables(copy);
//     return copy;
//   }
// }
// 
// Path: src/main/java/org/avmframework/variable/IntegerVariable.java
// public class IntegerVariable extends AtomicVariable {
// 
//   public IntegerVariable(int initialValue, int min, int max) {
//     super(initialValue, min, max);
//     if (min > max) {
//       throw new MinGreaterThanMaxException(min, max);
//     }
//     setValueToInitial();
//   }
// 
//   public int asInt() {
//     return value;
//   }
// 
//   @Override
//   public IntegerVariable deepCopy() {
//     IntegerVariable copy = new IntegerVariable(initialValue, min, max);
//     copy.value = value;
//     return copy;
//   }
// 
//   @Override
//   public String toString() {
//     return "" + asInt();
//   }
// }


// Path: src/main/java/org/avmframework/examples/testoptimization/SelectionObject.java
import org.avmframework.Vector;
import org.avmframework.variable.IntegerVariable;
import java.util.List;

package org.avmframework.examples.testoptimization;



public class SelectionObject {
  static final int INIT = 0;
  static final int MIN = 0;
  static final int MAX = 1;

  // set up the vector to be optimized
  public Vector setUpVector(int size) {