2 * Copyright (C) 2014, United States Government, as represented by the
3 * Administrator of the National Aeronautics and Space Administration.
6 * The Java Pathfinder core (jpf-core) platform is licensed under the
7 * Apache License, Version 2.0 (the "License"); you may not use this file except
8 * in compliance with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0.
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
18 package gov.nasa.jpf.vm.choice;
20 import gov.nasa.jpf.Config;
22 public class DoubleChoiceFromSet extends DoubleChoiceFromList {
24 public DoubleChoiceFromSet (Config conf, String id) {
29 public DoubleChoiceFromSet(String id, double... val){
35 /** super constructor for subclasses that want to configure themselves
37 * @param id name used in choice config
39 protected DoubleChoiceFromSet(String id){
44 * Remove duplicate values. This is pretty redundant to IntChoiceFromSet, but
45 * unfortunately we rely on boxing/unboxing and array creation, for which the compiler
46 * needs the concrete type
48 private void removeDuplicates() {
49 int len = values.length;
50 for (int i = 0; i < len; i++) {
53 if (values[i] == values[j]) {
54 values[j] = values[len - 1];
56 // don't increment j as new element has been placed there and needs to be re-tested
62 if (len < values.length) {
63 Double[] uniqVals = new Double[len];
64 System.arraycopy(values, 0, uniqVals, 0, len);