Changeset 53


Ignore:
Timestamp:
12/18/24 13:28:59 (4 days ago)
Author:
ruud
Message:

All TimeDependent parties now support the nonlinear SumOfGroupsUtilitySpace. Example Nonlinear space in the computer domain

Files:
12 added
66 edited

Legend:

Unmodified
Added
Removed
  • bidspace/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>bidspace</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    4343                        <groupId>tudelft.utilities</groupId>
    4444                        <artifactId>utilities</artifactId>
    45                         <version>1.2.1</version>
     45                        <version>1.3.1</version>
    4646                </dependency>
    4747
     
    113113                        <scope>test</scope>
    114114                </dependency>
    115 
     115                <dependency>
     116                        <groupId>org.apache.commons</groupId>
     117                        <artifactId>commons-math</artifactId>
     118                        <version>2.2</version>
     119                        <scope>test</scope>
     120                </dependency>
    116121        </dependencies>
    117122
  • bidspace/src/main/java/geniusweb/bidspace/BidsWithUtility.java

    r52 r53  
    33import java.math.BigDecimal;
    44import java.math.BigInteger;
     5import java.util.Arrays;
    56import java.util.Collections;
    67import java.util.HashMap;
     
    3940         */
    4041        private final Map<Tuple<Integer, Interval>, ImmutableList<Bid>> cache = new HashMap<>();
    41         private ImmutableList<Bid> emptylist = new FixedList<>();
     42        private ImmutableList<Bid> emptylist = new FixedList<>(
     43                        Collections.emptyList());
    4244
    4345        /**
     
    176178                goal = goal.intersect(getRange(n));
    177179                if (goal.isEmpty()) {
    178                         return new FixedList<>();
     180                        return new FixedList<>(Collections.emptyList());
    179181                }
    180182
     
    220222                                        pbid -> pbid.merge(new Bid(issue, val)), partialbids);
    221223                        if (!fullbids.size().equals(BigInteger.ZERO))
    222                                 fulllist = new JoinedList<Bid>(fullbids, fulllist);
     224                                fulllist = new JoinedList<Bid>(
     225                                                Arrays.asList(fullbids, fulllist));
    223226                }
    224227                return fulllist;
  • bidspace/src/main/java/geniusweb/bidspace/PartialSpaceFromUtility.java

    r52 r53  
    33import java.math.BigInteger;
    44import java.security.SecureRandom;
     5import java.util.Collections;
    56import java.util.HashMap;
    67import java.util.HashSet;
     
    2425public class PartialSpaceFromUtility extends DefaultPartialOrdering {
    2526        public PartialSpaceFromUtility(UtilitySpace space, int nRankings) {
    26                 super(space.getName() + "_" + nRankings, space.getDomain(), space.getReservationBid(),
    27                                 pickBetter(space, nRankings));
     27                super(space.getName() + "_" + nRankings, space.getDomain(),
     28                                space.getReservationBid(), pickBetter(space, nRankings));
    2829        }
    2930
    3031        /**
    31          * Pick subset of static isbetter rankings. Notice, ShuffledList currently can't
    32          * handle really large lists which also limits this. This has to be fixed.
     32         * Pick subset of static isbetter rankings. Notice, ShuffledList currently
     33         * can't handle really large lists which also limits this. This has to be
     34         * fixed.
    3335         *
    3436         * @param space     the space to sample from
    35          * @param nRankings the number of rankings to be placed in the PartialOrdering.
     37         * @param nRankings the number of rankings to be placed in the
     38         *                  PartialOrdering.
    3639         * @return a subset creating a partial profile of the geiven UtilitySpace
    3740         */
    38         private static Map<Bid, Set<Bid>> pickBetter(UtilitySpace space, int nRankings) {
     41        private static Map<Bid, Set<Bid>> pickBetter(UtilitySpace space,
     42                        int nRankings) {
    3943                Map<Bid, Set<Bid>> eqOrBetter = new HashMap<>();
    4044
    4145                AllBidsList allbids = new AllBidsList(space.getDomain());
    42                 ListWithRemove<Tuple<Bid, Bid>> available = new ListWithRemove<>(new Tuples<Bid, Bid>(allbids, allbids));
     46                ListWithRemove<Tuple<Bid, Bid>> available = new ListWithRemove<>(
     47                                new Tuples<Bid, Bid>(allbids, allbids), Collections.emptySet());
    4348                for (int n = 0; n < nRankings; n++) {
    4449                        BigInteger sel = rnd(available.size());
     
    7984
    8085        /**
    81          * Bit simplistic way to generate random in [0,n>. Simplistic because the mod()
    82          * operator that we use causes bias in the random numbers.
     86         * Bit simplistic way to generate random in [0,n>. Simplistic because the
     87         * mod() operator that we use causes bias in the random numbers.
    8388         *
    8489         * @param n the maximum value for the random number
  • boa/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>boa</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • collectparties.sh

    r52 r53  
    77rm -rf collectedparties
    88mkdir collectedparties
    9 VERSION=2.1.6
     9VERSION=2.2.1
    1010
    1111cp "exampleparties/anac2019/agentgg/target/agentgg-${VERSION}-jar-with-dependencies.jar" collectedparties
  • domaineditor/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>domaineditor</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5353                        <groupId>tudelft.utilities</groupId>
    5454                        <artifactId>utilities</artifactId>
    55                         <version>1.2.1</version>
     55                        <version>1.3.1</version>
    5656                </dependency>
    5757                <dependency>
    5858                        <groupId>tudelft.utilities</groupId>
    5959                        <artifactId>logging</artifactId>
    60                         <version>1.0.1</version>
     60                        <version>1.0.2</version>
    6161                </dependency>
    6262                <dependency>
    6363                        <groupId>tudelft.utilities</groupId>
    6464                        <artifactId>mvc</artifactId>
    65                         <version>1.1.0</version>
     65                        <version>2.0.5</version>
    6666                </dependency>
    6767
  • domaineditor/src/main/java/geniusweb/domaineditor/ProfileEditor.java

    r52 r53  
    1515import geniusweb.domaineditor.panels.profile.ProfileEditorPanel;
    1616import tudelft.utilities.logging.Reporter;
     17import tudelft.utilities.mvc.model.ModelTime;
     18import tudelft.utilities.mvc.model.NoModelTime;
    1719import tudelft.utilities.mvc.panels.PopupReporter;
    1820
     
    2426@SuppressWarnings("serial")
    2527public class ProfileEditor extends JFrame {
     28        public static ModelTime TIME = new NoModelTime();
     29
    2630        private final Reporter log;
    2731        private final LinearAdditiveUtilitySpaceModel model;
  • domaineditor/src/main/java/geniusweb/domaineditor/model/BidModel.java

    r52 r53  
    77import java.util.logging.Level;
    88
     9import geniusweb.domaineditor.ProfileEditor;
    910import geniusweb.issuevalue.Bid;
    1011import geniusweb.issuevalue.DiscreteValue;
    1112import geniusweb.issuevalue.NumberValue;
    1213import geniusweb.issuevalue.Value;
    13 import tudelft.utilities.listener.DefaultListenable;
     14import tudelft.utilities.listener.DefaultThrowingListenable;
     15import tudelft.utilities.listener.Unacceptable;
    1416import tudelft.utilities.logging.Reporter;
    1517import tudelft.utilities.mvc.model.BasicModel;
     
    1820import tudelft.utilities.mvc.model.MapFromKeys;
    1921import tudelft.utilities.mvc.model.MapModel;
     22import tudelft.utilities.mvc.model.Model;
     23import tudelft.utilities.mvc.model.ModelTime;
    2024import tudelft.utilities.mvc.model.SelectionModel;
    2125import tudelft.utilities.mvc.model.StringModel;
    22 import tudelft.utilities.mvc.model.TypedModel;
    2326import tudelft.utilities.mvc.model.events.Added;
    2427import tudelft.utilities.mvc.model.events.Changed;
     
    3841 *
    3942 */
    40 public class BidModel extends DefaultListenable<Event> implements
    41                 MapModel<StringModel, SelectionModel<BasicModel>>, TypedModel<Bid> {
     43public class BidModel extends DefaultThrowingListenable<Event>
     44                implements MapModel<StringModel, SelectionModel<BasicModel>>, Model {
    4245        private final MapModel<StringModel, ValueSetModel> issuevalues;
    4346        private final Map<StringModel, SelectionModel<BasicModel>> selections = new HashMap<>();
     
    6669
    6770        private void add(StringModel key, ListModel value) {
    68                 selections.put(key, new DefaultSelectionModel(value));
     71                selections.put(key, new DefaultSelectionModel(value, log, true));
    6972        }
    7073
    7174        /**
    7275         * Domain change occured. Handle it.
     76         *
     77         * @throws Unacceptable
    7378         */
    74         private void handleChange(Event e) {
     79        private void handleChange(Event e) throws Unacceptable {
    7580                // we only handle add/remove of issues. If a value is removed,
    7681                // this should automatically reflect into the selectionmodel.
    77                 if (!(e instanceof Changed)) {
    78                         System.out.println("Unexpected event " + e);
    79                         return;
    80                 }
     82                if (!(e instanceof Changed))
     83                        throw new Unacceptable("Unexpected event " + e);
    8184                e = e.getChildEvent();
    8285                if (e instanceof Removed) {
     
    101104        }
    102105
    103         @Override
    104106        public void remove(StringModel key) {
    105107                throw new UnsupportedOperationException();
     
    121123        }
    122124
    123         @Override
    124125        public Bid getCurrentValue() throws IllegalStateException {
    125126                Map<String, Value> selectionmap = new HashMap<>();
     
    134135        }
    135136
    136         @Override
    137137        public void setCurrentValue(Bid bid) throws IllegalArgumentException {
    138138                ListModel<StringModel> issues = issuevalues.getKeys();
     
    186186        }
    187187
     188        @Override
     189        public ModelTime getTime() {
     190                return ProfileEditor.TIME;
     191        }
     192
    188193}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/DiscreteValueSetModel.java

    r52 r53  
    77import java.util.logging.Level;
    88
     9import geniusweb.domaineditor.ProfileEditor;
    910import geniusweb.issuevalue.DiscreteValue;
    1011import geniusweb.issuevalue.DiscreteValueSet;
     
    2526
    2627        public DiscreteValueSetModel(List<StringModel> values, Reporter log) {
    27                 super(values, log);
     28                super(values, log, ProfileEditor.TIME);
    2829        }
    2930
    3031        public DiscreteValueSetModel(Reporter log) {
    31                 super(Arrays.asList(new StringModel("value", log)), log);
     32                super(Arrays.asList(new StringModel("value", log, ProfileEditor.TIME)),
     33                                log, ProfileEditor.TIME);
    3234        }
    3335
     
    7880                // first add the new vals because minimum size.
    7981                for (DiscreteValue val : valset.getValues()) {
    80                         add(new StringModel(val.getValue(), log));
     82                        add(new StringModel(val.getValue(), log, ProfileEditor.TIME));
    8183                }
    8284                for (StringModel old : oldvals) {
  • domaineditor/src/main/java/geniusweb/domaineditor/model/DomainModel.java

    r52 r53  
    1616import geniusweb.issuevalue.Domain;
    1717import geniusweb.issuevalue.ValueSet;
    18 import tudelft.utilities.listener.DefaultListenable;
     18import tudelft.utilities.listener.DefaultThrowingListenable;
    1919import tudelft.utilities.logging.Reporter;
    2020import tudelft.utilities.mvc.model.DefaultMapModel;
    2121import tudelft.utilities.mvc.model.MapModel;
    2222import tudelft.utilities.mvc.model.Model;
     23import tudelft.utilities.mvc.model.ModelTime;
    2324import tudelft.utilities.mvc.model.StringModel;
    24 import tudelft.utilities.mvc.model.TypedModel;
    2525import tudelft.utilities.mvc.model.events.Changed;
    2626import tudelft.utilities.mvc.model.events.Event;
     
    3333 *
    3434 */
    35 public class DomainModel extends DefaultListenable<Event>
    36                 implements TypedModel<Domain> {
     35public class DomainModel extends DefaultThrowingListenable<Event>
     36                implements Model { // model<Domain>
    3737        private static final ObjectMapper jackson = new ObjectMapper();
    3838        private final StringModel domainname;
     
    5757                this(new SimpleStringModel("domainname", log),
    5858                                new DefaultMapModel<StringModel, ValueSetModel>(
    59                                                 Collections.singletonMap(new StringModel("issue", log),
     59                                                Collections.singletonMap(
     60                                                                new StringModel("issue", log,
     61                                                                                ProfileEditor.TIME),
    6062                                                                new DiscreteValueSetModel(log)),
    61                                                 log) {
     63                                                log, ProfileEditor.TIME) {
    6264                                        @Override
    6365                                        public int getMinimumSize() {
     
    8890                Domain domain = jackson.readValue(file, Domain.class);
    8991                // FIXME
    90                 return new DomainModel(new StringModel(domain.getName(), log), null,
    91                                 log);
     92                return new DomainModel(
     93                                new StringModel(domain.getName(), log, ProfileEditor.TIME),
     94                                null, log);
    9295        }
    9396
     
    112115         * @return the {@link Domain} contained in this model.
    113116         */
    114         @Override
    115117        public Domain getCurrentValue() throws IllegalStateException {
    116118                Map<String, ValueSet> issues = new HashMap<>();
     
    131133         *            {@link Model}s are created where needed.
    132134         */
    133         @Override
    134135        public void setCurrentValue(Domain dom) throws IllegalArgumentException {
    135136                domainname.setValue(dom.getName());
     
    145146                                        ValueSetModelType.fromModel(dom.getValues(iss)), log);
    146147                        valsetmodel.setCurrentValue(dom.getValues(iss));
    147                         issuesmodel.put(new StringModel(iss, log), valsetmodel);
     148                        issuesmodel.put(new StringModel(iss, log, ProfileEditor.TIME),
     149                                        valsetmodel);
    148150                }
    149151                // remove the old issues
    150152                for (StringModel iss : oldissues)
    151                         issuesmodel.remove(iss);
     153                        issuesmodel.getKeys().remove(iss);
     154        }
     155
     156        @Override
     157        public ModelTime getTime() {
     158                return ProfileEditor.TIME;
    152159        }
    153160}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/NumberValueSetModel.java

    r52 r53  
    55import java.util.Map;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.issuevalue.NumberValueSet;
    89import geniusweb.issuevalue.ValueSet;
    910import tudelft.utilities.immutablelist.Range;
    10 import tudelft.utilities.listener.DefaultListenable;
     11import tudelft.utilities.listener.DefaultThrowingListenable;
     12import tudelft.utilities.listener.Unacceptable;
    1113import tudelft.utilities.logging.Reporter;
    1214import tudelft.utilities.mvc.model.BasicModel;
    1315import tudelft.utilities.mvc.model.ListModel;
     16import tudelft.utilities.mvc.model.ModelTime;
    1417import tudelft.utilities.mvc.model.NumberModel;
    1518import tudelft.utilities.mvc.model.events.Changed;
     
    2023 *
    2124 */
    22 public class NumberValueSetModel extends DefaultListenable<Event>
     25public class NumberValueSetModel extends DefaultThrowingListenable<Event>
    2326                implements ValueSetModel {
    2427
     
    2730
    2831        public NumberValueSetModel(NumberModel lowv, NumberModel highv,
    29                         NumberModel stepv, Reporter log) {
     32                        NumberModel stepv, Reporter log) throws Unacceptable {
    3033                this.low = lowv;
    3134                this.high = highv;
     
    4144        }
    4245
    43         private void check() throws IllegalStateException {
     46        private void check() throws Unacceptable {
    4447                if (low.getValue().compareTo(high.getValue()) > 0)
    45                         throw new IllegalStateException("low must be <= high");
     48                        throw new Unacceptable("low must be <= high");
    4649                if (step.getValue().compareTo(BigDecimal.ZERO) <= 0)
    47                         throw new IllegalStateException("step must be >0");
     50                        throw new Unacceptable("step must be >0");
    4851                notifyListeners(new Changed(this, null));
    4952        }
     
    5154        /*
    5255         * Default, bit arbitrary values.
     56         *
     57         * @throws something that should never happen
    5358         */
    54         public NumberValueSetModel(Reporter log) {
    55                 this(new NumberModel(BigDecimal.ZERO, log),
    56                                 new NumberModel(BigDecimal.TEN, log),
    57                                 new NumberModel(BigDecimal.ONE, log), log);
     59        public NumberValueSetModel(Reporter log) throws Unacceptable {
     60                this(new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     61                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     62                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    5863        }
    5964
     
    116121        }
    117122
     123        @Override
     124        public ModelTime getTime() {
     125                return ProfileEditor.TIME;
     126        }
     127
    118128}
    119129
     
    122132 *
    123133 */
    124 class MyListModel extends DefaultListenable<Event>
     134class MyListModel extends DefaultThrowingListenable<Event>
    125135                implements ListModel<NumberModel> {
    126136
     
    143153                BigDecimal val = numvalset.getCurrentValue().getRange().get(n);
    144154                if (!itemsCache.containsKey(val))
    145                         itemsCache.put(val, new NumberModel(val, numvalset.log));
     155                        itemsCache.put(val,
     156                                        new NumberModel(val, numvalset.log, ProfileEditor.TIME));
    146157                return itemsCache.get(val);
    147158        }
     
    168179        }
    169180
     181        @Override
     182        public ModelTime getTime() {
     183                return ProfileEditor.TIME;
     184        }
     185
    170186}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/SimpleStringModel.java

    r52 r53  
    11package geniusweb.domaineditor.model;
    22
     3import geniusweb.domaineditor.ProfileEditor;
     4import tudelft.utilities.listener.Unacceptable;
    35import tudelft.utilities.logging.Reporter;
    46import tudelft.utilities.mvc.model.StringModel;
     
    1012
    1113        public SimpleStringModel(String val, Reporter log) {
    12                 super(val, log);
     14                super(val, log, ProfileEditor.TIME);
    1315        }
    1416
    1517        @Override
    16         protected void check() throws IllegalStateException {
     18        protected void check() throws Unacceptable {
    1719                if (!(getValue().matches("[a-zA-Z0-9]+")))
    18                         throw new IllegalStateException(
     20                        throw new Unacceptable(
    1921                                        "Only lower and upper case letters and numbers are allowed");
    2022                super.check();
  • domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModel.java

    r52 r53  
    44import tudelft.utilities.mvc.model.BasicModel;
    55import tudelft.utilities.mvc.model.ListModel;
    6 import tudelft.utilities.mvc.model.TypedModel;
     6import tudelft.utilities.mvc.model.Model;
    77
    88/**
     
    1111 *
    1212 */
    13 public interface ValueSetModel extends TypedModel<ValueSet> {
     13public interface ValueSetModel extends Model {
    1414        /**
    1515         *
     
    2525        public ListModel<? extends BasicModel> getList();
    2626
     27        /**
     28         *
     29         * @return the currently contained value in the model. We do NOT specify the
     30         *         type of the returned object because it would have to be a type
     31         *         parameter added to Model, which leads to all kinds of issues with
     32         *         excessive parameterization and issues when a class extends eg a
     33         *         MapModel. NOTE: also derived classes like ListModel should not
     34         *         specify that they return {@link List} or so: further subclassing
     35         *         of eg a ListModel might be eg a ValueSet which would not return a
     36         *         List again.
     37         * @throws IllegalStateException if the model is not correctly filled in at
     38         *                               this moment.
     39         */
     40        public ValueSet getCurrentValue() throws IllegalStateException;
     41
     42        /**
     43         * Sets the current value based on the proviced obj
     44         *
     45         * @param obj the object to load the model with. Mirror of
     46         *            {@link #getCurrentValue()} and the Object is the same type.
     47         * @throws IllegalArgumentException if the object is not the expected object
     48         *                                  type
     49         */
     50        public void setCurrentValue(ValueSet obj) throws IllegalArgumentException;
     51
    2752}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/ValueSetModelType.java

    r52 r53  
    44import geniusweb.issuevalue.NumberValueSet;
    55import geniusweb.issuevalue.ValueSet;
     6import tudelft.utilities.listener.Unacceptable;
    67import tudelft.utilities.logging.Reporter;
    78
     
    5758                        return new DiscreteValueSetModel(log);
    5859                case NUMBER:
    59                         return new NumberValueSetModel(log);
     60                        try {
     61                                return new NumberValueSetModel(log);
     62                        } catch (Unacceptable e) {
     63                                throw new RuntimeException(e);// shouldn't happen
     64                        }
    6065                }
    6166                return null; // unreachable code
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/DiscreteValueSetUtilitiesModel.java

    r52 r53  
    55import java.util.Map;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.domaineditor.model.DiscreteValueSetModel;
    89import geniusweb.issuevalue.DiscreteValue;
    910import geniusweb.profile.utilityspace.DiscreteValueSetUtilities;
    1011import geniusweb.profile.utilityspace.ValueSetUtilities;
    11 import tudelft.utilities.listener.DefaultListenable;
     12import tudelft.utilities.listener.DefaultThrowingListenable;
     13import tudelft.utilities.listener.Unacceptable;
    1214import tudelft.utilities.logging.Reporter;
    1315import tudelft.utilities.mvc.model.ListModel;
    1416import tudelft.utilities.mvc.model.MapModel;
     17import tudelft.utilities.mvc.model.ModelTime;
    1518import tudelft.utilities.mvc.model.NumberModel;
    1619import tudelft.utilities.mvc.model.RestrictedNumberModel;
     
    2629 *
    2730 */
    28 public class DiscreteValueSetUtilitiesModel extends DefaultListenable<Event>
    29                 implements MapModel<StringModel, RestrictedNumberModel>,
    30                 ValueSetUtilitiesModel {
     31public class DiscreteValueSetUtilitiesModel
     32                extends DefaultThrowingListenable<Event> implements
     33                MapModel<StringModel, RestrictedNumberModel>, ValueSetUtilitiesModel {
     34
    3135        private final ListModel<StringModel> values;
    3236        private final Map<StringModel, RestrictedNumberModel> utilities = new HashMap<>();
     
    3741        private final static Reporter dummylog = new PopupReporter(null);
    3842        private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
    39                         dummylog);
     43                        dummylog, ProfileEditor.TIME);
    4044        private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
    41                         dummylog);
     45                        dummylog, ProfileEditor.TIME);
    4246
    4347        public DiscreteValueSetUtilitiesModel(DiscreteValueSetModel values,
     
    5054        public RestrictedNumberModel getValue(StringModel key) {
    5155                if (!utilities.containsKey(key)) {
    52                         utilities.put(key,
    53                                         new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
     56                        try {
     57                                utilities.put(key, new RestrictedNumberModel(DEFAULT, LOW, HIGH,
     58                                                log, ProfileEditor.TIME));
     59                        } catch (Unacceptable e) {
     60                                throw new RuntimeException(e);// this should not happen
     61                        }
    5462                }
    5563                return utilities.get(key);
     
    6169        }
    6270
    63         @Override
    6471        public void remove(StringModel key) {
    6572                throw new UnsupportedOperationException();
     
    113120        }
    114121
     122        @Override
     123        public ModelTime getTime() {
     124                return ProfileEditor.TIME;
     125        }
     126
    115127}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/LinearAdditiveUtilitySpaceModel.java

    r52 r53  
    88import java.util.stream.Collectors;
    99
     10import geniusweb.domaineditor.ProfileEditor;
    1011import geniusweb.domaineditor.model.BidModel;
    1112import geniusweb.domaineditor.model.DiscreteValueSetModel;
     
    1617import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
    1718import geniusweb.profile.utilityspace.ValueSetUtilities;
    18 import tudelft.utilities.listener.DefaultListenable;
     19import tudelft.utilities.listener.DefaultThrowingListenable;
     20import tudelft.utilities.listener.Unacceptable;
    1921import tudelft.utilities.logging.Reporter;
    2022import tudelft.utilities.mvc.model.ListModel;
    2123import tudelft.utilities.mvc.model.MapFromKeys;
    2224import tudelft.utilities.mvc.model.MapModel;
     25import tudelft.utilities.mvc.model.Model;
     26import tudelft.utilities.mvc.model.ModelTime;
    2327import tudelft.utilities.mvc.model.NumberModel;
    2428import tudelft.utilities.mvc.model.RestrictedNumberModel;
    2529import tudelft.utilities.mvc.model.StringModel;
    26 import tudelft.utilities.mvc.model.TypedModel;
    2730import tudelft.utilities.mvc.model.events.Event;
    2831import tudelft.utilities.mvc.panels.PopupReporter;
     
    3134 * Model containing a {@link LinearAdditiveUtilitySpace}
    3235 */
    33 public class LinearAdditiveUtilitySpaceModel extends DefaultListenable<Event>
    34                 implements ProfileModel, TypedModel<LinearAdditiveUtilitySpace> {
     36public class LinearAdditiveUtilitySpaceModel extends
     37                DefaultThrowingListenable<Event> implements ProfileModel, Model { // Model<<LinearAdditiveUtilitySpace>>
    3538        private final SimpleStringModel name;
    3639        /**
     
    8790        // we should never allow editing of these constants.
    8891        protected static final NumberModel CONSTANT0 = new NumberModel(
    89                         BigDecimal.ZERO, dummylog);
     92                        BigDecimal.ZERO, dummylog, ProfileEditor.TIME);
    9093        protected static final NumberModel CONSTANT1 = new NumberModel(
    91                         BigDecimal.ONE, dummylog);
     94                        BigDecimal.ONE, dummylog, ProfileEditor.TIME);
    9295
    9396        public LinearAdditiveUtilitySpaceModel(DomainModel domain,
     
    108111                        final DomainModel domain2, final Reporter log) {
    109112                return new MapFromKeys<StringModel, RestrictedNumberModel>(
    110                                 domain2.getIssues().getKeys(), log, true) {
     113                                domain2.getIssues().getKeys(), log, true, ProfileEditor.TIME) {
    111114
    112115                        @Override
    113116                        public RestrictedNumberModel create(StringModel key) {
    114                                 return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
    115                                                 log);
     117                                try {
     118                                        return new RestrictedNumberModel(N05, CONSTANT0, CONSTANT1,
     119                                                        log, ProfileEditor.TIME);
     120                                } catch (Unacceptable e) {
     121                                        throw new RuntimeException(e); // shouldn't happen
     122                                }
    116123                        }
    117124
     
    129136                // different type
    130137                return new MapFromKeys<StringModel, ValueSetUtilitiesModel>(
    131                                 domain2.getIssues().getKeys(), log, false) {
     138                                domain2.getIssues().getKeys(), log, false, ProfileEditor.TIME) {
    132139                        @Override
    133140                        public ValueSetUtilitiesModel create(StringModel key) {
     
    137144                                                        (DiscreteValueSetModel) val, log);
    138145                                if (val instanceof NumberValueSetModel)
    139                                         return new NumberValueSetUtilitiesModel(
    140                                                         (NumberValueSetModel) val, log);
     146                                        try {
     147                                                return new NumberValueSetUtilitiesModel(
     148                                                                (NumberValueSetModel) val, log);
     149                                        } catch (Unacceptable e) {
     150                                                throw new RuntimeException(e); // shouldn't happen
     151                                        }
    141152                                throw new RuntimeException(
    142153                                                "Unsupported type " + val + "for key" + key);
     
    190201        }
    191202
    192         @Override
    193203        public LinearAdditiveUtilitySpace getCurrentValue()
    194204                        throws IllegalStateException {
     
    212222        }
    213223
    214         @Override
    215224        public void setCurrentValue(LinearAdditiveUtilitySpace obj)
    216225                        throws IllegalArgumentException {
     
    258267        }
    259268
     269        @Override
     270        public ModelTime getTime() {
     271                return ProfileEditor.TIME;
     272        }
     273
    260274}
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/NumberValueSetUtilitiesModel.java

    r52 r53  
    33import java.math.BigDecimal;
    44
     5import geniusweb.domaineditor.ProfileEditor;
    56import geniusweb.domaineditor.model.NumberValueSetModel;
    67import geniusweb.profile.utilityspace.NumberValueSetUtilities;
    78import geniusweb.profile.utilityspace.ValueSetUtilities;
    8 import tudelft.utilities.listener.DefaultListenable;
     9import tudelft.utilities.listener.DefaultThrowingListenable;
     10import tudelft.utilities.listener.Unacceptable;
    911import tudelft.utilities.logging.Reporter;
     12import tudelft.utilities.mvc.model.ModelTime;
    1013import tudelft.utilities.mvc.model.NumberModel;
    1114import tudelft.utilities.mvc.model.RestrictedNumberModel;
     
    1720 *
    1821 */
    19 public class NumberValueSetUtilitiesModel extends DefaultListenable<Event>
    20                 implements ValueSetUtilitiesModel {
     22public class NumberValueSetUtilitiesModel extends
     23                DefaultThrowingListenable<Event> implements ValueSetUtilitiesModel {
    2124
    2225        private static final BigDecimal DEFAULT = new BigDecimal("0.5");
     
    2528        private final static Reporter dummylog = new PopupReporter(null);
    2629        private final static NumberModel LOW = new NumberModel(BigDecimal.ZERO,
    27                         dummylog);
     30                        dummylog, ProfileEditor.TIME);
    2831        private final static NumberModel HIGH = new NumberModel(BigDecimal.ONE,
    29                         dummylog);
     32                        dummylog, ProfileEditor.TIME);
    3033        private final NumberModel lowValue;
    3134        private final RestrictedNumberModel lowUtility;
     
    4952        }
    5053
    51         NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel,
    52                         Reporter log) {
     54        NumberValueSetUtilitiesModel(NumberValueSetModel valuesmodel, Reporter log)
     55                        throws Unacceptable {
    5356                this(valuesmodel.getLow(),
    54                                 new RestrictedNumberModel(DEFAULT, LOW, HIGH, log),
    55                                 valuesmodel.getHigh(),
    56                                 new RestrictedNumberModel(DEFAULT, LOW, HIGH, log));
     57                                new RestrictedNumberModel(DEFAULT, LOW, HIGH, log,
     58                                                ProfileEditor.TIME),
     59                                valuesmodel.getHigh(), new RestrictedNumberModel(DEFAULT, LOW,
     60                                                HIGH, log, ProfileEditor.TIME));
    5761        }
    5862
     
    9599                highUtility.setValue(utils.getHighUtility());
    96100        }
     101
     102        @Override
     103        public ModelTime getTime() {
     104                return ProfileEditor.TIME;
     105        }
    97106};
  • domaineditor/src/main/java/geniusweb/domaineditor/model/profile/ValueSetUtilitiesModel.java

    r52 r53  
    22
    33import geniusweb.profile.utilityspace.ValueSetUtilities;
    4 import tudelft.utilities.mvc.model.TypedModel;
     4import tudelft.utilities.mvc.model.Model;
    55
    66/**
     
    88 *
    99 */
    10 public interface ValueSetUtilitiesModel extends TypedModel<ValueSetUtilities> {
     10public interface ValueSetUtilitiesModel extends Model {
     11
     12        void setCurrentValue(ValueSetUtilities valueSetUtilities);
     13
     14        ValueSetUtilities getCurrentValue();
    1115
    1216}
  • domaineditor/src/main/java/geniusweb/domaineditor/panels/DiscreteValueSetPanel.java

    r52 r53  
    55import javax.swing.JPanel;
    66
     7import geniusweb.domaineditor.ProfileEditor;
    78import geniusweb.domaineditor.model.DiscreteValueSetModel;
    89import tudelft.utilities.logging.Reporter;
     
    2425                setLayout(new BorderLayout());
    2526                add(new EditableListViewPanel(model.getList()) {
     27
    2628                        @Override
    2729                        protected void addItem() {
    28                                 model.add(new StringModel("value " + (n++), log));
     30                                model.add(new StringModel("value " + (n++), log,
     31                                                ProfileEditor.TIME));
    2932
    3033                        }
  • domaineditor/src/main/java/geniusweb/domaineditor/panels/DomainEditorPanel.java

    r52 r53  
    99import javax.swing.JPanel;
    1010
     11import geniusweb.domaineditor.ProfileEditor;
    1112import geniusweb.domaineditor.model.DiscreteValueSetModel;
    1213import geniusweb.domaineditor.model.DomainModel;
    1314import geniusweb.domaineditor.model.NumberValueSetModel;
    1415import geniusweb.domaineditor.model.ValueSetModel;
     16import tudelft.utilities.listener.Unacceptable;
    1517import tudelft.utilities.logging.Reporter;
    1618import tudelft.utilities.mvc.model.MapModel;
     
    3941
    4042                add(new LabeledPanel("domain name ",
    41                                 new StringPanel(domainmodel.getName())),
    42                                 BorderLayout.NORTH);
     43                                new StringPanel(domainmodel.getName())), BorderLayout.NORTH);
    4344                add(new IssuesMapEditor(domainmodel.getIssues(), log),
    4445                                BorderLayout.CENTER);
     
    8283                panel.add(combo, BorderLayout.CENTER);
    8384                JOptionPane.showMessageDialog(this, panel);
    84                 StringModel issuename = new StringModel("issue " + (n++), logger);
     85                StringModel issuename = new StringModel("issue " + (n++), logger,
     86                                ProfileEditor.TIME);
    8587                ValueSetModel valuesetmodel;
    8688                if (combo.getSelectedItem().equals("discrete"))
    8789                        valuesetmodel = new DiscreteValueSetModel(logger);
    8890                else
    89                         valuesetmodel = new NumberValueSetModel(logger);
     91                        try {
     92                                valuesetmodel = new NumberValueSetModel(logger);
     93                        } catch (Unacceptable e) {
     94                                throw new RuntimeException(e);// shouldn't happen
     95                        }
    9096                getModel().put(issuename, valuesetmodel);
    9197
  • domaineditor/src/test/java/geniusweb/domaineditor/DomainEditorPanelTest.java

    r52 r53  
    1212import geniusweb.domaineditor.model.ValueSetModel;
    1313import geniusweb.domaineditor.panels.DomainEditorPanel;
    14 import tudelft.utilities.listener.Listener;
     14import tudelft.utilities.listener.ThrowingListener;
    1515import tudelft.utilities.logging.Reporter;
    1616import tudelft.utilities.mvc.model.DefaultMapModel;
     
    2828                f.setLayout(new BorderLayout());
    2929
    30                 StringModel namemodel = new StringModel("issue1", log);
     30                StringModel namemodel = new StringModel("issue1", log,
     31                                ProfileEditor.TIME);
    3132                ValueSetModel valuesmmodel = new DiscreteValueSetModel(log);
    3233                DefaultMapModel<StringModel, ValueSetModel> issuesmodel = new DefaultMapModel<StringModel, ValueSetModel>(
    33                                 Collections.singletonMap(namemodel, valuesmmodel), log) {
     34                                Collections.singletonMap(namemodel, valuesmmodel), log,
     35                                ProfileEditor.TIME) {
    3436
    3537                        @Override
     
    5052
    5153                };
    52                 DomainModel model = new DomainModel(new StringModel("testdomain", log),
     54                DomainModel model = new DomainModel(
     55                                new StringModel("testdomain", log, ProfileEditor.TIME),
    5356                                issuesmodel, log);
    54                 model.addListener(new Listener<Event>() {
     57                model.addListener(new ThrowingListener<Event>() {
    5558
    5659                        @Override
  • domaineditor/src/test/java/geniusweb/model/NumberValueSetModelTest.java

    r52 r53  
    1111import org.junit.Test;
    1212
     13import geniusweb.domaineditor.ProfileEditor;
    1314import geniusweb.domaineditor.model.NumberValueSetModel;
    1415import geniusweb.issuevalue.NumberValueSet;
    1516import geniusweb.issuevalue.ValueSet;
    1617import tudelft.utilities.immutablelist.Range;
     18import tudelft.utilities.listener.Unacceptable;
    1719import tudelft.utilities.logging.Reporter;
    1820import tudelft.utilities.mvc.model.NumberModel;
     
    2224
    2325        @Test
    24         public void smoke() {
     26        public void smoke() throws Unacceptable {
    2527                new NumberValueSetModel(log);
    2628        }
    2729
    2830        @Test
    29         public void testSomeGoodValues() {
     31        public void testSomeGoodValues() throws Unacceptable {
    3032                NumberValueSetModel model = new NumberValueSetModel(log);
    3133                assertEquals(11, model.getList().getSize()); // default is 0...10
     
    3335                assertEquals(9, model.getList().getSize()); // 2..10
    3436                model.getHigh().setValue(new BigDecimal("3"));
     37                assertEquals(2, model.getLow().getValue().intValue());
     38                assertEquals(3, model.getHigh().getValue().intValue());
    3539                assertEquals(2, model.getList().getSize()); // 2..3
    3640                model.getStep().setValue(new BigDecimal("0.1"));
     
    3842        }
    3943
    40         @Test(expected = IllegalStateException.class)
    41         public void testIllegal1() {
    42                 new NumberValueSetModel(new NumberModel(BigDecimal.TEN, log),
    43                                 new NumberModel(BigDecimal.ONE, log),
    44                                 new NumberModel(BigDecimal.ONE, log), log);
     44        @Test(expected = Unacceptable.class)
     45        public void testIllegal1() throws Unacceptable {
     46                new NumberValueSetModel(
     47                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     48                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
     49                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    4550        }
    4651
    4752        @Test
    48         public void testIllegal12() {
     53        public void testIllegal12() throws Unacceptable {
    4954                NumberValueSetModel n = new NumberValueSetModel(log);
    5055                // change low above high must log problem
     
    5358        }
    5459
    55         @Test(expected = IllegalStateException.class)
    56         public void testIllegal3() {
     60        @Test(expected = Unacceptable.class)
     61        public void testIllegal3() throws Unacceptable {
    5762                NumberValueSetModel model = new NumberValueSetModel(
    58                                 new NumberModel(BigDecimal.TEN, log),
    59                                 new NumberModel(BigDecimal.ONE, log),
    60                                 new NumberModel(BigDecimal.ONE, log), log);
     63                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     64                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
     65                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    6166                model.getLow().setValue(BigDecimal.valueOf(20));
    6267        }
    6368
    6469        @Test
    65         public void testLowIncrease() {
     70        public void testLowIncrease() throws Unacceptable {
    6671                NumberValueSetModel set = new NumberValueSetModel(
    67                                 new NumberModel(BigDecimal.ZERO, log),
    68                                 new NumberModel(BigDecimal.TEN, log),
    69                                 new NumberModel(BigDecimal.ONE, log), log);
     72                                new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     73                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     74                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    7075                ValueSet v = new NumberValueSet(
    7176                                new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
     
    7580
    7681        @Test
    77         public void testHighDecrease() {
     82        public void testHighDecrease() throws Unacceptable {
    7883                NumberValueSetModel set = new NumberValueSetModel(
    79                                 new NumberModel(BigDecimal.ZERO, log),
    80                                 new NumberModel(BigDecimal.TEN, log),
    81                                 new NumberModel(BigDecimal.ONE, log), log);
     84                                new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     85                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     86                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    8287                ValueSet v = new NumberValueSet(
    8388                                new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
     
    8792
    8893        @Test
    89         public void testIncreaseBoth() {
     94        public void testIncreaseBoth() throws Unacceptable {
    9095                NumberValueSetModel set = new NumberValueSetModel(
    91                                 new NumberModel(BigDecimal.ZERO, log),
    92                                 new NumberModel(BigDecimal.ONE, log),
    93                                 new NumberModel(BigDecimal.ONE, log), log);
     96                                new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     97                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
     98                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    9499                ValueSet v = new NumberValueSet(
    95100                                new Range(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ONE));
     
    98103
    99104        @Test
    100         public void testIncreaseBothMuch() {
     105        public void testIncreaseBothMuch() throws Unacceptable {
    101106                NumberValueSetModel set = new NumberValueSetModel(
    102                                 new NumberModel(BigDecimal.ZERO, log),
    103                                 new NumberModel(BigDecimal.ONE, log),
    104                                 new NumberModel(BigDecimal.ONE, log), log);
     107                                new NumberModel(BigDecimal.ZERO, log, ProfileEditor.TIME),
     108                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
     109                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    105110                ValueSet v = new NumberValueSet(new Range(new BigDecimal("20"),
    106111                                new BigDecimal("80"), BigDecimal.ONE));
     
    109114
    110115        @Test
    111         public void testDecreaseBoth() {
     116        public void testDecreaseBoth() throws Unacceptable {
    112117                NumberValueSetModel set = new NumberValueSetModel(
    113                                 new NumberModel(BigDecimal.ONE, log),
    114                                 new NumberModel(BigDecimal.TEN, log),
    115                                 new NumberModel(BigDecimal.ONE, log), log);
     118                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME),
     119                                new NumberModel(BigDecimal.TEN, log, ProfileEditor.TIME),
     120                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    116121                ValueSet v = new NumberValueSet(
    117122                                new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
     
    120125
    121126        @Test
    122         public void testDecreaseBothMuch() {
     127        public void testDecreaseBothMuch() throws Unacceptable {
    123128                NumberValueSetModel set = new NumberValueSetModel(
    124                                 new NumberModel(new BigDecimal("20"), log),
    125                                 new NumberModel(new BigDecimal("80"), log),
    126                                 new NumberModel(BigDecimal.ONE, log), log);
     129                                new NumberModel(new BigDecimal("20"), log, ProfileEditor.TIME),
     130                                new NumberModel(new BigDecimal("80"), log, ProfileEditor.TIME),
     131                                new NumberModel(BigDecimal.ONE, log, ProfileEditor.TIME), log);
    127132                ValueSet v = new NumberValueSet(
    128133                                new Range(BigDecimal.ZERO, BigDecimal.ONE, BigDecimal.ONE));
  • domaineditor/src/test/java/geniusweb/panels/ComboBoxTest.java

    r52 r53  
    1414import org.junit.Test;
    1515
     16import geniusweb.domaineditor.ProfileEditor;
    1617import geniusweb.domaineditor.model.DiscreteValueSetModel;
    1718import geniusweb.domaineditor.model.DomainModel;
     
    3233        public void GuiTest() throws InterruptedException {
    3334
    34                 StringModel a = new StringModel("apples", log);
    35                 StringModel b = new StringModel("bears", log);
    36                 StringModel c = new StringModel("carrots", log);
     35                StringModel a = new StringModel("apples", log, ProfileEditor.TIME);
     36                StringModel b = new StringModel("bears", log, ProfileEditor.TIME);
     37                StringModel c = new StringModel("carrots", log, ProfileEditor.TIME);
    3738
    3839                JFrame f = new JFrame();
     
    4041                f.getContentPane().add(panel);
    4142                DefaultListModel<StringModel> model = new DefaultListModel(
    42                                 Arrays.asList(a, b, c), log) {
    43 
    44                 };
     43                                Arrays.asList(a, b, c), log, ProfileEditor.TIME);
    4544                DefaultSelectionModel<StringModel> selectionmodel1 = new DefaultSelectionModel(
    46                                 model);
     45                                model, log, true);
    4746                panel.add(new ComboBox<StringModel>(selectionmodel1),
    4847                                BorderLayout.NORTH);
     
    6059        public void testEqualsDeep() {
    6160
    62                 StringModel redvalue = new StringModel("red", log);
    63                 StringModel greenvalue = new StringModel("green", log);
     61                StringModel redvalue = new StringModel("red", log, ProfileEditor.TIME);
     62                StringModel greenvalue = new StringModel("green", log,
     63                                ProfileEditor.TIME);
    6464                DiscreteValueSetModel issue1values = new DiscreteValueSetModel(
    6565                                Arrays.asList(redvalue, greenvalue), log);
    6666
    67                 StringModel issue1 = new StringModel("issue", log);
     67                StringModel issue1 = new StringModel("issue", log, ProfileEditor.TIME);
    6868
    69                 SelectionModel issue1valuessel = new DefaultSelectionModel(
    70                                 issue1values);
     69                SelectionModel issue1valuessel = new DefaultSelectionModel(issue1values,
     70                                log, true);
    7171                Map<StringModel, SelectionModel> a = Collections.singletonMap(issue1,
    7272                                issue1valuessel);
    7373                DefaultMapModel<StringModel, SelectionModel> issuevalues = new DefaultMapModel<StringModel, SelectionModel>(
    74                                 a, log) {
     74                                a, log, ProfileEditor.TIME) {
    7575
    7676                        @Override
     
    9292
    9393                MapModel<StringModel, ValueSetModel> issuevaluesmodel = new DefaultMapModel<StringModel, ValueSetModel>(
    94                                 Collections.singletonMap(issue1, issue1values), log) {
     94                                Collections.singletonMap(issue1, issue1values), log,
     95                                ProfileEditor.TIME) {
    9596
    9697                        @Override
     
    110111
    111112                };
    112                 DomainModel domain = new DomainModel(new StringModel("testdomain", log),
     113                DomainModel domain = new DomainModel(
     114                                new StringModel("testdomain", log, ProfileEditor.TIME),
    113115                                issuevaluesmodel, log);
    114116
  • events/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>events</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/anac2019/agentgg/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>agentgg</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    6060                        <groupId>tudelft.utilities</groupId>
    6161                        <artifactId>utilities</artifactId>
    62                         <version>1.2.1</version>
     62                        <version>1.3.1</version>
    6363                </dependency>
    6464
  • exampleparties/anac2019/agentgg/src/test/resources/jobs1partial20.json

    r52 r53  
    11{
    2         "DefaultPartialOrdering": {
    3                 "name": "jobs1-partial-20",
    4                 "domain": {
    5                         "name": "jobs",
    6                         "issuesValues": {
    7                                 "lease car": {
    8                                         "values": [
    9                                                 "yes",
    10                                                 "no"
    11                                         ]
    12                                 },
    13                                 "permanent contract": {
    14                                         "values": [
    15                                                 "yes",
    16                                                 "no"
    17                                         ]
    18                                 },
    19                                 "career development opportunities": {
    20                                         "values": [
    21                                                 "low",
    22                                                 "medium",
    23                                                 "high"
    24                                         ]
    25                                 },
    26                                 "fte": {
    27                                         "values": [
    28                                                 "0.6",
    29                                                 "0.8",
    30                                                 "1.0"
    31                                         ]
    32                                 },
    33                                 "salary": {
    34                                         "values": [
    35                                                 "2000",
    36                                                 "2500",
    37                                                 "3000",
    38                                                 "3500",
    39                                                 "4000"
    40                                         ]
    41                                 },
    42                                 "work from home": {
    43                                         "values": [
    44                                                 "0",
    45                                                 "1",
    46                                                 "2"
    47                                         ]
    48                                 }
    49                         }
    50                 },
    51                 "reservationBid": {
    52                         "issuevalues": {
    53                                 "lease car": "no",
    54                                 "permanent contract": "no",
    55                                 "career development opportunities": "medium",
    56                                 "fte": "0.8",
    57                                 "salary": "3000",
    58                                 "work from home": "0"
    59                         }
    60                 },
    61                 "bids": [
    62                         {
    63                                 "issuevalues": {
    64                                         "lease car": "no",
    65                                         "permanent contract": "no",
    66                                         "career development opportunities": "low",
    67                                         "fte": "1.0",
    68                                         "salary": "3000",
    69                                         "work from home": "1"
    70                                 }
    71                         },
    72                         {
    73                                 "issuevalues": {
    74                                         "lease car": "yes",
    75                                         "permanent contract": "no",
    76                                         "career development opportunities": "high",
    77                                         "fte": "0.6",
    78                                         "salary": "3500",
    79                                         "work from home": "0"
    80                                 }
    81                         },
    82                         {
    83                                 "issuevalues": {
    84                                         "lease car": "no",
    85                                         "permanent contract": "no",
    86                                         "career development opportunities": "high",
    87                                         "fte": "0.8",
    88                                         "salary": "3000",
    89                                         "work from home": "0"
    90                                 }
    91                         },
    92                         {
    93                                 "issuevalues": {
    94                                         "lease car": "yes",
    95                                         "permanent contract": "no",
    96                                         "career development opportunities": "low",
    97                                         "fte": "0.6",
    98                                         "salary": "3500",
    99                                         "work from home": "0"
    100                                 }
    101                         },
    102                         {
    103                                 "issuevalues": {
    104                                         "lease car": "no",
    105                                         "permanent contract": "yes",
    106                                         "career development opportunities": "low",
    107                                         "fte": "0.6",
    108                                         "salary": "3000",
    109                                         "work from home": "1"
    110                                 }
    111                         },
    112                         {
    113                                 "issuevalues": {
    114                                         "lease car": "yes",
    115                                         "permanent contract": "yes",
    116                                         "career development opportunities": "low",
    117                                         "fte": "1.0",
    118                                         "salary": "2000",
    119                                         "work from home": "2"
    120                                 }
    121                         },
    122                         {
    123                                 "issuevalues": {
    124                                         "lease car": "no",
    125                                         "permanent contract": "yes",
    126                                         "career development opportunities": "low",
    127                                         "fte": "0.8",
    128                                         "salary": "2500",
    129                                         "work from home": "1"
    130                                 }
    131                         },
    132                         {
    133                                 "issuevalues": {
    134                                         "lease car": "no",
    135                                         "permanent contract": "yes",
    136                                         "career development opportunities": "low",
    137                                         "fte": "0.6",
    138                                         "salary": "2000",
    139                                         "work from home": "2"
    140                                 }
    141                         },
    142                         {
    143                                 "issuevalues": {
    144                                         "lease car": "yes",
    145                                         "permanent contract": "no",
    146                                         "career development opportunities": "medium",
    147                                         "fte": "0.6",
    148                                         "salary": "3500",
    149                                         "work from home": "1"
    150                                 }
    151                         },
    152                         {
    153                                 "issuevalues": {
    154                                         "lease car": "yes",
    155                                         "permanent contract": "yes",
    156                                         "career development opportunities": "low",
    157                                         "fte": "0.6",
    158                                         "salary": "2000",
    159                                         "work from home": "2"
    160                                 }
    161                         },
    162                         {
    163                                 "issuevalues": {
    164                                         "lease car": "yes",
    165                                         "permanent contract": "yes",
    166                                         "career development opportunities": "medium",
    167                                         "fte": "0.6",
    168                                         "salary": "2000",
    169                                         "work from home": "0"
    170                                 }
    171                         },
    172                         {
    173                                 "issuevalues": {
    174                                         "lease car": "yes",
    175                                         "permanent contract": "yes",
    176                                         "career development opportunities": "medium",
    177                                         "fte": "0.8",
    178                                         "salary": "3500",
    179                                         "work from home": "2"
    180                                 }
    181                         },
    182                         {
    183                                 "issuevalues": {
    184                                         "lease car": "no",
    185                                         "permanent contract": "no",
    186                                         "career development opportunities": "low",
    187                                         "fte": "0.6",
    188                                         "salary": "2000",
    189                                         "work from home": "0"
    190                                 }
    191                         },
    192                         {
    193                                 "issuevalues": {
    194                                         "lease car": "no",
    195                                         "permanent contract": "no",
    196                                         "career development opportunities": "high",
    197                                         "fte": "1.0",
    198                                         "salary": "4000",
    199                                         "work from home": "2"
    200                                 }
    201                         },
    202                         {
    203                                 "issuevalues": {
    204                                         "lease car": "yes",
    205                                         "permanent contract": "yes",
    206                                         "career development opportunities": "low",
    207                                         "fte": "0.8",
    208                                         "salary": "4000",
    209                                         "work from home": "2"
    210                                 }
    211                         },
    212                         {
    213                                 "issuevalues": {
    214                                         "lease car": "yes",
    215                                         "permanent contract": "no",
    216                                         "career development opportunities": "medium",
    217                                         "fte": "1.0",
    218                                         "salary": "3500",
    219                                         "work from home": "2"
    220                                 }
    221                         },
    222                         {
    223                                 "issuevalues": {
    224                                         "lease car": "no",
    225                                         "permanent contract": "yes",
    226                                         "career development opportunities": "high",
    227                                         "fte": "0.8",
    228                                         "salary": "2000",
    229                                         "work from home": "1"
    230                                 }
    231                         },
    232                         {
    233                                 "issuevalues": {
    234                                         "lease car": "yes",
    235                                         "permanent contract": "yes",
    236                                         "career development opportunities": "low",
    237                                         "fte": "1.0",
    238                                         "salary": "2500",
    239                                         "work from home": "1"
    240                                 }
    241                         },
    242                         {
    243                                 "issuevalues": {
    244                                         "lease car": "yes",
    245                                         "permanent contract": "yes",
    246                                         "career development opportunities": "high",
    247                                         "fte": "1.0",
    248                                         "salary": "4000",
    249                                         "work from home": "2"
    250                                 }
    251                         },
    252                         {
    253                                 "issuevalues": {
    254                                         "lease car": "no",
    255                                         "permanent contract": "yes",
    256                                         "career development opportunities": "medium",
    257                                         "fte": "0.8",
    258                                         "salary": "2500",
    259                                         "work from home": "1"
    260                                 }
    261                         }
    262                 ],
    263                 "better": [
    264                         [
    265                                 0,
    266                                 12
    267                         ],
    268                         [
    269                                 0,
    270                                 2
    271                         ],
    272                         [
    273                                 0,
    274                                 3
    275                         ],
    276                         [
    277                                 0,
    278                                 7
    279                         ],
    280                         [
    281                                 0,
    282                                 10
    283                         ],
    284                         [
    285                                 1,
    286                                 0
    287                         ],
    288                         [
    289                                 1,
    290                                 12
    291                         ],
    292                         [
    293                                 1,
    294                                 2
    295                         ],
    296                         [
    297                                 1,
    298                                 3
    299                         ],
    300                         [
    301                                 1,
    302                                 4
    303                         ],
    304                         [
    305                                 1,
    306                                 7
    307                         ],
    308                         [
    309                                 1,
    310                                 10
    311                         ],
    312                         [
    313                                 2,
    314                                 12
    315                         ],
    316                         [
    317                                 3,
    318                                 12
    319                         ],
    320                         [
    321                                 3,
    322                                 2
    323                         ],
    324                         [
    325                                 3,
    326                                 7
    327                         ],
    328                         [
    329                                 4,
    330                                 12
    331                         ],
    332                         [
    333                                 4,
    334                                 2
    335                         ],
    336                         [
    337                                 4,
    338                                 3
    339                         ],
    340                         [
    341                                 4,
    342                                 7
    343                         ],
    344                         [
    345                                 4,
    346                                 10
    347                         ],
    348                         [
    349                                 5,
    350                                 0
    351                         ],
    352                         [
    353                                 5,
    354                                 1
    355                         ],
    356                         [
    357                                 5,
    358                                 2
    359                         ],
    360                         [
    361                                 5,
    362                                 3
    363                         ],
    364                         [
    365                                 5,
    366                                 4
    367                         ],
    368                         [
    369                                 5,
    370                                 6
    371                         ],
    372                         [
    373                                 5,
    374                                 7
    375                         ],
    376                         [
    377                                 5,
    378                                 8
    379                         ],
    380                         [
    381                                 5,
    382                                 9
    383                         ],
    384                         [
    385                                 5,
    386                                 10
    387                         ],
    388                         [
    389                                 5,
    390                                 12
    391                         ],
    392                         [
    393                                 5,
    394                                 16
    395                         ],
    396                         [
    397                                 5,
    398                                 19
    399                         ],
    400                         [
    401                                 6,
    402                                 0
    403                         ],
    404                         [
    405                                 6,
    406                                 1
    407                         ],
    408                         [
    409                                 6,
    410                                 12
    411                         ],
    412                         [
    413                                 6,
    414                                 2
    415                         ],
    416                         [
    417                                 6,
    418                                 3
    419                         ],
    420                         [
    421                                 6,
    422                                 4
    423                         ],
    424                         [
    425                                 6,
    426                                 16
    427                         ],
    428                         [
    429                                 6,
    430                                 7
    431                         ],
    432                         [
    433                                 6,
    434                                 8
    435                         ],
    436                         [
    437                                 6,
    438                                 9
    439                         ],
    440                         [
    441                                 6,
    442                                 10
    443                         ],
    444                         [
    445                                 7,
    446                                 12
    447                         ],
    448                         [
    449                                 7,
    450                                 2
    451                         ],
    452                         [
    453                                 8,
    454                                 0
    455                         ],
    456                         [
    457                                 8,
    458                                 1
    459                         ],
    460                         [
    461                                 8,
    462                                 12
    463                         ],
    464                         [
    465                                 8,
    466                                 2
    467                         ],
    468                         [
    469                                 8,
    470                                 3
    471                         ],
    472                         [
    473                                 8,
    474                                 4
    475                         ],
    476                         [
    477                                 8,
    478                                 7
    479                         ],
    480                         [
    481                                 8,
    482                                 9
    483                         ],
    484                         [
    485                                 8,
    486                                 10
    487                         ],
    488                         [
    489                                 9,
    490                                 0
    491                         ],
    492                         [
    493                                 9,
    494                                 1
    495                         ],
    496                         [
    497                                 9,
    498                                 12
    499                         ],
    500                         [
    501                                 9,
    502                                 2
    503                         ],
    504                         [
    505                                 9,
    506                                 3
    507                         ],
    508                         [
    509                                 9,
    510                                 4
    511                         ],
    512                         [
    513                                 9,
    514                                 7
    515                         ],
    516                         [
    517                                 9,
    518                                 10
    519                         ],
    520                         [
    521                                 10,
    522                                 12
    523                         ],
    524                         [
    525                                 10,
    526                                 2
    527                         ],
    528                         [
    529                                 10,
    530                                 7
    531                         ],
    532                         [
    533                                 11,
    534                                 0
    535                         ],
    536                         [
    537                                 11,
    538                                 1
    539                         ],
    540                         [
    541                                 11,
    542                                 2
    543                         ],
    544                         [
    545                                 11,
    546                                 3
    547                         ],
    548                         [
    549                                 11,
    550                                 5
    551                         ],
    552                         [
    553                                 11,
    554                                 4
    555                         ],
    556                         [
    557                                 11,
    558                                 6
    559                         ],
    560                         [
    561                                 11,
    562                                 7
    563                         ],
    564                         [
    565                                 11,
    566                                 8
    567                         ],
    568                         [
    569                                 11,
    570                                 9
    571                         ],
    572                         [
    573                                 11,
    574                                 10
    575                         ],
    576                         [
    577                                 11,
    578                                 12
    579                         ],
    580                         [
    581                                 11,
    582                                 13
    583                         ],
    584                         [
    585                                 11,
    586                                 15
    587                         ],
    588                         [
    589                                 11,
    590                                 16
    591                         ],
    592                         [
    593                                 11,
    594                                 17
    595                         ],
    596                         [
    597                                 11,
    598                                 19
    599                         ],
    600                         [
    601                                 13,
    602                                 0
    603                         ],
    604                         [
    605                                 13,
    606                                 1
    607                         ],
    608                         [
    609                                 13,
    610                                 2
    611                         ],
    612                         [
    613                                 13,
    614                                 3
    615                         ],
    616                         [
    617                                 13,
    618                                 5
    619                         ],
    620                         [
    621                                 13,
    622                                 4
    623                         ],
    624                         [
    625                                 13,
    626                                 6
    627                         ],
    628                         [
    629                                 13,
    630                                 7
    631                         ],
    632                         [
    633                                 13,
    634                                 8
    635                         ],
    636                         [
    637                                 13,
    638                                 9
    639                         ],
    640                         [
    641                                 13,
    642                                 10
    643                         ],
    644                         [
    645                                 13,
    646                                 12
    647                         ],
    648                         [
    649                                 13,
    650                                 15
    651                         ],
    652                         [
    653                                 13,
    654                                 16
    655                         ],
    656                         [
    657                                 13,
    658                                 17
    659                         ],
    660                         [
    661                                 13,
    662                                 19
    663                         ],
    664                         [
    665                                 14,
    666                                 0
    667                         ],
    668                         [
    669                                 14,
    670                                 1
    671                         ],
    672                         [
    673                                 14,
    674                                 2
    675                         ],
    676                         [
    677                                 14,
    678                                 3
    679                         ],
    680                         [
    681                                 14,
    682                                 5
    683                         ],
    684                         [
    685                                 14,
    686                                 4
    687                         ],
    688                         [
    689                                 14,
    690                                 6
    691                         ],
    692                         [
    693                                 14,
    694                                 7
    695                         ],
    696                         [
    697                                 14,
    698                                 8
    699                         ],
    700                         [
    701                                 14,
    702                                 9
    703                         ],
    704                         [
    705                                 14,
    706                                 10
    707                         ],
    708                         [
    709                                 14,
    710                                 11
    711                         ],
    712                         [
    713                                 14,
    714                                 12
    715                         ],
    716                         [
    717                                 14,
    718                                 13
    719                         ],
    720                         [
    721                                 14,
    722                                 15
    723                         ],
    724                         [
    725                                 14,
    726                                 16
    727                         ],
    728                         [
    729                                 14,
    730                                 17
    731                         ],
    732                         [
    733                                 14,
    734                                 19
    735                         ],
    736                         [
    737                                 15,
    738                                 0
    739                         ],
    740                         [
    741                                 15,
    742                                 1
    743                         ],
    744                         [
    745                                 15,
    746                                 2
    747                         ],
    748                         [
    749                                 15,
    750                                 3
    751                         ],
    752                         [
    753                                 15,
    754                                 5
    755                         ],
    756                         [
    757                                 15,
    758                                 4
    759                         ],
    760                         [
    761                                 15,
    762                                 6
    763                         ],
    764                         [
    765                                 15,
    766                                 7
    767                         ],
    768                         [
    769                                 15,
    770                                 8
    771                         ],
    772                         [
    773                                 15,
    774                                 9
    775                         ],
    776                         [
    777                                 15,
    778                                 10
    779                         ],
    780                         [
    781                                 15,
    782                                 12
    783                         ],
    784                         [
    785                                 15,
    786                                 16
    787                         ],
    788                         [
    789                                 15,
    790                                 17
    791                         ],
    792                         [
    793                                 15,
    794                                 19
    795                         ],
    796                         [
    797                                 16,
    798                                 0
    799                         ],
    800                         [
    801                                 16,
    802                                 1
    803                         ],
    804                         [
    805                                 16,
    806                                 12
    807                         ],
    808                         [
    809                                 16,
    810                                 2
    811                         ],
    812                         [
    813                                 16,
    814                                 3
    815                         ],
    816                         [
    817                                 16,
    818                                 4
    819                         ],
    820                         [
    821                                 16,
    822                                 7
    823                         ],
    824                         [
    825                                 16,
    826                                 8
    827                         ],
    828                         [
    829                                 16,
    830                                 9
    831                         ],
    832                         [
    833                                 16,
    834                                 10
    835                         ],
    836                         [
    837                                 17,
    838                                 0
    839                         ],
    840                         [
    841                                 17,
    842                                 1
    843                         ],
    844                         [
    845                                 17,
    846                                 2
    847                         ],
    848                         [
    849                                 17,
    850                                 3
    851                         ],
    852                         [
    853                                 17,
    854                                 5
    855                         ],
    856                         [
    857                                 17,
    858                                 4
    859                         ],
    860                         [
    861                                 17,
    862                                 6
    863                         ],
    864                         [
    865                                 17,
    866                                 7
    867                         ],
    868                         [
    869                                 17,
    870                                 8
    871                         ],
    872                         [
    873                                 17,
    874                                 9
    875                         ],
    876                         [
    877                                 17,
    878                                 10
    879                         ],
    880                         [
    881                                 17,
    882                                 12
    883                         ],
    884                         [
    885                                 17,
    886                                 16
    887                         ],
    888                         [
    889                                 17,
    890                                 19
    891                         ],
    892                         [
    893                                 18,
    894                                 0
    895                         ],
    896                         [
    897                                 18,
    898                                 1
    899                         ],
    900                         [
    901                                 18,
    902                                 2
    903                         ],
    904                         [
    905                                 18,
    906                                 3
    907                         ],
    908                         [
    909                                 18,
    910                                 5
    911                         ],
    912                         [
    913                                 18,
    914                                 4
    915                         ],
    916                         [
    917                                 18,
    918                                 6
    919                         ],
    920                         [
    921                                 18,
    922                                 7
    923                         ],
    924                         [
    925                                 18,
    926                                 8
    927                         ],
    928                         [
    929                                 18,
    930                                 9
    931                         ],
    932                         [
    933                                 18,
    934                                 10
    935                         ],
    936                         [
    937                                 18,
    938                                 11
    939                         ],
    940                         [
    941                                 18,
    942                                 12
    943                         ],
    944                         [
    945                                 18,
    946                                 13
    947                         ],
    948                         [
    949                                 18,
    950                                 14
    951                         ],
    952                         [
    953                                 18,
    954                                 15
    955                         ],
    956                         [
    957                                 18,
    958                                 16
    959                         ],
    960                         [
    961                                 18,
    962                                 17
    963                         ],
    964                         [
    965                                 18,
    966                                 19
    967                         ],
    968                         [
    969                                 19,
    970                                 0
    971                         ],
    972                         [
    973                                 19,
    974                                 1
    975                         ],
    976                         [
    977                                 19,
    978                                 12
    979                         ],
    980                         [
    981                                 19,
    982                                 2
    983                         ],
    984                         [
    985                                 19,
    986                                 3
    987                         ],
    988                         [
    989                                 19,
    990                                 4
    991                         ],
    992                         [
    993                                 19,
    994                                 6
    995                         ],
    996                         [
    997                                 19,
    998                                 16
    999                         ],
    1000                         [
    1001                                 19,
    1002                                 7
    1003                         ],
    1004                         [
    1005                                 19,
    1006                                 8
    1007                         ],
    1008                         [
    1009                                 19,
    1010                                 9
    1011                         ],
    1012                         [
    1013                                 19,
    1014                                 10
    1015                         ]
    1016                 ]
    1017         }
     2  "DefaultPartialOrdering" : {
     3    "name" : "jobs1-partial-20",
     4    "domain" : {
     5      "name" : "jobs",
     6      "issuesValues" : {
     7        "lease car" : {
     8          "values" : [ "yes", "no" ]
     9        },
     10        "permanent contract" : {
     11          "values" : [ "yes", "no" ]
     12        },
     13        "career development opportunities" : {
     14          "values" : [ "low", "medium", "high" ]
     15        },
     16        "fte" : {
     17          "values" : [ "0.6", "0.8", "1.0" ]
     18        },
     19        "salary" : {
     20          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
     21        },
     22        "work from home" : {
     23          "values" : [ "0", "1", "2" ]
     24        }
     25      }
     26    },
     27    "better" : {
     28      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
     29        "issuevalues" : {
     30          "lease car" : "no",
     31          "permanent contract" : "no",
     32          "career development opportunities" : "low",
     33          "fte" : "0.6",
     34          "salary" : "2000",
     35          "work from home" : "0"
     36        }
     37      }, {
     38        "issuevalues" : {
     39          "lease car" : "yes",
     40          "permanent contract" : "no",
     41          "career development opportunities" : "low",
     42          "fte" : "0.6",
     43          "salary" : "3500",
     44          "work from home" : "0"
     45        }
     46      }, {
     47        "issuevalues" : {
     48          "lease car" : "no",
     49          "permanent contract" : "no",
     50          "career development opportunities" : "high",
     51          "fte" : "0.6",
     52          "salary" : "3500",
     53          "work from home" : "1"
     54        }
     55      }, {
     56        "issuevalues" : {
     57          "lease car" : "no",
     58          "permanent contract" : "no",
     59          "career development opportunities" : "low",
     60          "fte" : "1.0",
     61          "salary" : "2000",
     62          "work from home" : "1"
     63        }
     64      }, {
     65        "issuevalues" : {
     66          "lease car" : "no",
     67          "permanent contract" : "no",
     68          "career development opportunities" : "high",
     69          "fte" : "1.0",
     70          "salary" : "3000",
     71          "work from home" : "0"
     72        }
     73      }, {
     74        "issuevalues" : {
     75          "lease car" : "yes",
     76          "permanent contract" : "yes",
     77          "career development opportunities" : "medium",
     78          "fte" : "0.8",
     79          "salary" : "2500",
     80          "work from home" : "1"
     81        }
     82      }, {
     83        "issuevalues" : {
     84          "lease car" : "no",
     85          "permanent contract" : "no",
     86          "career development opportunities" : "low",
     87          "fte" : "0.6",
     88          "salary" : "2000",
     89          "work from home" : "1"
     90        }
     91      }, {
     92        "issuevalues" : {
     93          "lease car" : "yes",
     94          "permanent contract" : "no",
     95          "career development opportunities" : "high",
     96          "fte" : "1.0",
     97          "salary" : "3000",
     98          "work from home" : "1"
     99        }
     100      }, {
     101        "issuevalues" : {
     102          "lease car" : "yes",
     103          "permanent contract" : "no",
     104          "career development opportunities" : "high",
     105          "fte" : "0.8",
     106          "salary" : "3500",
     107          "work from home" : "1"
     108        }
     109      }, {
     110        "issuevalues" : {
     111          "lease car" : "no",
     112          "permanent contract" : "no",
     113          "career development opportunities" : "medium",
     114          "fte" : "0.8",
     115          "salary" : "2000",
     116          "work from home" : "1"
     117        }
     118      }, {
     119        "issuevalues" : {
     120          "lease car" : "yes",
     121          "permanent contract" : "yes",
     122          "career development opportunities" : "high",
     123          "fte" : "0.6",
     124          "salary" : "2000",
     125          "work from home" : "1"
     126        }
     127      } ],
     128      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     129        "issuevalues" : {
     130          "lease car" : "no",
     131          "permanent contract" : "no",
     132          "career development opportunities" : "low",
     133          "fte" : "0.6",
     134          "salary" : "2000",
     135          "work from home" : "0"
     136        }
     137      }, {
     138        "issuevalues" : {
     139          "lease car" : "no",
     140          "permanent contract" : "no",
     141          "career development opportunities" : "low",
     142          "fte" : "1.0",
     143          "salary" : "2000",
     144          "work from home" : "1"
     145        }
     146      }, {
     147        "issuevalues" : {
     148          "lease car" : "no",
     149          "permanent contract" : "no",
     150          "career development opportunities" : "low",
     151          "fte" : "0.6",
     152          "salary" : "2000",
     153          "work from home" : "1"
     154        }
     155      }, {
     156        "issuevalues" : {
     157          "lease car" : "no",
     158          "permanent contract" : "no",
     159          "career development opportunities" : "medium",
     160          "fte" : "0.8",
     161          "salary" : "2000",
     162          "work from home" : "1"
     163        }
     164      } ],
     165      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     166        "issuevalues" : {
     167          "lease car" : "no",
     168          "permanent contract" : "no",
     169          "career development opportunities" : "low",
     170          "fte" : "0.6",
     171          "salary" : "2000",
     172          "work from home" : "0"
     173        }
     174      }, {
     175        "issuevalues" : {
     176          "lease car" : "no",
     177          "permanent contract" : "no",
     178          "career development opportunities" : "low",
     179          "fte" : "0.6",
     180          "salary" : "2000",
     181          "work from home" : "1"
     182        }
     183      }, {
     184        "issuevalues" : {
     185          "lease car" : "no",
     186          "permanent contract" : "no",
     187          "career development opportunities" : "medium",
     188          "fte" : "0.8",
     189          "salary" : "2000",
     190          "work from home" : "1"
     191        }
     192      } ],
     193      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     194        "issuevalues" : {
     195          "lease car" : "no",
     196          "permanent contract" : "yes",
     197          "career development opportunities" : "high",
     198          "fte" : "1.0",
     199          "salary" : "2000",
     200          "work from home" : "2"
     201        }
     202      }, {
     203        "issuevalues" : {
     204          "lease car" : "yes",
     205          "permanent contract" : "no",
     206          "career development opportunities" : "low",
     207          "fte" : "0.6",
     208          "salary" : "3500",
     209          "work from home" : "0"
     210        }
     211      }, {
     212        "issuevalues" : {
     213          "lease car" : "no",
     214          "permanent contract" : "no",
     215          "career development opportunities" : "low",
     216          "fte" : "1.0",
     217          "salary" : "2000",
     218          "work from home" : "1"
     219        }
     220      }, {
     221        "issuevalues" : {
     222          "lease car" : "no",
     223          "permanent contract" : "no",
     224          "career development opportunities" : "high",
     225          "fte" : "1.0",
     226          "salary" : "3000",
     227          "work from home" : "0"
     228        }
     229      }, {
     230        "issuevalues" : {
     231          "lease car" : "no",
     232          "permanent contract" : "no",
     233          "career development opportunities" : "low",
     234          "fte" : "0.6",
     235          "salary" : "2000",
     236          "work from home" : "1"
     237        }
     238      }, {
     239        "issuevalues" : {
     240          "lease car" : "yes",
     241          "permanent contract" : "no",
     242          "career development opportunities" : "high",
     243          "fte" : "1.0",
     244          "salary" : "3000",
     245          "work from home" : "1"
     246        }
     247      }, {
     248        "issuevalues" : {
     249          "lease car" : "yes",
     250          "permanent contract" : "no",
     251          "career development opportunities" : "high",
     252          "fte" : "0.8",
     253          "salary" : "3500",
     254          "work from home" : "1"
     255        }
     256      }, {
     257        "issuevalues" : {
     258          "lease car" : "no",
     259          "permanent contract" : "no",
     260          "career development opportunities" : "medium",
     261          "fte" : "0.8",
     262          "salary" : "2000",
     263          "work from home" : "1"
     264        }
     265      }, {
     266        "issuevalues" : {
     267          "lease car" : "yes",
     268          "permanent contract" : "yes",
     269          "career development opportunities" : "high",
     270          "fte" : "0.6",
     271          "salary" : "2000",
     272          "work from home" : "1"
     273        }
     274      }, {
     275        "issuevalues" : {
     276          "lease car" : "no",
     277          "permanent contract" : "no",
     278          "career development opportunities" : "low",
     279          "fte" : "0.6",
     280          "salary" : "2000",
     281          "work from home" : "0"
     282        }
     283      }, {
     284        "issuevalues" : {
     285          "lease car" : "yes",
     286          "permanent contract" : "no",
     287          "career development opportunities" : "low",
     288          "fte" : "0.8",
     289          "salary" : "4000",
     290          "work from home" : "2"
     291        }
     292      }, {
     293        "issuevalues" : {
     294          "lease car" : "no",
     295          "permanent contract" : "no",
     296          "career development opportunities" : "high",
     297          "fte" : "0.6",
     298          "salary" : "3500",
     299          "work from home" : "1"
     300        }
     301      }, {
     302        "issuevalues" : {
     303          "lease car" : "yes",
     304          "permanent contract" : "yes",
     305          "career development opportunities" : "medium",
     306          "fte" : "0.8",
     307          "salary" : "2500",
     308          "work from home" : "1"
     309        }
     310      }, {
     311        "issuevalues" : {
     312          "lease car" : "yes",
     313          "permanent contract" : "yes",
     314          "career development opportunities" : "medium",
     315          "fte" : "0.8",
     316          "salary" : "2500",
     317          "work from home" : "2"
     318        }
     319      } ],
     320      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
     321        "issuevalues" : {
     322          "lease car" : "no",
     323          "permanent contract" : "no",
     324          "career development opportunities" : "low",
     325          "fte" : "0.6",
     326          "salary" : "2000",
     327          "work from home" : "0"
     328        }
     329      }, {
     330        "issuevalues" : {
     331          "lease car" : "yes",
     332          "permanent contract" : "no",
     333          "career development opportunities" : "low",
     334          "fte" : "0.6",
     335          "salary" : "3500",
     336          "work from home" : "0"
     337        }
     338      }, {
     339        "issuevalues" : {
     340          "lease car" : "no",
     341          "permanent contract" : "no",
     342          "career development opportunities" : "high",
     343          "fte" : "0.6",
     344          "salary" : "3500",
     345          "work from home" : "1"
     346        }
     347      }, {
     348        "issuevalues" : {
     349          "lease car" : "no",
     350          "permanent contract" : "no",
     351          "career development opportunities" : "low",
     352          "fte" : "1.0",
     353          "salary" : "2000",
     354          "work from home" : "1"
     355        }
     356      }, {
     357        "issuevalues" : {
     358          "lease car" : "no",
     359          "permanent contract" : "no",
     360          "career development opportunities" : "low",
     361          "fte" : "0.6",
     362          "salary" : "2000",
     363          "work from home" : "1"
     364        }
     365      }, {
     366        "issuevalues" : {
     367          "lease car" : "no",
     368          "permanent contract" : "no",
     369          "career development opportunities" : "medium",
     370          "fte" : "0.8",
     371          "salary" : "2000",
     372          "work from home" : "1"
     373        }
     374      } ],
     375      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     376        "issuevalues" : {
     377          "lease car" : "no",
     378          "permanent contract" : "yes",
     379          "career development opportunities" : "high",
     380          "fte" : "1.0",
     381          "salary" : "2000",
     382          "work from home" : "2"
     383        }
     384      }, {
     385        "issuevalues" : {
     386          "lease car" : "yes",
     387          "permanent contract" : "no",
     388          "career development opportunities" : "low",
     389          "fte" : "0.6",
     390          "salary" : "3500",
     391          "work from home" : "0"
     392        }
     393      }, {
     394        "issuevalues" : {
     395          "lease car" : "no",
     396          "permanent contract" : "no",
     397          "career development opportunities" : "low",
     398          "fte" : "1.0",
     399          "salary" : "2000",
     400          "work from home" : "1"
     401        }
     402      }, {
     403        "issuevalues" : {
     404          "lease car" : "yes",
     405          "permanent contract" : "no",
     406          "career development opportunities" : "medium",
     407          "fte" : "1.0",
     408          "salary" : "3500",
     409          "work from home" : "1"
     410        }
     411      }, {
     412        "issuevalues" : {
     413          "lease car" : "no",
     414          "permanent contract" : "no",
     415          "career development opportunities" : "high",
     416          "fte" : "1.0",
     417          "salary" : "3000",
     418          "work from home" : "0"
     419        }
     420      }, {
     421        "issuevalues" : {
     422          "lease car" : "no",
     423          "permanent contract" : "no",
     424          "career development opportunities" : "low",
     425          "fte" : "0.6",
     426          "salary" : "2000",
     427          "work from home" : "1"
     428        }
     429      }, {
     430        "issuevalues" : {
     431          "lease car" : "yes",
     432          "permanent contract" : "no",
     433          "career development opportunities" : "high",
     434          "fte" : "1.0",
     435          "salary" : "3000",
     436          "work from home" : "1"
     437        }
     438      }, {
     439        "issuevalues" : {
     440          "lease car" : "yes",
     441          "permanent contract" : "no",
     442          "career development opportunities" : "high",
     443          "fte" : "0.8",
     444          "salary" : "3500",
     445          "work from home" : "1"
     446        }
     447      }, {
     448        "issuevalues" : {
     449          "lease car" : "no",
     450          "permanent contract" : "no",
     451          "career development opportunities" : "medium",
     452          "fte" : "0.8",
     453          "salary" : "2000",
     454          "work from home" : "1"
     455        }
     456      }, {
     457        "issuevalues" : {
     458          "lease car" : "yes",
     459          "permanent contract" : "yes",
     460          "career development opportunities" : "high",
     461          "fte" : "0.6",
     462          "salary" : "2000",
     463          "work from home" : "1"
     464        }
     465      }, {
     466        "issuevalues" : {
     467          "lease car" : "no",
     468          "permanent contract" : "no",
     469          "career development opportunities" : "low",
     470          "fte" : "0.6",
     471          "salary" : "2000",
     472          "work from home" : "0"
     473        }
     474      }, {
     475        "issuevalues" : {
     476          "lease car" : "yes",
     477          "permanent contract" : "no",
     478          "career development opportunities" : "low",
     479          "fte" : "0.8",
     480          "salary" : "4000",
     481          "work from home" : "2"
     482        }
     483      }, {
     484        "issuevalues" : {
     485          "lease car" : "no",
     486          "permanent contract" : "no",
     487          "career development opportunities" : "high",
     488          "fte" : "0.6",
     489          "salary" : "3500",
     490          "work from home" : "1"
     491        }
     492      }, {
     493        "issuevalues" : {
     494          "lease car" : "yes",
     495          "permanent contract" : "yes",
     496          "career development opportunities" : "medium",
     497          "fte" : "0.8",
     498          "salary" : "2500",
     499          "work from home" : "1"
     500        }
     501      }, {
     502        "issuevalues" : {
     503          "lease car" : "yes",
     504          "permanent contract" : "yes",
     505          "career development opportunities" : "medium",
     506          "fte" : "0.8",
     507          "salary" : "2500",
     508          "work from home" : "2"
     509        }
     510      }, {
     511        "issuevalues" : {
     512          "lease car" : "no",
     513          "permanent contract" : "yes",
     514          "career development opportunities" : "low",
     515          "fte" : "1.0",
     516          "salary" : "3500",
     517          "work from home" : "0"
     518        }
     519      } ],
     520      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     521        "issuevalues" : {
     522          "lease car" : "no",
     523          "permanent contract" : "no",
     524          "career development opportunities" : "low",
     525          "fte" : "0.6",
     526          "salary" : "2000",
     527          "work from home" : "0"
     528        }
     529      } ],
     530      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
     531        "issuevalues" : {
     532          "lease car" : "no",
     533          "permanent contract" : "no",
     534          "career development opportunities" : "low",
     535          "fte" : "0.6",
     536          "salary" : "2000",
     537          "work from home" : "0"
     538        }
     539      }, {
     540        "issuevalues" : {
     541          "lease car" : "yes",
     542          "permanent contract" : "no",
     543          "career development opportunities" : "low",
     544          "fte" : "0.6",
     545          "salary" : "3500",
     546          "work from home" : "0"
     547        }
     548      }, {
     549        "issuevalues" : {
     550          "lease car" : "no",
     551          "permanent contract" : "no",
     552          "career development opportunities" : "high",
     553          "fte" : "0.6",
     554          "salary" : "3500",
     555          "work from home" : "1"
     556        }
     557      }, {
     558        "issuevalues" : {
     559          "lease car" : "no",
     560          "permanent contract" : "no",
     561          "career development opportunities" : "low",
     562          "fte" : "1.0",
     563          "salary" : "2000",
     564          "work from home" : "1"
     565        }
     566      }, {
     567        "issuevalues" : {
     568          "lease car" : "no",
     569          "permanent contract" : "no",
     570          "career development opportunities" : "high",
     571          "fte" : "1.0",
     572          "salary" : "3000",
     573          "work from home" : "0"
     574        }
     575      }, {
     576        "issuevalues" : {
     577          "lease car" : "no",
     578          "permanent contract" : "no",
     579          "career development opportunities" : "low",
     580          "fte" : "0.6",
     581          "salary" : "2000",
     582          "work from home" : "1"
     583        }
     584      }, {
     585        "issuevalues" : {
     586          "lease car" : "no",
     587          "permanent contract" : "no",
     588          "career development opportunities" : "medium",
     589          "fte" : "0.8",
     590          "salary" : "2000",
     591          "work from home" : "1"
     592        }
     593      }, {
     594        "issuevalues" : {
     595          "lease car" : "yes",
     596          "permanent contract" : "yes",
     597          "career development opportunities" : "high",
     598          "fte" : "0.6",
     599          "salary" : "2000",
     600          "work from home" : "1"
     601        }
     602      } ],
     603      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     604        "issuevalues" : {
     605          "lease car" : "no",
     606          "permanent contract" : "no",
     607          "career development opportunities" : "low",
     608          "fte" : "0.6",
     609          "salary" : "2000",
     610          "work from home" : "0"
     611        }
     612      }, {
     613        "issuevalues" : {
     614          "lease car" : "yes",
     615          "permanent contract" : "no",
     616          "career development opportunities" : "low",
     617          "fte" : "0.6",
     618          "salary" : "3500",
     619          "work from home" : "0"
     620        }
     621      }, {
     622        "issuevalues" : {
     623          "lease car" : "no",
     624          "permanent contract" : "no",
     625          "career development opportunities" : "high",
     626          "fte" : "0.6",
     627          "salary" : "3500",
     628          "work from home" : "1"
     629        }
     630      }, {
     631        "issuevalues" : {
     632          "lease car" : "no",
     633          "permanent contract" : "no",
     634          "career development opportunities" : "low",
     635          "fte" : "1.0",
     636          "salary" : "2000",
     637          "work from home" : "1"
     638        }
     639      }, {
     640        "issuevalues" : {
     641          "lease car" : "no",
     642          "permanent contract" : "no",
     643          "career development opportunities" : "high",
     644          "fte" : "1.0",
     645          "salary" : "3000",
     646          "work from home" : "0"
     647        }
     648      }, {
     649        "issuevalues" : {
     650          "lease car" : "no",
     651          "permanent contract" : "no",
     652          "career development opportunities" : "low",
     653          "fte" : "0.6",
     654          "salary" : "2000",
     655          "work from home" : "1"
     656        }
     657      }, {
     658        "issuevalues" : {
     659          "lease car" : "yes",
     660          "permanent contract" : "no",
     661          "career development opportunities" : "high",
     662          "fte" : "1.0",
     663          "salary" : "3000",
     664          "work from home" : "1"
     665        }
     666      }, {
     667        "issuevalues" : {
     668          "lease car" : "no",
     669          "permanent contract" : "no",
     670          "career development opportunities" : "medium",
     671          "fte" : "0.8",
     672          "salary" : "2000",
     673          "work from home" : "1"
     674        }
     675      }, {
     676        "issuevalues" : {
     677          "lease car" : "yes",
     678          "permanent contract" : "yes",
     679          "career development opportunities" : "high",
     680          "fte" : "0.6",
     681          "salary" : "2000",
     682          "work from home" : "1"
     683        }
     684      } ],
     685      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     686        "issuevalues" : {
     687          "lease car" : "no",
     688          "permanent contract" : "no",
     689          "career development opportunities" : "low",
     690          "fte" : "0.6",
     691          "salary" : "2000",
     692          "work from home" : "0"
     693        }
     694      }, {
     695        "issuevalues" : {
     696          "lease car" : "no",
     697          "permanent contract" : "no",
     698          "career development opportunities" : "low",
     699          "fte" : "0.6",
     700          "salary" : "2000",
     701          "work from home" : "1"
     702        }
     703      } ],
     704      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     705        "issuevalues" : {
     706          "lease car" : "no",
     707          "permanent contract" : "no",
     708          "career development opportunities" : "low",
     709          "fte" : "0.6",
     710          "salary" : "2000",
     711          "work from home" : "0"
     712        }
     713      }, {
     714        "issuevalues" : {
     715          "lease car" : "yes",
     716          "permanent contract" : "no",
     717          "career development opportunities" : "low",
     718          "fte" : "0.6",
     719          "salary" : "3500",
     720          "work from home" : "0"
     721        }
     722      }, {
     723        "issuevalues" : {
     724          "lease car" : "no",
     725          "permanent contract" : "no",
     726          "career development opportunities" : "high",
     727          "fte" : "0.6",
     728          "salary" : "3500",
     729          "work from home" : "1"
     730        }
     731      }, {
     732        "issuevalues" : {
     733          "lease car" : "no",
     734          "permanent contract" : "no",
     735          "career development opportunities" : "low",
     736          "fte" : "1.0",
     737          "salary" : "2000",
     738          "work from home" : "1"
     739        }
     740      }, {
     741        "issuevalues" : {
     742          "lease car" : "no",
     743          "permanent contract" : "no",
     744          "career development opportunities" : "high",
     745          "fte" : "1.0",
     746          "salary" : "3000",
     747          "work from home" : "0"
     748        }
     749      }, {
     750        "issuevalues" : {
     751          "lease car" : "no",
     752          "permanent contract" : "no",
     753          "career development opportunities" : "low",
     754          "fte" : "0.6",
     755          "salary" : "2000",
     756          "work from home" : "1"
     757        }
     758      }, {
     759        "issuevalues" : {
     760          "lease car" : "no",
     761          "permanent contract" : "no",
     762          "career development opportunities" : "medium",
     763          "fte" : "0.8",
     764          "salary" : "2000",
     765          "work from home" : "1"
     766        }
     767      } ],
     768      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
     769      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     770        "issuevalues" : {
     771          "lease car" : "no",
     772          "permanent contract" : "yes",
     773          "career development opportunities" : "high",
     774          "fte" : "1.0",
     775          "salary" : "2000",
     776          "work from home" : "2"
     777        }
     778      }, {
     779        "issuevalues" : {
     780          "lease car" : "yes",
     781          "permanent contract" : "no",
     782          "career development opportunities" : "low",
     783          "fte" : "0.6",
     784          "salary" : "3500",
     785          "work from home" : "0"
     786        }
     787      }, {
     788        "issuevalues" : {
     789          "lease car" : "no",
     790          "permanent contract" : "no",
     791          "career development opportunities" : "low",
     792          "fte" : "1.0",
     793          "salary" : "2000",
     794          "work from home" : "1"
     795        }
     796      }, {
     797        "issuevalues" : {
     798          "lease car" : "yes",
     799          "permanent contract" : "no",
     800          "career development opportunities" : "medium",
     801          "fte" : "1.0",
     802          "salary" : "3500",
     803          "work from home" : "1"
     804        }
     805      }, {
     806        "issuevalues" : {
     807          "lease car" : "no",
     808          "permanent contract" : "no",
     809          "career development opportunities" : "high",
     810          "fte" : "1.0",
     811          "salary" : "3000",
     812          "work from home" : "0"
     813        }
     814      }, {
     815        "issuevalues" : {
     816          "lease car" : "yes",
     817          "permanent contract" : "yes",
     818          "career development opportunities" : "medium",
     819          "fte" : "1.0",
     820          "salary" : "2500",
     821          "work from home" : "2"
     822        }
     823      }, {
     824        "issuevalues" : {
     825          "lease car" : "no",
     826          "permanent contract" : "no",
     827          "career development opportunities" : "low",
     828          "fte" : "0.6",
     829          "salary" : "2000",
     830          "work from home" : "1"
     831        }
     832      }, {
     833        "issuevalues" : {
     834          "lease car" : "yes",
     835          "permanent contract" : "no",
     836          "career development opportunities" : "high",
     837          "fte" : "1.0",
     838          "salary" : "3000",
     839          "work from home" : "1"
     840        }
     841      }, {
     842        "issuevalues" : {
     843          "lease car" : "yes",
     844          "permanent contract" : "no",
     845          "career development opportunities" : "high",
     846          "fte" : "0.8",
     847          "salary" : "3500",
     848          "work from home" : "1"
     849        }
     850      }, {
     851        "issuevalues" : {
     852          "lease car" : "no",
     853          "permanent contract" : "no",
     854          "career development opportunities" : "medium",
     855          "fte" : "0.8",
     856          "salary" : "2000",
     857          "work from home" : "1"
     858        }
     859      }, {
     860        "issuevalues" : {
     861          "lease car" : "yes",
     862          "permanent contract" : "yes",
     863          "career development opportunities" : "high",
     864          "fte" : "0.6",
     865          "salary" : "2000",
     866          "work from home" : "1"
     867        }
     868      }, {
     869        "issuevalues" : {
     870          "lease car" : "no",
     871          "permanent contract" : "no",
     872          "career development opportunities" : "low",
     873          "fte" : "0.6",
     874          "salary" : "2000",
     875          "work from home" : "0"
     876        }
     877      }, {
     878        "issuevalues" : {
     879          "lease car" : "yes",
     880          "permanent contract" : "no",
     881          "career development opportunities" : "low",
     882          "fte" : "0.8",
     883          "salary" : "4000",
     884          "work from home" : "2"
     885        }
     886      }, {
     887        "issuevalues" : {
     888          "lease car" : "no",
     889          "permanent contract" : "no",
     890          "career development opportunities" : "high",
     891          "fte" : "0.6",
     892          "salary" : "3500",
     893          "work from home" : "1"
     894        }
     895      }, {
     896        "issuevalues" : {
     897          "lease car" : "yes",
     898          "permanent contract" : "no",
     899          "career development opportunities" : "high",
     900          "fte" : "1.0",
     901          "salary" : "4000",
     902          "work from home" : "2"
     903        }
     904      }, {
     905        "issuevalues" : {
     906          "lease car" : "yes",
     907          "permanent contract" : "yes",
     908          "career development opportunities" : "medium",
     909          "fte" : "0.8",
     910          "salary" : "2500",
     911          "work from home" : "1"
     912        }
     913      }, {
     914        "issuevalues" : {
     915          "lease car" : "yes",
     916          "permanent contract" : "yes",
     917          "career development opportunities" : "medium",
     918          "fte" : "0.8",
     919          "salary" : "2500",
     920          "work from home" : "2"
     921        }
     922      }, {
     923        "issuevalues" : {
     924          "lease car" : "no",
     925          "permanent contract" : "yes",
     926          "career development opportunities" : "low",
     927          "fte" : "1.0",
     928          "salary" : "3500",
     929          "work from home" : "0"
     930        }
     931      } ],
     932      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     933        "issuevalues" : {
     934          "lease car" : "no",
     935          "permanent contract" : "yes",
     936          "career development opportunities" : "high",
     937          "fte" : "1.0",
     938          "salary" : "2000",
     939          "work from home" : "2"
     940        }
     941      }, {
     942        "issuevalues" : {
     943          "lease car" : "no",
     944          "permanent contract" : "no",
     945          "career development opportunities" : "low",
     946          "fte" : "0.6",
     947          "salary" : "2000",
     948          "work from home" : "0"
     949        }
     950      }, {
     951        "issuevalues" : {
     952          "lease car" : "yes",
     953          "permanent contract" : "no",
     954          "career development opportunities" : "low",
     955          "fte" : "0.6",
     956          "salary" : "3500",
     957          "work from home" : "0"
     958        }
     959      }, {
     960        "issuevalues" : {
     961          "lease car" : "no",
     962          "permanent contract" : "no",
     963          "career development opportunities" : "high",
     964          "fte" : "0.6",
     965          "salary" : "3500",
     966          "work from home" : "1"
     967        }
     968      }, {
     969        "issuevalues" : {
     970          "lease car" : "no",
     971          "permanent contract" : "no",
     972          "career development opportunities" : "low",
     973          "fte" : "1.0",
     974          "salary" : "2000",
     975          "work from home" : "1"
     976        }
     977      }, {
     978        "issuevalues" : {
     979          "lease car" : "no",
     980          "permanent contract" : "no",
     981          "career development opportunities" : "high",
     982          "fte" : "1.0",
     983          "salary" : "3000",
     984          "work from home" : "0"
     985        }
     986      }, {
     987        "issuevalues" : {
     988          "lease car" : "yes",
     989          "permanent contract" : "yes",
     990          "career development opportunities" : "medium",
     991          "fte" : "0.8",
     992          "salary" : "2500",
     993          "work from home" : "1"
     994        }
     995      }, {
     996        "issuevalues" : {
     997          "lease car" : "no",
     998          "permanent contract" : "no",
     999          "career development opportunities" : "low",
     1000          "fte" : "0.6",
     1001          "salary" : "2000",
     1002          "work from home" : "1"
     1003        }
     1004      }, {
     1005        "issuevalues" : {
     1006          "lease car" : "yes",
     1007          "permanent contract" : "no",
     1008          "career development opportunities" : "high",
     1009          "fte" : "1.0",
     1010          "salary" : "3000",
     1011          "work from home" : "1"
     1012        }
     1013      }, {
     1014        "issuevalues" : {
     1015          "lease car" : "yes",
     1016          "permanent contract" : "no",
     1017          "career development opportunities" : "high",
     1018          "fte" : "0.8",
     1019          "salary" : "3500",
     1020          "work from home" : "1"
     1021        }
     1022      }, {
     1023        "issuevalues" : {
     1024          "lease car" : "no",
     1025          "permanent contract" : "no",
     1026          "career development opportunities" : "medium",
     1027          "fte" : "0.8",
     1028          "salary" : "2000",
     1029          "work from home" : "1"
     1030        }
     1031      }, {
     1032        "issuevalues" : {
     1033          "lease car" : "yes",
     1034          "permanent contract" : "yes",
     1035          "career development opportunities" : "high",
     1036          "fte" : "0.6",
     1037          "salary" : "2000",
     1038          "work from home" : "1"
     1039        }
     1040      } ],
     1041      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     1042        "issuevalues" : {
     1043          "lease car" : "no",
     1044          "permanent contract" : "no",
     1045          "career development opportunities" : "low",
     1046          "fte" : "0.6",
     1047          "salary" : "2000",
     1048          "work from home" : "0"
     1049        }
     1050      }, {
     1051        "issuevalues" : {
     1052          "lease car" : "yes",
     1053          "permanent contract" : "no",
     1054          "career development opportunities" : "low",
     1055          "fte" : "0.6",
     1056          "salary" : "3500",
     1057          "work from home" : "0"
     1058        }
     1059      }, {
     1060        "issuevalues" : {
     1061          "lease car" : "no",
     1062          "permanent contract" : "no",
     1063          "career development opportunities" : "low",
     1064          "fte" : "1.0",
     1065          "salary" : "2000",
     1066          "work from home" : "1"
     1067        }
     1068      }, {
     1069        "issuevalues" : {
     1070          "lease car" : "no",
     1071          "permanent contract" : "no",
     1072          "career development opportunities" : "low",
     1073          "fte" : "0.6",
     1074          "salary" : "2000",
     1075          "work from home" : "1"
     1076        }
     1077      }, {
     1078        "issuevalues" : {
     1079          "lease car" : "no",
     1080          "permanent contract" : "no",
     1081          "career development opportunities" : "medium",
     1082          "fte" : "0.8",
     1083          "salary" : "2000",
     1084          "work from home" : "1"
     1085        }
     1086      } ],
     1087      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1088        "issuevalues" : {
     1089          "lease car" : "no",
     1090          "permanent contract" : "yes",
     1091          "career development opportunities" : "high",
     1092          "fte" : "1.0",
     1093          "salary" : "2000",
     1094          "work from home" : "2"
     1095        }
     1096      }, {
     1097        "issuevalues" : {
     1098          "lease car" : "yes",
     1099          "permanent contract" : "no",
     1100          "career development opportunities" : "low",
     1101          "fte" : "0.6",
     1102          "salary" : "3500",
     1103          "work from home" : "0"
     1104        }
     1105      }, {
     1106        "issuevalues" : {
     1107          "lease car" : "no",
     1108          "permanent contract" : "no",
     1109          "career development opportunities" : "low",
     1110          "fte" : "1.0",
     1111          "salary" : "2000",
     1112          "work from home" : "1"
     1113        }
     1114      }, {
     1115        "issuevalues" : {
     1116          "lease car" : "yes",
     1117          "permanent contract" : "no",
     1118          "career development opportunities" : "medium",
     1119          "fte" : "1.0",
     1120          "salary" : "3500",
     1121          "work from home" : "1"
     1122        }
     1123      }, {
     1124        "issuevalues" : {
     1125          "lease car" : "no",
     1126          "permanent contract" : "no",
     1127          "career development opportunities" : "high",
     1128          "fte" : "1.0",
     1129          "salary" : "3000",
     1130          "work from home" : "0"
     1131        }
     1132      }, {
     1133        "issuevalues" : {
     1134          "lease car" : "yes",
     1135          "permanent contract" : "yes",
     1136          "career development opportunities" : "medium",
     1137          "fte" : "1.0",
     1138          "salary" : "2500",
     1139          "work from home" : "2"
     1140        }
     1141      }, {
     1142        "issuevalues" : {
     1143          "lease car" : "no",
     1144          "permanent contract" : "no",
     1145          "career development opportunities" : "low",
     1146          "fte" : "0.6",
     1147          "salary" : "2000",
     1148          "work from home" : "1"
     1149        }
     1150      }, {
     1151        "issuevalues" : {
     1152          "lease car" : "yes",
     1153          "permanent contract" : "no",
     1154          "career development opportunities" : "high",
     1155          "fte" : "1.0",
     1156          "salary" : "3000",
     1157          "work from home" : "1"
     1158        }
     1159      }, {
     1160        "issuevalues" : {
     1161          "lease car" : "yes",
     1162          "permanent contract" : "no",
     1163          "career development opportunities" : "high",
     1164          "fte" : "0.8",
     1165          "salary" : "3500",
     1166          "work from home" : "1"
     1167        }
     1168      }, {
     1169        "issuevalues" : {
     1170          "lease car" : "no",
     1171          "permanent contract" : "no",
     1172          "career development opportunities" : "medium",
     1173          "fte" : "0.8",
     1174          "salary" : "2000",
     1175          "work from home" : "1"
     1176        }
     1177      }, {
     1178        "issuevalues" : {
     1179          "lease car" : "yes",
     1180          "permanent contract" : "yes",
     1181          "career development opportunities" : "high",
     1182          "fte" : "0.6",
     1183          "salary" : "2000",
     1184          "work from home" : "1"
     1185        }
     1186      }, {
     1187        "issuevalues" : {
     1188          "lease car" : "no",
     1189          "permanent contract" : "no",
     1190          "career development opportunities" : "low",
     1191          "fte" : "0.6",
     1192          "salary" : "2000",
     1193          "work from home" : "0"
     1194        }
     1195      }, {
     1196        "issuevalues" : {
     1197          "lease car" : "yes",
     1198          "permanent contract" : "yes",
     1199          "career development opportunities" : "low",
     1200          "fte" : "0.8",
     1201          "salary" : "4000",
     1202          "work from home" : "2"
     1203        }
     1204      }, {
     1205        "issuevalues" : {
     1206          "lease car" : "yes",
     1207          "permanent contract" : "no",
     1208          "career development opportunities" : "low",
     1209          "fte" : "0.8",
     1210          "salary" : "4000",
     1211          "work from home" : "2"
     1212        }
     1213      }, {
     1214        "issuevalues" : {
     1215          "lease car" : "no",
     1216          "permanent contract" : "no",
     1217          "career development opportunities" : "high",
     1218          "fte" : "0.6",
     1219          "salary" : "3500",
     1220          "work from home" : "1"
     1221        }
     1222      }, {
     1223        "issuevalues" : {
     1224          "lease car" : "yes",
     1225          "permanent contract" : "no",
     1226          "career development opportunities" : "high",
     1227          "fte" : "1.0",
     1228          "salary" : "4000",
     1229          "work from home" : "2"
     1230        }
     1231      }, {
     1232        "issuevalues" : {
     1233          "lease car" : "yes",
     1234          "permanent contract" : "yes",
     1235          "career development opportunities" : "medium",
     1236          "fte" : "0.8",
     1237          "salary" : "2500",
     1238          "work from home" : "1"
     1239        }
     1240      }, {
     1241        "issuevalues" : {
     1242          "lease car" : "yes",
     1243          "permanent contract" : "yes",
     1244          "career development opportunities" : "medium",
     1245          "fte" : "0.8",
     1246          "salary" : "2500",
     1247          "work from home" : "2"
     1248        }
     1249      }, {
     1250        "issuevalues" : {
     1251          "lease car" : "no",
     1252          "permanent contract" : "yes",
     1253          "career development opportunities" : "low",
     1254          "fte" : "1.0",
     1255          "salary" : "3500",
     1256          "work from home" : "0"
     1257        }
     1258      } ],
     1259      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1260        "issuevalues" : {
     1261          "lease car" : "no",
     1262          "permanent contract" : "yes",
     1263          "career development opportunities" : "high",
     1264          "fte" : "1.0",
     1265          "salary" : "2000",
     1266          "work from home" : "2"
     1267        }
     1268      }, {
     1269        "issuevalues" : {
     1270          "lease car" : "yes",
     1271          "permanent contract" : "no",
     1272          "career development opportunities" : "low",
     1273          "fte" : "0.6",
     1274          "salary" : "3500",
     1275          "work from home" : "0"
     1276        }
     1277      }, {
     1278        "issuevalues" : {
     1279          "lease car" : "no",
     1280          "permanent contract" : "no",
     1281          "career development opportunities" : "low",
     1282          "fte" : "1.0",
     1283          "salary" : "2000",
     1284          "work from home" : "1"
     1285        }
     1286      }, {
     1287        "issuevalues" : {
     1288          "lease car" : "yes",
     1289          "permanent contract" : "no",
     1290          "career development opportunities" : "medium",
     1291          "fte" : "1.0",
     1292          "salary" : "3500",
     1293          "work from home" : "1"
     1294        }
     1295      }, {
     1296        "issuevalues" : {
     1297          "lease car" : "no",
     1298          "permanent contract" : "no",
     1299          "career development opportunities" : "high",
     1300          "fte" : "1.0",
     1301          "salary" : "3000",
     1302          "work from home" : "0"
     1303        }
     1304      }, {
     1305        "issuevalues" : {
     1306          "lease car" : "yes",
     1307          "permanent contract" : "yes",
     1308          "career development opportunities" : "medium",
     1309          "fte" : "1.0",
     1310          "salary" : "2500",
     1311          "work from home" : "2"
     1312        }
     1313      }, {
     1314        "issuevalues" : {
     1315          "lease car" : "no",
     1316          "permanent contract" : "no",
     1317          "career development opportunities" : "low",
     1318          "fte" : "0.6",
     1319          "salary" : "2000",
     1320          "work from home" : "1"
     1321        }
     1322      }, {
     1323        "issuevalues" : {
     1324          "lease car" : "yes",
     1325          "permanent contract" : "no",
     1326          "career development opportunities" : "high",
     1327          "fte" : "1.0",
     1328          "salary" : "3000",
     1329          "work from home" : "1"
     1330        }
     1331      }, {
     1332        "issuevalues" : {
     1333          "lease car" : "yes",
     1334          "permanent contract" : "no",
     1335          "career development opportunities" : "high",
     1336          "fte" : "0.8",
     1337          "salary" : "3500",
     1338          "work from home" : "1"
     1339        }
     1340      }, {
     1341        "issuevalues" : {
     1342          "lease car" : "no",
     1343          "permanent contract" : "no",
     1344          "career development opportunities" : "medium",
     1345          "fte" : "0.8",
     1346          "salary" : "2000",
     1347          "work from home" : "1"
     1348        }
     1349      }, {
     1350        "issuevalues" : {
     1351          "lease car" : "yes",
     1352          "permanent contract" : "yes",
     1353          "career development opportunities" : "high",
     1354          "fte" : "0.6",
     1355          "salary" : "2000",
     1356          "work from home" : "1"
     1357        }
     1358      }, {
     1359        "issuevalues" : {
     1360          "lease car" : "no",
     1361          "permanent contract" : "no",
     1362          "career development opportunities" : "low",
     1363          "fte" : "0.6",
     1364          "salary" : "2000",
     1365          "work from home" : "0"
     1366        }
     1367      }, {
     1368        "issuevalues" : {
     1369          "lease car" : "yes",
     1370          "permanent contract" : "no",
     1371          "career development opportunities" : "low",
     1372          "fte" : "0.8",
     1373          "salary" : "4000",
     1374          "work from home" : "2"
     1375        }
     1376      }, {
     1377        "issuevalues" : {
     1378          "lease car" : "no",
     1379          "permanent contract" : "no",
     1380          "career development opportunities" : "high",
     1381          "fte" : "0.6",
     1382          "salary" : "3500",
     1383          "work from home" : "1"
     1384        }
     1385      }, {
     1386        "issuevalues" : {
     1387          "lease car" : "yes",
     1388          "permanent contract" : "yes",
     1389          "career development opportunities" : "medium",
     1390          "fte" : "0.8",
     1391          "salary" : "2500",
     1392          "work from home" : "1"
     1393        }
     1394      }, {
     1395        "issuevalues" : {
     1396          "lease car" : "yes",
     1397          "permanent contract" : "yes",
     1398          "career development opportunities" : "medium",
     1399          "fte" : "0.8",
     1400          "salary" : "2500",
     1401          "work from home" : "2"
     1402        }
     1403      }, {
     1404        "issuevalues" : {
     1405          "lease car" : "no",
     1406          "permanent contract" : "yes",
     1407          "career development opportunities" : "low",
     1408          "fte" : "1.0",
     1409          "salary" : "3500",
     1410          "work from home" : "0"
     1411        }
     1412      } ],
     1413      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
     1414        "issuevalues" : {
     1415          "lease car" : "no",
     1416          "permanent contract" : "no",
     1417          "career development opportunities" : "low",
     1418          "fte" : "0.6",
     1419          "salary" : "2000",
     1420          "work from home" : "0"
     1421        }
     1422      }, {
     1423        "issuevalues" : {
     1424          "lease car" : "yes",
     1425          "permanent contract" : "no",
     1426          "career development opportunities" : "low",
     1427          "fte" : "0.6",
     1428          "salary" : "3500",
     1429          "work from home" : "0"
     1430        }
     1431      }, {
     1432        "issuevalues" : {
     1433          "lease car" : "no",
     1434          "permanent contract" : "no",
     1435          "career development opportunities" : "high",
     1436          "fte" : "0.6",
     1437          "salary" : "3500",
     1438          "work from home" : "1"
     1439        }
     1440      }, {
     1441        "issuevalues" : {
     1442          "lease car" : "no",
     1443          "permanent contract" : "no",
     1444          "career development opportunities" : "low",
     1445          "fte" : "1.0",
     1446          "salary" : "2000",
     1447          "work from home" : "1"
     1448        }
     1449      }, {
     1450        "issuevalues" : {
     1451          "lease car" : "no",
     1452          "permanent contract" : "no",
     1453          "career development opportunities" : "high",
     1454          "fte" : "1.0",
     1455          "salary" : "3000",
     1456          "work from home" : "0"
     1457        }
     1458      }, {
     1459        "issuevalues" : {
     1460          "lease car" : "no",
     1461          "permanent contract" : "no",
     1462          "career development opportunities" : "low",
     1463          "fte" : "0.6",
     1464          "salary" : "2000",
     1465          "work from home" : "1"
     1466        }
     1467      }, {
     1468        "issuevalues" : {
     1469          "lease car" : "yes",
     1470          "permanent contract" : "no",
     1471          "career development opportunities" : "high",
     1472          "fte" : "1.0",
     1473          "salary" : "3000",
     1474          "work from home" : "1"
     1475        }
     1476      }, {
     1477        "issuevalues" : {
     1478          "lease car" : "yes",
     1479          "permanent contract" : "no",
     1480          "career development opportunities" : "high",
     1481          "fte" : "0.8",
     1482          "salary" : "3500",
     1483          "work from home" : "1"
     1484        }
     1485      }, {
     1486        "issuevalues" : {
     1487          "lease car" : "no",
     1488          "permanent contract" : "no",
     1489          "career development opportunities" : "medium",
     1490          "fte" : "0.8",
     1491          "salary" : "2000",
     1492          "work from home" : "1"
     1493        }
     1494      }, {
     1495        "issuevalues" : {
     1496          "lease car" : "yes",
     1497          "permanent contract" : "yes",
     1498          "career development opportunities" : "high",
     1499          "fte" : "0.6",
     1500          "salary" : "2000",
     1501          "work from home" : "1"
     1502        }
     1503      } ],
     1504      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     1505        "issuevalues" : {
     1506          "lease car" : "no",
     1507          "permanent contract" : "yes",
     1508          "career development opportunities" : "high",
     1509          "fte" : "1.0",
     1510          "salary" : "2000",
     1511          "work from home" : "2"
     1512        }
     1513      }, {
     1514        "issuevalues" : {
     1515          "lease car" : "no",
     1516          "permanent contract" : "no",
     1517          "career development opportunities" : "low",
     1518          "fte" : "0.6",
     1519          "salary" : "2000",
     1520          "work from home" : "0"
     1521        }
     1522      }, {
     1523        "issuevalues" : {
     1524          "lease car" : "yes",
     1525          "permanent contract" : "no",
     1526          "career development opportunities" : "low",
     1527          "fte" : "0.6",
     1528          "salary" : "3500",
     1529          "work from home" : "0"
     1530        }
     1531      }, {
     1532        "issuevalues" : {
     1533          "lease car" : "no",
     1534          "permanent contract" : "no",
     1535          "career development opportunities" : "high",
     1536          "fte" : "0.6",
     1537          "salary" : "3500",
     1538          "work from home" : "1"
     1539        }
     1540      }, {
     1541        "issuevalues" : {
     1542          "lease car" : "no",
     1543          "permanent contract" : "no",
     1544          "career development opportunities" : "low",
     1545          "fte" : "1.0",
     1546          "salary" : "2000",
     1547          "work from home" : "1"
     1548        }
     1549      }, {
     1550        "issuevalues" : {
     1551          "lease car" : "no",
     1552          "permanent contract" : "no",
     1553          "career development opportunities" : "high",
     1554          "fte" : "1.0",
     1555          "salary" : "3000",
     1556          "work from home" : "0"
     1557        }
     1558      }, {
     1559        "issuevalues" : {
     1560          "lease car" : "yes",
     1561          "permanent contract" : "yes",
     1562          "career development opportunities" : "medium",
     1563          "fte" : "0.8",
     1564          "salary" : "2500",
     1565          "work from home" : "1"
     1566        }
     1567      }, {
     1568        "issuevalues" : {
     1569          "lease car" : "no",
     1570          "permanent contract" : "no",
     1571          "career development opportunities" : "low",
     1572          "fte" : "0.6",
     1573          "salary" : "2000",
     1574          "work from home" : "1"
     1575        }
     1576      }, {
     1577        "issuevalues" : {
     1578          "lease car" : "yes",
     1579          "permanent contract" : "no",
     1580          "career development opportunities" : "high",
     1581          "fte" : "1.0",
     1582          "salary" : "3000",
     1583          "work from home" : "1"
     1584        }
     1585      }, {
     1586        "issuevalues" : {
     1587          "lease car" : "yes",
     1588          "permanent contract" : "no",
     1589          "career development opportunities" : "high",
     1590          "fte" : "0.8",
     1591          "salary" : "3500",
     1592          "work from home" : "1"
     1593        }
     1594      }, {
     1595        "issuevalues" : {
     1596          "lease car" : "no",
     1597          "permanent contract" : "no",
     1598          "career development opportunities" : "medium",
     1599          "fte" : "0.8",
     1600          "salary" : "2000",
     1601          "work from home" : "1"
     1602        }
     1603      }, {
     1604        "issuevalues" : {
     1605          "lease car" : "yes",
     1606          "permanent contract" : "yes",
     1607          "career development opportunities" : "high",
     1608          "fte" : "0.6",
     1609          "salary" : "2000",
     1610          "work from home" : "1"
     1611        }
     1612      } ],
     1613      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     1614        "issuevalues" : {
     1615          "lease car" : "no",
     1616          "permanent contract" : "yes",
     1617          "career development opportunities" : "high",
     1618          "fte" : "1.0",
     1619          "salary" : "2000",
     1620          "work from home" : "2"
     1621        }
     1622      }, {
     1623        "issuevalues" : {
     1624          "lease car" : "yes",
     1625          "permanent contract" : "no",
     1626          "career development opportunities" : "low",
     1627          "fte" : "0.6",
     1628          "salary" : "3500",
     1629          "work from home" : "0"
     1630        }
     1631      }, {
     1632        "issuevalues" : {
     1633          "lease car" : "no",
     1634          "permanent contract" : "no",
     1635          "career development opportunities" : "low",
     1636          "fte" : "1.0",
     1637          "salary" : "2000",
     1638          "work from home" : "1"
     1639        }
     1640      }, {
     1641        "issuevalues" : {
     1642          "lease car" : "yes",
     1643          "permanent contract" : "no",
     1644          "career development opportunities" : "medium",
     1645          "fte" : "1.0",
     1646          "salary" : "3500",
     1647          "work from home" : "1"
     1648        }
     1649      }, {
     1650        "issuevalues" : {
     1651          "lease car" : "no",
     1652          "permanent contract" : "no",
     1653          "career development opportunities" : "high",
     1654          "fte" : "1.0",
     1655          "salary" : "3000",
     1656          "work from home" : "0"
     1657        }
     1658      }, {
     1659        "issuevalues" : {
     1660          "lease car" : "no",
     1661          "permanent contract" : "no",
     1662          "career development opportunities" : "low",
     1663          "fte" : "0.6",
     1664          "salary" : "2000",
     1665          "work from home" : "1"
     1666        }
     1667      }, {
     1668        "issuevalues" : {
     1669          "lease car" : "yes",
     1670          "permanent contract" : "no",
     1671          "career development opportunities" : "high",
     1672          "fte" : "1.0",
     1673          "salary" : "3000",
     1674          "work from home" : "1"
     1675        }
     1676      }, {
     1677        "issuevalues" : {
     1678          "lease car" : "yes",
     1679          "permanent contract" : "no",
     1680          "career development opportunities" : "high",
     1681          "fte" : "0.8",
     1682          "salary" : "3500",
     1683          "work from home" : "1"
     1684        }
     1685      }, {
     1686        "issuevalues" : {
     1687          "lease car" : "no",
     1688          "permanent contract" : "no",
     1689          "career development opportunities" : "medium",
     1690          "fte" : "0.8",
     1691          "salary" : "2000",
     1692          "work from home" : "1"
     1693        }
     1694      }, {
     1695        "issuevalues" : {
     1696          "lease car" : "yes",
     1697          "permanent contract" : "yes",
     1698          "career development opportunities" : "high",
     1699          "fte" : "0.6",
     1700          "salary" : "2000",
     1701          "work from home" : "1"
     1702        }
     1703      }, {
     1704        "issuevalues" : {
     1705          "lease car" : "no",
     1706          "permanent contract" : "no",
     1707          "career development opportunities" : "low",
     1708          "fte" : "0.6",
     1709          "salary" : "2000",
     1710          "work from home" : "0"
     1711        }
     1712      }, {
     1713        "issuevalues" : {
     1714          "lease car" : "yes",
     1715          "permanent contract" : "no",
     1716          "career development opportunities" : "low",
     1717          "fte" : "0.8",
     1718          "salary" : "4000",
     1719          "work from home" : "2"
     1720        }
     1721      }, {
     1722        "issuevalues" : {
     1723          "lease car" : "no",
     1724          "permanent contract" : "no",
     1725          "career development opportunities" : "high",
     1726          "fte" : "0.6",
     1727          "salary" : "3500",
     1728          "work from home" : "1"
     1729        }
     1730      }, {
     1731        "issuevalues" : {
     1732          "lease car" : "yes",
     1733          "permanent contract" : "yes",
     1734          "career development opportunities" : "medium",
     1735          "fte" : "0.8",
     1736          "salary" : "2500",
     1737          "work from home" : "1"
     1738        }
     1739      }, {
     1740        "issuevalues" : {
     1741          "lease car" : "yes",
     1742          "permanent contract" : "yes",
     1743          "career development opportunities" : "medium",
     1744          "fte" : "0.8",
     1745          "salary" : "2500",
     1746          "work from home" : "2"
     1747        }
     1748      } ]
     1749    },
     1750    "reservationbid" : {
     1751      "issuevalues" : {
     1752        "lease car" : "no",
     1753        "permanent contract" : "yes",
     1754        "career development opportunities" : "medium",
     1755        "fte" : "0.8",
     1756        "salary" : "3500",
     1757        "work from home" : "1"
     1758      }
     1759    }
     1760  }
    10181761}
  • exampleparties/anac2019/winkyagent/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>winkyagent</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    6060                        <groupId>tudelft.utilities</groupId>
    6161                        <artifactId>utilities</artifactId>
    62                         <version>1.2.1</version>
     62                        <version>1.3.1</version>
    6363                </dependency>
    6464
  • exampleparties/anac2019/winkyagent/src/test/resources/jobs1partial20.json

    r52 r53  
    11{
    2         "DefaultPartialOrdering": {
    3                 "name": "jobs1-partial-20",
    4                 "domain": {
    5                         "name": "jobs",
    6                         "issuesValues": {
    7                                 "lease car": {
    8                                         "values": [
    9                                                 "yes",
    10                                                 "no"
    11                                         ]
    12                                 },
    13                                 "permanent contract": {
    14                                         "values": [
    15                                                 "yes",
    16                                                 "no"
    17                                         ]
    18                                 },
    19                                 "career development opportunities": {
    20                                         "values": [
    21                                                 "low",
    22                                                 "medium",
    23                                                 "high"
    24                                         ]
    25                                 },
    26                                 "fte": {
    27                                         "values": [
    28                                                 "0.6",
    29                                                 "0.8",
    30                                                 "1.0"
    31                                         ]
    32                                 },
    33                                 "salary": {
    34                                         "values": [
    35                                                 "2000",
    36                                                 "2500",
    37                                                 "3000",
    38                                                 "3500",
    39                                                 "4000"
    40                                         ]
    41                                 },
    42                                 "work from home": {
    43                                         "values": [
    44                                                 "0",
    45                                                 "1",
    46                                                 "2"
    47                                         ]
    48                                 }
    49                         }
    50                 },
    51                 "reservationBid": {
    52                         "issuevalues": {
    53                                 "lease car": "no",
    54                                 "permanent contract": "no",
    55                                 "career development opportunities": "medium",
    56                                 "fte": "0.8",
    57                                 "salary": "3000",
    58                                 "work from home": "0"
    59                         }
    60                 },
    61                 "bids": [
    62                         {
    63                                 "issuevalues": {
    64                                         "lease car": "no",
    65                                         "permanent contract": "no",
    66                                         "career development opportunities": "low",
    67                                         "fte": "1.0",
    68                                         "salary": "3000",
    69                                         "work from home": "1"
    70                                 }
    71                         },
    72                         {
    73                                 "issuevalues": {
    74                                         "lease car": "yes",
    75                                         "permanent contract": "no",
    76                                         "career development opportunities": "high",
    77                                         "fte": "0.6",
    78                                         "salary": "3500",
    79                                         "work from home": "0"
    80                                 }
    81                         },
    82                         {
    83                                 "issuevalues": {
    84                                         "lease car": "no",
    85                                         "permanent contract": "no",
    86                                         "career development opportunities": "high",
    87                                         "fte": "0.8",
    88                                         "salary": "3000",
    89                                         "work from home": "0"
    90                                 }
    91                         },
    92                         {
    93                                 "issuevalues": {
    94                                         "lease car": "yes",
    95                                         "permanent contract": "no",
    96                                         "career development opportunities": "low",
    97                                         "fte": "0.6",
    98                                         "salary": "3500",
    99                                         "work from home": "0"
    100                                 }
    101                         },
    102                         {
    103                                 "issuevalues": {
    104                                         "lease car": "no",
    105                                         "permanent contract": "yes",
    106                                         "career development opportunities": "low",
    107                                         "fte": "0.6",
    108                                         "salary": "3000",
    109                                         "work from home": "1"
    110                                 }
    111                         },
    112                         {
    113                                 "issuevalues": {
    114                                         "lease car": "yes",
    115                                         "permanent contract": "yes",
    116                                         "career development opportunities": "low",
    117                                         "fte": "1.0",
    118                                         "salary": "2000",
    119                                         "work from home": "2"
    120                                 }
    121                         },
    122                         {
    123                                 "issuevalues": {
    124                                         "lease car": "no",
    125                                         "permanent contract": "yes",
    126                                         "career development opportunities": "low",
    127                                         "fte": "0.8",
    128                                         "salary": "2500",
    129                                         "work from home": "1"
    130                                 }
    131                         },
    132                         {
    133                                 "issuevalues": {
    134                                         "lease car": "no",
    135                                         "permanent contract": "yes",
    136                                         "career development opportunities": "low",
    137                                         "fte": "0.6",
    138                                         "salary": "2000",
    139                                         "work from home": "2"
    140                                 }
    141                         },
    142                         {
    143                                 "issuevalues": {
    144                                         "lease car": "yes",
    145                                         "permanent contract": "no",
    146                                         "career development opportunities": "medium",
    147                                         "fte": "0.6",
    148                                         "salary": "3500",
    149                                         "work from home": "1"
    150                                 }
    151                         },
    152                         {
    153                                 "issuevalues": {
    154                                         "lease car": "yes",
    155                                         "permanent contract": "yes",
    156                                         "career development opportunities": "low",
    157                                         "fte": "0.6",
    158                                         "salary": "2000",
    159                                         "work from home": "2"
    160                                 }
    161                         },
    162                         {
    163                                 "issuevalues": {
    164                                         "lease car": "yes",
    165                                         "permanent contract": "yes",
    166                                         "career development opportunities": "medium",
    167                                         "fte": "0.6",
    168                                         "salary": "2000",
    169                                         "work from home": "0"
    170                                 }
    171                         },
    172                         {
    173                                 "issuevalues": {
    174                                         "lease car": "yes",
    175                                         "permanent contract": "yes",
    176                                         "career development opportunities": "medium",
    177                                         "fte": "0.8",
    178                                         "salary": "3500",
    179                                         "work from home": "2"
    180                                 }
    181                         },
    182                         {
    183                                 "issuevalues": {
    184                                         "lease car": "no",
    185                                         "permanent contract": "no",
    186                                         "career development opportunities": "low",
    187                                         "fte": "0.6",
    188                                         "salary": "2000",
    189                                         "work from home": "0"
    190                                 }
    191                         },
    192                         {
    193                                 "issuevalues": {
    194                                         "lease car": "no",
    195                                         "permanent contract": "no",
    196                                         "career development opportunities": "high",
    197                                         "fte": "1.0",
    198                                         "salary": "4000",
    199                                         "work from home": "2"
    200                                 }
    201                         },
    202                         {
    203                                 "issuevalues": {
    204                                         "lease car": "yes",
    205                                         "permanent contract": "yes",
    206                                         "career development opportunities": "low",
    207                                         "fte": "0.8",
    208                                         "salary": "4000",
    209                                         "work from home": "2"
    210                                 }
    211                         },
    212                         {
    213                                 "issuevalues": {
    214                                         "lease car": "yes",
    215                                         "permanent contract": "no",
    216                                         "career development opportunities": "medium",
    217                                         "fte": "1.0",
    218                                         "salary": "3500",
    219                                         "work from home": "2"
    220                                 }
    221                         },
    222                         {
    223                                 "issuevalues": {
    224                                         "lease car": "no",
    225                                         "permanent contract": "yes",
    226                                         "career development opportunities": "high",
    227                                         "fte": "0.8",
    228                                         "salary": "2000",
    229                                         "work from home": "1"
    230                                 }
    231                         },
    232                         {
    233                                 "issuevalues": {
    234                                         "lease car": "yes",
    235                                         "permanent contract": "yes",
    236                                         "career development opportunities": "low",
    237                                         "fte": "1.0",
    238                                         "salary": "2500",
    239                                         "work from home": "1"
    240                                 }
    241                         },
    242                         {
    243                                 "issuevalues": {
    244                                         "lease car": "yes",
    245                                         "permanent contract": "yes",
    246                                         "career development opportunities": "high",
    247                                         "fte": "1.0",
    248                                         "salary": "4000",
    249                                         "work from home": "2"
    250                                 }
    251                         },
    252                         {
    253                                 "issuevalues": {
    254                                         "lease car": "no",
    255                                         "permanent contract": "yes",
    256                                         "career development opportunities": "medium",
    257                                         "fte": "0.8",
    258                                         "salary": "2500",
    259                                         "work from home": "1"
    260                                 }
    261                         }
    262                 ],
    263                 "better": [
    264                         [
    265                                 0,
    266                                 12
    267                         ],
    268                         [
    269                                 0,
    270                                 2
    271                         ],
    272                         [
    273                                 0,
    274                                 3
    275                         ],
    276                         [
    277                                 0,
    278                                 7
    279                         ],
    280                         [
    281                                 0,
    282                                 10
    283                         ],
    284                         [
    285                                 1,
    286                                 0
    287                         ],
    288                         [
    289                                 1,
    290                                 12
    291                         ],
    292                         [
    293                                 1,
    294                                 2
    295                         ],
    296                         [
    297                                 1,
    298                                 3
    299                         ],
    300                         [
    301                                 1,
    302                                 4
    303                         ],
    304                         [
    305                                 1,
    306                                 7
    307                         ],
    308                         [
    309                                 1,
    310                                 10
    311                         ],
    312                         [
    313                                 2,
    314                                 12
    315                         ],
    316                         [
    317                                 3,
    318                                 12
    319                         ],
    320                         [
    321                                 3,
    322                                 2
    323                         ],
    324                         [
    325                                 3,
    326                                 7
    327                         ],
    328                         [
    329                                 4,
    330                                 12
    331                         ],
    332                         [
    333                                 4,
    334                                 2
    335                         ],
    336                         [
    337                                 4,
    338                                 3
    339                         ],
    340                         [
    341                                 4,
    342                                 7
    343                         ],
    344                         [
    345                                 4,
    346                                 10
    347                         ],
    348                         [
    349                                 5,
    350                                 0
    351                         ],
    352                         [
    353                                 5,
    354                                 1
    355                         ],
    356                         [
    357                                 5,
    358                                 2
    359                         ],
    360                         [
    361                                 5,
    362                                 3
    363                         ],
    364                         [
    365                                 5,
    366                                 4
    367                         ],
    368                         [
    369                                 5,
    370                                 6
    371                         ],
    372                         [
    373                                 5,
    374                                 7
    375                         ],
    376                         [
    377                                 5,
    378                                 8
    379                         ],
    380                         [
    381                                 5,
    382                                 9
    383                         ],
    384                         [
    385                                 5,
    386                                 10
    387                         ],
    388                         [
    389                                 5,
    390                                 12
    391                         ],
    392                         [
    393                                 5,
    394                                 16
    395                         ],
    396                         [
    397                                 5,
    398                                 19
    399                         ],
    400                         [
    401                                 6,
    402                                 0
    403                         ],
    404                         [
    405                                 6,
    406                                 1
    407                         ],
    408                         [
    409                                 6,
    410                                 12
    411                         ],
    412                         [
    413                                 6,
    414                                 2
    415                         ],
    416                         [
    417                                 6,
    418                                 3
    419                         ],
    420                         [
    421                                 6,
    422                                 4
    423                         ],
    424                         [
    425                                 6,
    426                                 16
    427                         ],
    428                         [
    429                                 6,
    430                                 7
    431                         ],
    432                         [
    433                                 6,
    434                                 8
    435                         ],
    436                         [
    437                                 6,
    438                                 9
    439                         ],
    440                         [
    441                                 6,
    442                                 10
    443                         ],
    444                         [
    445                                 7,
    446                                 12
    447                         ],
    448                         [
    449                                 7,
    450                                 2
    451                         ],
    452                         [
    453                                 8,
    454                                 0
    455                         ],
    456                         [
    457                                 8,
    458                                 1
    459                         ],
    460                         [
    461                                 8,
    462                                 12
    463                         ],
    464                         [
    465                                 8,
    466                                 2
    467                         ],
    468                         [
    469                                 8,
    470                                 3
    471                         ],
    472                         [
    473                                 8,
    474                                 4
    475                         ],
    476                         [
    477                                 8,
    478                                 7
    479                         ],
    480                         [
    481                                 8,
    482                                 9
    483                         ],
    484                         [
    485                                 8,
    486                                 10
    487                         ],
    488                         [
    489                                 9,
    490                                 0
    491                         ],
    492                         [
    493                                 9,
    494                                 1
    495                         ],
    496                         [
    497                                 9,
    498                                 12
    499                         ],
    500                         [
    501                                 9,
    502                                 2
    503                         ],
    504                         [
    505                                 9,
    506                                 3
    507                         ],
    508                         [
    509                                 9,
    510                                 4
    511                         ],
    512                         [
    513                                 9,
    514                                 7
    515                         ],
    516                         [
    517                                 9,
    518                                 10
    519                         ],
    520                         [
    521                                 10,
    522                                 12
    523                         ],
    524                         [
    525                                 10,
    526                                 2
    527                         ],
    528                         [
    529                                 10,
    530                                 7
    531                         ],
    532                         [
    533                                 11,
    534                                 0
    535                         ],
    536                         [
    537                                 11,
    538                                 1
    539                         ],
    540                         [
    541                                 11,
    542                                 2
    543                         ],
    544                         [
    545                                 11,
    546                                 3
    547                         ],
    548                         [
    549                                 11,
    550                                 5
    551                         ],
    552                         [
    553                                 11,
    554                                 4
    555                         ],
    556                         [
    557                                 11,
    558                                 6
    559                         ],
    560                         [
    561                                 11,
    562                                 7
    563                         ],
    564                         [
    565                                 11,
    566                                 8
    567                         ],
    568                         [
    569                                 11,
    570                                 9
    571                         ],
    572                         [
    573                                 11,
    574                                 10
    575                         ],
    576                         [
    577                                 11,
    578                                 12
    579                         ],
    580                         [
    581                                 11,
    582                                 13
    583                         ],
    584                         [
    585                                 11,
    586                                 15
    587                         ],
    588                         [
    589                                 11,
    590                                 16
    591                         ],
    592                         [
    593                                 11,
    594                                 17
    595                         ],
    596                         [
    597                                 11,
    598                                 19
    599                         ],
    600                         [
    601                                 13,
    602                                 0
    603                         ],
    604                         [
    605                                 13,
    606                                 1
    607                         ],
    608                         [
    609                                 13,
    610                                 2
    611                         ],
    612                         [
    613                                 13,
    614                                 3
    615                         ],
    616                         [
    617                                 13,
    618                                 5
    619                         ],
    620                         [
    621                                 13,
    622                                 4
    623                         ],
    624                         [
    625                                 13,
    626                                 6
    627                         ],
    628                         [
    629                                 13,
    630                                 7
    631                         ],
    632                         [
    633                                 13,
    634                                 8
    635                         ],
    636                         [
    637                                 13,
    638                                 9
    639                         ],
    640                         [
    641                                 13,
    642                                 10
    643                         ],
    644                         [
    645                                 13,
    646                                 12
    647                         ],
    648                         [
    649                                 13,
    650                                 15
    651                         ],
    652                         [
    653                                 13,
    654                                 16
    655                         ],
    656                         [
    657                                 13,
    658                                 17
    659                         ],
    660                         [
    661                                 13,
    662                                 19
    663                         ],
    664                         [
    665                                 14,
    666                                 0
    667                         ],
    668                         [
    669                                 14,
    670                                 1
    671                         ],
    672                         [
    673                                 14,
    674                                 2
    675                         ],
    676                         [
    677                                 14,
    678                                 3
    679                         ],
    680                         [
    681                                 14,
    682                                 5
    683                         ],
    684                         [
    685                                 14,
    686                                 4
    687                         ],
    688                         [
    689                                 14,
    690                                 6
    691                         ],
    692                         [
    693                                 14,
    694                                 7
    695                         ],
    696                         [
    697                                 14,
    698                                 8
    699                         ],
    700                         [
    701                                 14,
    702                                 9
    703                         ],
    704                         [
    705                                 14,
    706                                 10
    707                         ],
    708                         [
    709                                 14,
    710                                 11
    711                         ],
    712                         [
    713                                 14,
    714                                 12
    715                         ],
    716                         [
    717                                 14,
    718                                 13
    719                         ],
    720                         [
    721                                 14,
    722                                 15
    723                         ],
    724                         [
    725                                 14,
    726                                 16
    727                         ],
    728                         [
    729                                 14,
    730                                 17
    731                         ],
    732                         [
    733                                 14,
    734                                 19
    735                         ],
    736                         [
    737                                 15,
    738                                 0
    739                         ],
    740                         [
    741                                 15,
    742                                 1
    743                         ],
    744                         [
    745                                 15,
    746                                 2
    747                         ],
    748                         [
    749                                 15,
    750                                 3
    751                         ],
    752                         [
    753                                 15,
    754                                 5
    755                         ],
    756                         [
    757                                 15,
    758                                 4
    759                         ],
    760                         [
    761                                 15,
    762                                 6
    763                         ],
    764                         [
    765                                 15,
    766                                 7
    767                         ],
    768                         [
    769                                 15,
    770                                 8
    771                         ],
    772                         [
    773                                 15,
    774                                 9
    775                         ],
    776                         [
    777                                 15,
    778                                 10
    779                         ],
    780                         [
    781                                 15,
    782                                 12
    783                         ],
    784                         [
    785                                 15,
    786                                 16
    787                         ],
    788                         [
    789                                 15,
    790                                 17
    791                         ],
    792                         [
    793                                 15,
    794                                 19
    795                         ],
    796                         [
    797                                 16,
    798                                 0
    799                         ],
    800                         [
    801                                 16,
    802                                 1
    803                         ],
    804                         [
    805                                 16,
    806                                 12
    807                         ],
    808                         [
    809                                 16,
    810                                 2
    811                         ],
    812                         [
    813                                 16,
    814                                 3
    815                         ],
    816                         [
    817                                 16,
    818                                 4
    819                         ],
    820                         [
    821                                 16,
    822                                 7
    823                         ],
    824                         [
    825                                 16,
    826                                 8
    827                         ],
    828                         [
    829                                 16,
    830                                 9
    831                         ],
    832                         [
    833                                 16,
    834                                 10
    835                         ],
    836                         [
    837                                 17,
    838                                 0
    839                         ],
    840                         [
    841                                 17,
    842                                 1
    843                         ],
    844                         [
    845                                 17,
    846                                 2
    847                         ],
    848                         [
    849                                 17,
    850                                 3
    851                         ],
    852                         [
    853                                 17,
    854                                 5
    855                         ],
    856                         [
    857                                 17,
    858                                 4
    859                         ],
    860                         [
    861                                 17,
    862                                 6
    863                         ],
    864                         [
    865                                 17,
    866                                 7
    867                         ],
    868                         [
    869                                 17,
    870                                 8
    871                         ],
    872                         [
    873                                 17,
    874                                 9
    875                         ],
    876                         [
    877                                 17,
    878                                 10
    879                         ],
    880                         [
    881                                 17,
    882                                 12
    883                         ],
    884                         [
    885                                 17,
    886                                 16
    887                         ],
    888                         [
    889                                 17,
    890                                 19
    891                         ],
    892                         [
    893                                 18,
    894                                 0
    895                         ],
    896                         [
    897                                 18,
    898                                 1
    899                         ],
    900                         [
    901                                 18,
    902                                 2
    903                         ],
    904                         [
    905                                 18,
    906                                 3
    907                         ],
    908                         [
    909                                 18,
    910                                 5
    911                         ],
    912                         [
    913                                 18,
    914                                 4
    915                         ],
    916                         [
    917                                 18,
    918                                 6
    919                         ],
    920                         [
    921                                 18,
    922                                 7
    923                         ],
    924                         [
    925                                 18,
    926                                 8
    927                         ],
    928                         [
    929                                 18,
    930                                 9
    931                         ],
    932                         [
    933                                 18,
    934                                 10
    935                         ],
    936                         [
    937                                 18,
    938                                 11
    939                         ],
    940                         [
    941                                 18,
    942                                 12
    943                         ],
    944                         [
    945                                 18,
    946                                 13
    947                         ],
    948                         [
    949                                 18,
    950                                 14
    951                         ],
    952                         [
    953                                 18,
    954                                 15
    955                         ],
    956                         [
    957                                 18,
    958                                 16
    959                         ],
    960                         [
    961                                 18,
    962                                 17
    963                         ],
    964                         [
    965                                 18,
    966                                 19
    967                         ],
    968                         [
    969                                 19,
    970                                 0
    971                         ],
    972                         [
    973                                 19,
    974                                 1
    975                         ],
    976                         [
    977                                 19,
    978                                 12
    979                         ],
    980                         [
    981                                 19,
    982                                 2
    983                         ],
    984                         [
    985                                 19,
    986                                 3
    987                         ],
    988                         [
    989                                 19,
    990                                 4
    991                         ],
    992                         [
    993                                 19,
    994                                 6
    995                         ],
    996                         [
    997                                 19,
    998                                 16
    999                         ],
    1000                         [
    1001                                 19,
    1002                                 7
    1003                         ],
    1004                         [
    1005                                 19,
    1006                                 8
    1007                         ],
    1008                         [
    1009                                 19,
    1010                                 9
    1011                         ],
    1012                         [
    1013                                 19,
    1014                                 10
    1015                         ]
    1016                 ]
    1017         }
     2  "DefaultPartialOrdering" : {
     3    "name" : "jobs1-partial-20",
     4    "domain" : {
     5      "name" : "jobs",
     6      "issuesValues" : {
     7        "lease car" : {
     8          "values" : [ "yes", "no" ]
     9        },
     10        "permanent contract" : {
     11          "values" : [ "yes", "no" ]
     12        },
     13        "career development opportunities" : {
     14          "values" : [ "low", "medium", "high" ]
     15        },
     16        "fte" : {
     17          "values" : [ "0.6", "0.8", "1.0" ]
     18        },
     19        "salary" : {
     20          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
     21        },
     22        "work from home" : {
     23          "values" : [ "0", "1", "2" ]
     24        }
     25      }
     26    },
     27    "better" : {
     28      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
     29        "issuevalues" : {
     30          "lease car" : "no",
     31          "permanent contract" : "no",
     32          "career development opportunities" : "low",
     33          "fte" : "0.6",
     34          "salary" : "2000",
     35          "work from home" : "0"
     36        }
     37      }, {
     38        "issuevalues" : {
     39          "lease car" : "yes",
     40          "permanent contract" : "no",
     41          "career development opportunities" : "low",
     42          "fte" : "0.6",
     43          "salary" : "3500",
     44          "work from home" : "0"
     45        }
     46      }, {
     47        "issuevalues" : {
     48          "lease car" : "no",
     49          "permanent contract" : "no",
     50          "career development opportunities" : "high",
     51          "fte" : "0.6",
     52          "salary" : "3500",
     53          "work from home" : "1"
     54        }
     55      }, {
     56        "issuevalues" : {
     57          "lease car" : "no",
     58          "permanent contract" : "no",
     59          "career development opportunities" : "low",
     60          "fte" : "1.0",
     61          "salary" : "2000",
     62          "work from home" : "1"
     63        }
     64      }, {
     65        "issuevalues" : {
     66          "lease car" : "no",
     67          "permanent contract" : "no",
     68          "career development opportunities" : "high",
     69          "fte" : "1.0",
     70          "salary" : "3000",
     71          "work from home" : "0"
     72        }
     73      }, {
     74        "issuevalues" : {
     75          "lease car" : "yes",
     76          "permanent contract" : "yes",
     77          "career development opportunities" : "medium",
     78          "fte" : "0.8",
     79          "salary" : "2500",
     80          "work from home" : "1"
     81        }
     82      }, {
     83        "issuevalues" : {
     84          "lease car" : "no",
     85          "permanent contract" : "no",
     86          "career development opportunities" : "low",
     87          "fte" : "0.6",
     88          "salary" : "2000",
     89          "work from home" : "1"
     90        }
     91      }, {
     92        "issuevalues" : {
     93          "lease car" : "yes",
     94          "permanent contract" : "no",
     95          "career development opportunities" : "high",
     96          "fte" : "1.0",
     97          "salary" : "3000",
     98          "work from home" : "1"
     99        }
     100      }, {
     101        "issuevalues" : {
     102          "lease car" : "yes",
     103          "permanent contract" : "no",
     104          "career development opportunities" : "high",
     105          "fte" : "0.8",
     106          "salary" : "3500",
     107          "work from home" : "1"
     108        }
     109      }, {
     110        "issuevalues" : {
     111          "lease car" : "no",
     112          "permanent contract" : "no",
     113          "career development opportunities" : "medium",
     114          "fte" : "0.8",
     115          "salary" : "2000",
     116          "work from home" : "1"
     117        }
     118      }, {
     119        "issuevalues" : {
     120          "lease car" : "yes",
     121          "permanent contract" : "yes",
     122          "career development opportunities" : "high",
     123          "fte" : "0.6",
     124          "salary" : "2000",
     125          "work from home" : "1"
     126        }
     127      } ],
     128      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     129        "issuevalues" : {
     130          "lease car" : "no",
     131          "permanent contract" : "no",
     132          "career development opportunities" : "low",
     133          "fte" : "0.6",
     134          "salary" : "2000",
     135          "work from home" : "0"
     136        }
     137      }, {
     138        "issuevalues" : {
     139          "lease car" : "no",
     140          "permanent contract" : "no",
     141          "career development opportunities" : "low",
     142          "fte" : "1.0",
     143          "salary" : "2000",
     144          "work from home" : "1"
     145        }
     146      }, {
     147        "issuevalues" : {
     148          "lease car" : "no",
     149          "permanent contract" : "no",
     150          "career development opportunities" : "low",
     151          "fte" : "0.6",
     152          "salary" : "2000",
     153          "work from home" : "1"
     154        }
     155      }, {
     156        "issuevalues" : {
     157          "lease car" : "no",
     158          "permanent contract" : "no",
     159          "career development opportunities" : "medium",
     160          "fte" : "0.8",
     161          "salary" : "2000",
     162          "work from home" : "1"
     163        }
     164      } ],
     165      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     166        "issuevalues" : {
     167          "lease car" : "no",
     168          "permanent contract" : "no",
     169          "career development opportunities" : "low",
     170          "fte" : "0.6",
     171          "salary" : "2000",
     172          "work from home" : "0"
     173        }
     174      }, {
     175        "issuevalues" : {
     176          "lease car" : "no",
     177          "permanent contract" : "no",
     178          "career development opportunities" : "low",
     179          "fte" : "0.6",
     180          "salary" : "2000",
     181          "work from home" : "1"
     182        }
     183      }, {
     184        "issuevalues" : {
     185          "lease car" : "no",
     186          "permanent contract" : "no",
     187          "career development opportunities" : "medium",
     188          "fte" : "0.8",
     189          "salary" : "2000",
     190          "work from home" : "1"
     191        }
     192      } ],
     193      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     194        "issuevalues" : {
     195          "lease car" : "no",
     196          "permanent contract" : "yes",
     197          "career development opportunities" : "high",
     198          "fte" : "1.0",
     199          "salary" : "2000",
     200          "work from home" : "2"
     201        }
     202      }, {
     203        "issuevalues" : {
     204          "lease car" : "yes",
     205          "permanent contract" : "no",
     206          "career development opportunities" : "low",
     207          "fte" : "0.6",
     208          "salary" : "3500",
     209          "work from home" : "0"
     210        }
     211      }, {
     212        "issuevalues" : {
     213          "lease car" : "no",
     214          "permanent contract" : "no",
     215          "career development opportunities" : "low",
     216          "fte" : "1.0",
     217          "salary" : "2000",
     218          "work from home" : "1"
     219        }
     220      }, {
     221        "issuevalues" : {
     222          "lease car" : "no",
     223          "permanent contract" : "no",
     224          "career development opportunities" : "high",
     225          "fte" : "1.0",
     226          "salary" : "3000",
     227          "work from home" : "0"
     228        }
     229      }, {
     230        "issuevalues" : {
     231          "lease car" : "no",
     232          "permanent contract" : "no",
     233          "career development opportunities" : "low",
     234          "fte" : "0.6",
     235          "salary" : "2000",
     236          "work from home" : "1"
     237        }
     238      }, {
     239        "issuevalues" : {
     240          "lease car" : "yes",
     241          "permanent contract" : "no",
     242          "career development opportunities" : "high",
     243          "fte" : "1.0",
     244          "salary" : "3000",
     245          "work from home" : "1"
     246        }
     247      }, {
     248        "issuevalues" : {
     249          "lease car" : "yes",
     250          "permanent contract" : "no",
     251          "career development opportunities" : "high",
     252          "fte" : "0.8",
     253          "salary" : "3500",
     254          "work from home" : "1"
     255        }
     256      }, {
     257        "issuevalues" : {
     258          "lease car" : "no",
     259          "permanent contract" : "no",
     260          "career development opportunities" : "medium",
     261          "fte" : "0.8",
     262          "salary" : "2000",
     263          "work from home" : "1"
     264        }
     265      }, {
     266        "issuevalues" : {
     267          "lease car" : "yes",
     268          "permanent contract" : "yes",
     269          "career development opportunities" : "high",
     270          "fte" : "0.6",
     271          "salary" : "2000",
     272          "work from home" : "1"
     273        }
     274      }, {
     275        "issuevalues" : {
     276          "lease car" : "no",
     277          "permanent contract" : "no",
     278          "career development opportunities" : "low",
     279          "fte" : "0.6",
     280          "salary" : "2000",
     281          "work from home" : "0"
     282        }
     283      }, {
     284        "issuevalues" : {
     285          "lease car" : "yes",
     286          "permanent contract" : "no",
     287          "career development opportunities" : "low",
     288          "fte" : "0.8",
     289          "salary" : "4000",
     290          "work from home" : "2"
     291        }
     292      }, {
     293        "issuevalues" : {
     294          "lease car" : "no",
     295          "permanent contract" : "no",
     296          "career development opportunities" : "high",
     297          "fte" : "0.6",
     298          "salary" : "3500",
     299          "work from home" : "1"
     300        }
     301      }, {
     302        "issuevalues" : {
     303          "lease car" : "yes",
     304          "permanent contract" : "yes",
     305          "career development opportunities" : "medium",
     306          "fte" : "0.8",
     307          "salary" : "2500",
     308          "work from home" : "1"
     309        }
     310      }, {
     311        "issuevalues" : {
     312          "lease car" : "yes",
     313          "permanent contract" : "yes",
     314          "career development opportunities" : "medium",
     315          "fte" : "0.8",
     316          "salary" : "2500",
     317          "work from home" : "2"
     318        }
     319      } ],
     320      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
     321        "issuevalues" : {
     322          "lease car" : "no",
     323          "permanent contract" : "no",
     324          "career development opportunities" : "low",
     325          "fte" : "0.6",
     326          "salary" : "2000",
     327          "work from home" : "0"
     328        }
     329      }, {
     330        "issuevalues" : {
     331          "lease car" : "yes",
     332          "permanent contract" : "no",
     333          "career development opportunities" : "low",
     334          "fte" : "0.6",
     335          "salary" : "3500",
     336          "work from home" : "0"
     337        }
     338      }, {
     339        "issuevalues" : {
     340          "lease car" : "no",
     341          "permanent contract" : "no",
     342          "career development opportunities" : "high",
     343          "fte" : "0.6",
     344          "salary" : "3500",
     345          "work from home" : "1"
     346        }
     347      }, {
     348        "issuevalues" : {
     349          "lease car" : "no",
     350          "permanent contract" : "no",
     351          "career development opportunities" : "low",
     352          "fte" : "1.0",
     353          "salary" : "2000",
     354          "work from home" : "1"
     355        }
     356      }, {
     357        "issuevalues" : {
     358          "lease car" : "no",
     359          "permanent contract" : "no",
     360          "career development opportunities" : "low",
     361          "fte" : "0.6",
     362          "salary" : "2000",
     363          "work from home" : "1"
     364        }
     365      }, {
     366        "issuevalues" : {
     367          "lease car" : "no",
     368          "permanent contract" : "no",
     369          "career development opportunities" : "medium",
     370          "fte" : "0.8",
     371          "salary" : "2000",
     372          "work from home" : "1"
     373        }
     374      } ],
     375      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     376        "issuevalues" : {
     377          "lease car" : "no",
     378          "permanent contract" : "yes",
     379          "career development opportunities" : "high",
     380          "fte" : "1.0",
     381          "salary" : "2000",
     382          "work from home" : "2"
     383        }
     384      }, {
     385        "issuevalues" : {
     386          "lease car" : "yes",
     387          "permanent contract" : "no",
     388          "career development opportunities" : "low",
     389          "fte" : "0.6",
     390          "salary" : "3500",
     391          "work from home" : "0"
     392        }
     393      }, {
     394        "issuevalues" : {
     395          "lease car" : "no",
     396          "permanent contract" : "no",
     397          "career development opportunities" : "low",
     398          "fte" : "1.0",
     399          "salary" : "2000",
     400          "work from home" : "1"
     401        }
     402      }, {
     403        "issuevalues" : {
     404          "lease car" : "yes",
     405          "permanent contract" : "no",
     406          "career development opportunities" : "medium",
     407          "fte" : "1.0",
     408          "salary" : "3500",
     409          "work from home" : "1"
     410        }
     411      }, {
     412        "issuevalues" : {
     413          "lease car" : "no",
     414          "permanent contract" : "no",
     415          "career development opportunities" : "high",
     416          "fte" : "1.0",
     417          "salary" : "3000",
     418          "work from home" : "0"
     419        }
     420      }, {
     421        "issuevalues" : {
     422          "lease car" : "no",
     423          "permanent contract" : "no",
     424          "career development opportunities" : "low",
     425          "fte" : "0.6",
     426          "salary" : "2000",
     427          "work from home" : "1"
     428        }
     429      }, {
     430        "issuevalues" : {
     431          "lease car" : "yes",
     432          "permanent contract" : "no",
     433          "career development opportunities" : "high",
     434          "fte" : "1.0",
     435          "salary" : "3000",
     436          "work from home" : "1"
     437        }
     438      }, {
     439        "issuevalues" : {
     440          "lease car" : "yes",
     441          "permanent contract" : "no",
     442          "career development opportunities" : "high",
     443          "fte" : "0.8",
     444          "salary" : "3500",
     445          "work from home" : "1"
     446        }
     447      }, {
     448        "issuevalues" : {
     449          "lease car" : "no",
     450          "permanent contract" : "no",
     451          "career development opportunities" : "medium",
     452          "fte" : "0.8",
     453          "salary" : "2000",
     454          "work from home" : "1"
     455        }
     456      }, {
     457        "issuevalues" : {
     458          "lease car" : "yes",
     459          "permanent contract" : "yes",
     460          "career development opportunities" : "high",
     461          "fte" : "0.6",
     462          "salary" : "2000",
     463          "work from home" : "1"
     464        }
     465      }, {
     466        "issuevalues" : {
     467          "lease car" : "no",
     468          "permanent contract" : "no",
     469          "career development opportunities" : "low",
     470          "fte" : "0.6",
     471          "salary" : "2000",
     472          "work from home" : "0"
     473        }
     474      }, {
     475        "issuevalues" : {
     476          "lease car" : "yes",
     477          "permanent contract" : "no",
     478          "career development opportunities" : "low",
     479          "fte" : "0.8",
     480          "salary" : "4000",
     481          "work from home" : "2"
     482        }
     483      }, {
     484        "issuevalues" : {
     485          "lease car" : "no",
     486          "permanent contract" : "no",
     487          "career development opportunities" : "high",
     488          "fte" : "0.6",
     489          "salary" : "3500",
     490          "work from home" : "1"
     491        }
     492      }, {
     493        "issuevalues" : {
     494          "lease car" : "yes",
     495          "permanent contract" : "yes",
     496          "career development opportunities" : "medium",
     497          "fte" : "0.8",
     498          "salary" : "2500",
     499          "work from home" : "1"
     500        }
     501      }, {
     502        "issuevalues" : {
     503          "lease car" : "yes",
     504          "permanent contract" : "yes",
     505          "career development opportunities" : "medium",
     506          "fte" : "0.8",
     507          "salary" : "2500",
     508          "work from home" : "2"
     509        }
     510      }, {
     511        "issuevalues" : {
     512          "lease car" : "no",
     513          "permanent contract" : "yes",
     514          "career development opportunities" : "low",
     515          "fte" : "1.0",
     516          "salary" : "3500",
     517          "work from home" : "0"
     518        }
     519      } ],
     520      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     521        "issuevalues" : {
     522          "lease car" : "no",
     523          "permanent contract" : "no",
     524          "career development opportunities" : "low",
     525          "fte" : "0.6",
     526          "salary" : "2000",
     527          "work from home" : "0"
     528        }
     529      } ],
     530      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
     531        "issuevalues" : {
     532          "lease car" : "no",
     533          "permanent contract" : "no",
     534          "career development opportunities" : "low",
     535          "fte" : "0.6",
     536          "salary" : "2000",
     537          "work from home" : "0"
     538        }
     539      }, {
     540        "issuevalues" : {
     541          "lease car" : "yes",
     542          "permanent contract" : "no",
     543          "career development opportunities" : "low",
     544          "fte" : "0.6",
     545          "salary" : "3500",
     546          "work from home" : "0"
     547        }
     548      }, {
     549        "issuevalues" : {
     550          "lease car" : "no",
     551          "permanent contract" : "no",
     552          "career development opportunities" : "high",
     553          "fte" : "0.6",
     554          "salary" : "3500",
     555          "work from home" : "1"
     556        }
     557      }, {
     558        "issuevalues" : {
     559          "lease car" : "no",
     560          "permanent contract" : "no",
     561          "career development opportunities" : "low",
     562          "fte" : "1.0",
     563          "salary" : "2000",
     564          "work from home" : "1"
     565        }
     566      }, {
     567        "issuevalues" : {
     568          "lease car" : "no",
     569          "permanent contract" : "no",
     570          "career development opportunities" : "high",
     571          "fte" : "1.0",
     572          "salary" : "3000",
     573          "work from home" : "0"
     574        }
     575      }, {
     576        "issuevalues" : {
     577          "lease car" : "no",
     578          "permanent contract" : "no",
     579          "career development opportunities" : "low",
     580          "fte" : "0.6",
     581          "salary" : "2000",
     582          "work from home" : "1"
     583        }
     584      }, {
     585        "issuevalues" : {
     586          "lease car" : "no",
     587          "permanent contract" : "no",
     588          "career development opportunities" : "medium",
     589          "fte" : "0.8",
     590          "salary" : "2000",
     591          "work from home" : "1"
     592        }
     593      }, {
     594        "issuevalues" : {
     595          "lease car" : "yes",
     596          "permanent contract" : "yes",
     597          "career development opportunities" : "high",
     598          "fte" : "0.6",
     599          "salary" : "2000",
     600          "work from home" : "1"
     601        }
     602      } ],
     603      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     604        "issuevalues" : {
     605          "lease car" : "no",
     606          "permanent contract" : "no",
     607          "career development opportunities" : "low",
     608          "fte" : "0.6",
     609          "salary" : "2000",
     610          "work from home" : "0"
     611        }
     612      }, {
     613        "issuevalues" : {
     614          "lease car" : "yes",
     615          "permanent contract" : "no",
     616          "career development opportunities" : "low",
     617          "fte" : "0.6",
     618          "salary" : "3500",
     619          "work from home" : "0"
     620        }
     621      }, {
     622        "issuevalues" : {
     623          "lease car" : "no",
     624          "permanent contract" : "no",
     625          "career development opportunities" : "high",
     626          "fte" : "0.6",
     627          "salary" : "3500",
     628          "work from home" : "1"
     629        }
     630      }, {
     631        "issuevalues" : {
     632          "lease car" : "no",
     633          "permanent contract" : "no",
     634          "career development opportunities" : "low",
     635          "fte" : "1.0",
     636          "salary" : "2000",
     637          "work from home" : "1"
     638        }
     639      }, {
     640        "issuevalues" : {
     641          "lease car" : "no",
     642          "permanent contract" : "no",
     643          "career development opportunities" : "high",
     644          "fte" : "1.0",
     645          "salary" : "3000",
     646          "work from home" : "0"
     647        }
     648      }, {
     649        "issuevalues" : {
     650          "lease car" : "no",
     651          "permanent contract" : "no",
     652          "career development opportunities" : "low",
     653          "fte" : "0.6",
     654          "salary" : "2000",
     655          "work from home" : "1"
     656        }
     657      }, {
     658        "issuevalues" : {
     659          "lease car" : "yes",
     660          "permanent contract" : "no",
     661          "career development opportunities" : "high",
     662          "fte" : "1.0",
     663          "salary" : "3000",
     664          "work from home" : "1"
     665        }
     666      }, {
     667        "issuevalues" : {
     668          "lease car" : "no",
     669          "permanent contract" : "no",
     670          "career development opportunities" : "medium",
     671          "fte" : "0.8",
     672          "salary" : "2000",
     673          "work from home" : "1"
     674        }
     675      }, {
     676        "issuevalues" : {
     677          "lease car" : "yes",
     678          "permanent contract" : "yes",
     679          "career development opportunities" : "high",
     680          "fte" : "0.6",
     681          "salary" : "2000",
     682          "work from home" : "1"
     683        }
     684      } ],
     685      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     686        "issuevalues" : {
     687          "lease car" : "no",
     688          "permanent contract" : "no",
     689          "career development opportunities" : "low",
     690          "fte" : "0.6",
     691          "salary" : "2000",
     692          "work from home" : "0"
     693        }
     694      }, {
     695        "issuevalues" : {
     696          "lease car" : "no",
     697          "permanent contract" : "no",
     698          "career development opportunities" : "low",
     699          "fte" : "0.6",
     700          "salary" : "2000",
     701          "work from home" : "1"
     702        }
     703      } ],
     704      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     705        "issuevalues" : {
     706          "lease car" : "no",
     707          "permanent contract" : "no",
     708          "career development opportunities" : "low",
     709          "fte" : "0.6",
     710          "salary" : "2000",
     711          "work from home" : "0"
     712        }
     713      }, {
     714        "issuevalues" : {
     715          "lease car" : "yes",
     716          "permanent contract" : "no",
     717          "career development opportunities" : "low",
     718          "fte" : "0.6",
     719          "salary" : "3500",
     720          "work from home" : "0"
     721        }
     722      }, {
     723        "issuevalues" : {
     724          "lease car" : "no",
     725          "permanent contract" : "no",
     726          "career development opportunities" : "high",
     727          "fte" : "0.6",
     728          "salary" : "3500",
     729          "work from home" : "1"
     730        }
     731      }, {
     732        "issuevalues" : {
     733          "lease car" : "no",
     734          "permanent contract" : "no",
     735          "career development opportunities" : "low",
     736          "fte" : "1.0",
     737          "salary" : "2000",
     738          "work from home" : "1"
     739        }
     740      }, {
     741        "issuevalues" : {
     742          "lease car" : "no",
     743          "permanent contract" : "no",
     744          "career development opportunities" : "high",
     745          "fte" : "1.0",
     746          "salary" : "3000",
     747          "work from home" : "0"
     748        }
     749      }, {
     750        "issuevalues" : {
     751          "lease car" : "no",
     752          "permanent contract" : "no",
     753          "career development opportunities" : "low",
     754          "fte" : "0.6",
     755          "salary" : "2000",
     756          "work from home" : "1"
     757        }
     758      }, {
     759        "issuevalues" : {
     760          "lease car" : "no",
     761          "permanent contract" : "no",
     762          "career development opportunities" : "medium",
     763          "fte" : "0.8",
     764          "salary" : "2000",
     765          "work from home" : "1"
     766        }
     767      } ],
     768      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
     769      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     770        "issuevalues" : {
     771          "lease car" : "no",
     772          "permanent contract" : "yes",
     773          "career development opportunities" : "high",
     774          "fte" : "1.0",
     775          "salary" : "2000",
     776          "work from home" : "2"
     777        }
     778      }, {
     779        "issuevalues" : {
     780          "lease car" : "yes",
     781          "permanent contract" : "no",
     782          "career development opportunities" : "low",
     783          "fte" : "0.6",
     784          "salary" : "3500",
     785          "work from home" : "0"
     786        }
     787      }, {
     788        "issuevalues" : {
     789          "lease car" : "no",
     790          "permanent contract" : "no",
     791          "career development opportunities" : "low",
     792          "fte" : "1.0",
     793          "salary" : "2000",
     794          "work from home" : "1"
     795        }
     796      }, {
     797        "issuevalues" : {
     798          "lease car" : "yes",
     799          "permanent contract" : "no",
     800          "career development opportunities" : "medium",
     801          "fte" : "1.0",
     802          "salary" : "3500",
     803          "work from home" : "1"
     804        }
     805      }, {
     806        "issuevalues" : {
     807          "lease car" : "no",
     808          "permanent contract" : "no",
     809          "career development opportunities" : "high",
     810          "fte" : "1.0",
     811          "salary" : "3000",
     812          "work from home" : "0"
     813        }
     814      }, {
     815        "issuevalues" : {
     816          "lease car" : "yes",
     817          "permanent contract" : "yes",
     818          "career development opportunities" : "medium",
     819          "fte" : "1.0",
     820          "salary" : "2500",
     821          "work from home" : "2"
     822        }
     823      }, {
     824        "issuevalues" : {
     825          "lease car" : "no",
     826          "permanent contract" : "no",
     827          "career development opportunities" : "low",
     828          "fte" : "0.6",
     829          "salary" : "2000",
     830          "work from home" : "1"
     831        }
     832      }, {
     833        "issuevalues" : {
     834          "lease car" : "yes",
     835          "permanent contract" : "no",
     836          "career development opportunities" : "high",
     837          "fte" : "1.0",
     838          "salary" : "3000",
     839          "work from home" : "1"
     840        }
     841      }, {
     842        "issuevalues" : {
     843          "lease car" : "yes",
     844          "permanent contract" : "no",
     845          "career development opportunities" : "high",
     846          "fte" : "0.8",
     847          "salary" : "3500",
     848          "work from home" : "1"
     849        }
     850      }, {
     851        "issuevalues" : {
     852          "lease car" : "no",
     853          "permanent contract" : "no",
     854          "career development opportunities" : "medium",
     855          "fte" : "0.8",
     856          "salary" : "2000",
     857          "work from home" : "1"
     858        }
     859      }, {
     860        "issuevalues" : {
     861          "lease car" : "yes",
     862          "permanent contract" : "yes",
     863          "career development opportunities" : "high",
     864          "fte" : "0.6",
     865          "salary" : "2000",
     866          "work from home" : "1"
     867        }
     868      }, {
     869        "issuevalues" : {
     870          "lease car" : "no",
     871          "permanent contract" : "no",
     872          "career development opportunities" : "low",
     873          "fte" : "0.6",
     874          "salary" : "2000",
     875          "work from home" : "0"
     876        }
     877      }, {
     878        "issuevalues" : {
     879          "lease car" : "yes",
     880          "permanent contract" : "no",
     881          "career development opportunities" : "low",
     882          "fte" : "0.8",
     883          "salary" : "4000",
     884          "work from home" : "2"
     885        }
     886      }, {
     887        "issuevalues" : {
     888          "lease car" : "no",
     889          "permanent contract" : "no",
     890          "career development opportunities" : "high",
     891          "fte" : "0.6",
     892          "salary" : "3500",
     893          "work from home" : "1"
     894        }
     895      }, {
     896        "issuevalues" : {
     897          "lease car" : "yes",
     898          "permanent contract" : "no",
     899          "career development opportunities" : "high",
     900          "fte" : "1.0",
     901          "salary" : "4000",
     902          "work from home" : "2"
     903        }
     904      }, {
     905        "issuevalues" : {
     906          "lease car" : "yes",
     907          "permanent contract" : "yes",
     908          "career development opportunities" : "medium",
     909          "fte" : "0.8",
     910          "salary" : "2500",
     911          "work from home" : "1"
     912        }
     913      }, {
     914        "issuevalues" : {
     915          "lease car" : "yes",
     916          "permanent contract" : "yes",
     917          "career development opportunities" : "medium",
     918          "fte" : "0.8",
     919          "salary" : "2500",
     920          "work from home" : "2"
     921        }
     922      }, {
     923        "issuevalues" : {
     924          "lease car" : "no",
     925          "permanent contract" : "yes",
     926          "career development opportunities" : "low",
     927          "fte" : "1.0",
     928          "salary" : "3500",
     929          "work from home" : "0"
     930        }
     931      } ],
     932      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     933        "issuevalues" : {
     934          "lease car" : "no",
     935          "permanent contract" : "yes",
     936          "career development opportunities" : "high",
     937          "fte" : "1.0",
     938          "salary" : "2000",
     939          "work from home" : "2"
     940        }
     941      }, {
     942        "issuevalues" : {
     943          "lease car" : "no",
     944          "permanent contract" : "no",
     945          "career development opportunities" : "low",
     946          "fte" : "0.6",
     947          "salary" : "2000",
     948          "work from home" : "0"
     949        }
     950      }, {
     951        "issuevalues" : {
     952          "lease car" : "yes",
     953          "permanent contract" : "no",
     954          "career development opportunities" : "low",
     955          "fte" : "0.6",
     956          "salary" : "3500",
     957          "work from home" : "0"
     958        }
     959      }, {
     960        "issuevalues" : {
     961          "lease car" : "no",
     962          "permanent contract" : "no",
     963          "career development opportunities" : "high",
     964          "fte" : "0.6",
     965          "salary" : "3500",
     966          "work from home" : "1"
     967        }
     968      }, {
     969        "issuevalues" : {
     970          "lease car" : "no",
     971          "permanent contract" : "no",
     972          "career development opportunities" : "low",
     973          "fte" : "1.0",
     974          "salary" : "2000",
     975          "work from home" : "1"
     976        }
     977      }, {
     978        "issuevalues" : {
     979          "lease car" : "no",
     980          "permanent contract" : "no",
     981          "career development opportunities" : "high",
     982          "fte" : "1.0",
     983          "salary" : "3000",
     984          "work from home" : "0"
     985        }
     986      }, {
     987        "issuevalues" : {
     988          "lease car" : "yes",
     989          "permanent contract" : "yes",
     990          "career development opportunities" : "medium",
     991          "fte" : "0.8",
     992          "salary" : "2500",
     993          "work from home" : "1"
     994        }
     995      }, {
     996        "issuevalues" : {
     997          "lease car" : "no",
     998          "permanent contract" : "no",
     999          "career development opportunities" : "low",
     1000          "fte" : "0.6",
     1001          "salary" : "2000",
     1002          "work from home" : "1"
     1003        }
     1004      }, {
     1005        "issuevalues" : {
     1006          "lease car" : "yes",
     1007          "permanent contract" : "no",
     1008          "career development opportunities" : "high",
     1009          "fte" : "1.0",
     1010          "salary" : "3000",
     1011          "work from home" : "1"
     1012        }
     1013      }, {
     1014        "issuevalues" : {
     1015          "lease car" : "yes",
     1016          "permanent contract" : "no",
     1017          "career development opportunities" : "high",
     1018          "fte" : "0.8",
     1019          "salary" : "3500",
     1020          "work from home" : "1"
     1021        }
     1022      }, {
     1023        "issuevalues" : {
     1024          "lease car" : "no",
     1025          "permanent contract" : "no",
     1026          "career development opportunities" : "medium",
     1027          "fte" : "0.8",
     1028          "salary" : "2000",
     1029          "work from home" : "1"
     1030        }
     1031      }, {
     1032        "issuevalues" : {
     1033          "lease car" : "yes",
     1034          "permanent contract" : "yes",
     1035          "career development opportunities" : "high",
     1036          "fte" : "0.6",
     1037          "salary" : "2000",
     1038          "work from home" : "1"
     1039        }
     1040      } ],
     1041      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     1042        "issuevalues" : {
     1043          "lease car" : "no",
     1044          "permanent contract" : "no",
     1045          "career development opportunities" : "low",
     1046          "fte" : "0.6",
     1047          "salary" : "2000",
     1048          "work from home" : "0"
     1049        }
     1050      }, {
     1051        "issuevalues" : {
     1052          "lease car" : "yes",
     1053          "permanent contract" : "no",
     1054          "career development opportunities" : "low",
     1055          "fte" : "0.6",
     1056          "salary" : "3500",
     1057          "work from home" : "0"
     1058        }
     1059      }, {
     1060        "issuevalues" : {
     1061          "lease car" : "no",
     1062          "permanent contract" : "no",
     1063          "career development opportunities" : "low",
     1064          "fte" : "1.0",
     1065          "salary" : "2000",
     1066          "work from home" : "1"
     1067        }
     1068      }, {
     1069        "issuevalues" : {
     1070          "lease car" : "no",
     1071          "permanent contract" : "no",
     1072          "career development opportunities" : "low",
     1073          "fte" : "0.6",
     1074          "salary" : "2000",
     1075          "work from home" : "1"
     1076        }
     1077      }, {
     1078        "issuevalues" : {
     1079          "lease car" : "no",
     1080          "permanent contract" : "no",
     1081          "career development opportunities" : "medium",
     1082          "fte" : "0.8",
     1083          "salary" : "2000",
     1084          "work from home" : "1"
     1085        }
     1086      } ],
     1087      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1088        "issuevalues" : {
     1089          "lease car" : "no",
     1090          "permanent contract" : "yes",
     1091          "career development opportunities" : "high",
     1092          "fte" : "1.0",
     1093          "salary" : "2000",
     1094          "work from home" : "2"
     1095        }
     1096      }, {
     1097        "issuevalues" : {
     1098          "lease car" : "yes",
     1099          "permanent contract" : "no",
     1100          "career development opportunities" : "low",
     1101          "fte" : "0.6",
     1102          "salary" : "3500",
     1103          "work from home" : "0"
     1104        }
     1105      }, {
     1106        "issuevalues" : {
     1107          "lease car" : "no",
     1108          "permanent contract" : "no",
     1109          "career development opportunities" : "low",
     1110          "fte" : "1.0",
     1111          "salary" : "2000",
     1112          "work from home" : "1"
     1113        }
     1114      }, {
     1115        "issuevalues" : {
     1116          "lease car" : "yes",
     1117          "permanent contract" : "no",
     1118          "career development opportunities" : "medium",
     1119          "fte" : "1.0",
     1120          "salary" : "3500",
     1121          "work from home" : "1"
     1122        }
     1123      }, {
     1124        "issuevalues" : {
     1125          "lease car" : "no",
     1126          "permanent contract" : "no",
     1127          "career development opportunities" : "high",
     1128          "fte" : "1.0",
     1129          "salary" : "3000",
     1130          "work from home" : "0"
     1131        }
     1132      }, {
     1133        "issuevalues" : {
     1134          "lease car" : "yes",
     1135          "permanent contract" : "yes",
     1136          "career development opportunities" : "medium",
     1137          "fte" : "1.0",
     1138          "salary" : "2500",
     1139          "work from home" : "2"
     1140        }
     1141      }, {
     1142        "issuevalues" : {
     1143          "lease car" : "no",
     1144          "permanent contract" : "no",
     1145          "career development opportunities" : "low",
     1146          "fte" : "0.6",
     1147          "salary" : "2000",
     1148          "work from home" : "1"
     1149        }
     1150      }, {
     1151        "issuevalues" : {
     1152          "lease car" : "yes",
     1153          "permanent contract" : "no",
     1154          "career development opportunities" : "high",
     1155          "fte" : "1.0",
     1156          "salary" : "3000",
     1157          "work from home" : "1"
     1158        }
     1159      }, {
     1160        "issuevalues" : {
     1161          "lease car" : "yes",
     1162          "permanent contract" : "no",
     1163          "career development opportunities" : "high",
     1164          "fte" : "0.8",
     1165          "salary" : "3500",
     1166          "work from home" : "1"
     1167        }
     1168      }, {
     1169        "issuevalues" : {
     1170          "lease car" : "no",
     1171          "permanent contract" : "no",
     1172          "career development opportunities" : "medium",
     1173          "fte" : "0.8",
     1174          "salary" : "2000",
     1175          "work from home" : "1"
     1176        }
     1177      }, {
     1178        "issuevalues" : {
     1179          "lease car" : "yes",
     1180          "permanent contract" : "yes",
     1181          "career development opportunities" : "high",
     1182          "fte" : "0.6",
     1183          "salary" : "2000",
     1184          "work from home" : "1"
     1185        }
     1186      }, {
     1187        "issuevalues" : {
     1188          "lease car" : "no",
     1189          "permanent contract" : "no",
     1190          "career development opportunities" : "low",
     1191          "fte" : "0.6",
     1192          "salary" : "2000",
     1193          "work from home" : "0"
     1194        }
     1195      }, {
     1196        "issuevalues" : {
     1197          "lease car" : "yes",
     1198          "permanent contract" : "yes",
     1199          "career development opportunities" : "low",
     1200          "fte" : "0.8",
     1201          "salary" : "4000",
     1202          "work from home" : "2"
     1203        }
     1204      }, {
     1205        "issuevalues" : {
     1206          "lease car" : "yes",
     1207          "permanent contract" : "no",
     1208          "career development opportunities" : "low",
     1209          "fte" : "0.8",
     1210          "salary" : "4000",
     1211          "work from home" : "2"
     1212        }
     1213      }, {
     1214        "issuevalues" : {
     1215          "lease car" : "no",
     1216          "permanent contract" : "no",
     1217          "career development opportunities" : "high",
     1218          "fte" : "0.6",
     1219          "salary" : "3500",
     1220          "work from home" : "1"
     1221        }
     1222      }, {
     1223        "issuevalues" : {
     1224          "lease car" : "yes",
     1225          "permanent contract" : "no",
     1226          "career development opportunities" : "high",
     1227          "fte" : "1.0",
     1228          "salary" : "4000",
     1229          "work from home" : "2"
     1230        }
     1231      }, {
     1232        "issuevalues" : {
     1233          "lease car" : "yes",
     1234          "permanent contract" : "yes",
     1235          "career development opportunities" : "medium",
     1236          "fte" : "0.8",
     1237          "salary" : "2500",
     1238          "work from home" : "1"
     1239        }
     1240      }, {
     1241        "issuevalues" : {
     1242          "lease car" : "yes",
     1243          "permanent contract" : "yes",
     1244          "career development opportunities" : "medium",
     1245          "fte" : "0.8",
     1246          "salary" : "2500",
     1247          "work from home" : "2"
     1248        }
     1249      }, {
     1250        "issuevalues" : {
     1251          "lease car" : "no",
     1252          "permanent contract" : "yes",
     1253          "career development opportunities" : "low",
     1254          "fte" : "1.0",
     1255          "salary" : "3500",
     1256          "work from home" : "0"
     1257        }
     1258      } ],
     1259      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1260        "issuevalues" : {
     1261          "lease car" : "no",
     1262          "permanent contract" : "yes",
     1263          "career development opportunities" : "high",
     1264          "fte" : "1.0",
     1265          "salary" : "2000",
     1266          "work from home" : "2"
     1267        }
     1268      }, {
     1269        "issuevalues" : {
     1270          "lease car" : "yes",
     1271          "permanent contract" : "no",
     1272          "career development opportunities" : "low",
     1273          "fte" : "0.6",
     1274          "salary" : "3500",
     1275          "work from home" : "0"
     1276        }
     1277      }, {
     1278        "issuevalues" : {
     1279          "lease car" : "no",
     1280          "permanent contract" : "no",
     1281          "career development opportunities" : "low",
     1282          "fte" : "1.0",
     1283          "salary" : "2000",
     1284          "work from home" : "1"
     1285        }
     1286      }, {
     1287        "issuevalues" : {
     1288          "lease car" : "yes",
     1289          "permanent contract" : "no",
     1290          "career development opportunities" : "medium",
     1291          "fte" : "1.0",
     1292          "salary" : "3500",
     1293          "work from home" : "1"
     1294        }
     1295      }, {
     1296        "issuevalues" : {
     1297          "lease car" : "no",
     1298          "permanent contract" : "no",
     1299          "career development opportunities" : "high",
     1300          "fte" : "1.0",
     1301          "salary" : "3000",
     1302          "work from home" : "0"
     1303        }
     1304      }, {
     1305        "issuevalues" : {
     1306          "lease car" : "yes",
     1307          "permanent contract" : "yes",
     1308          "career development opportunities" : "medium",
     1309          "fte" : "1.0",
     1310          "salary" : "2500",
     1311          "work from home" : "2"
     1312        }
     1313      }, {
     1314        "issuevalues" : {
     1315          "lease car" : "no",
     1316          "permanent contract" : "no",
     1317          "career development opportunities" : "low",
     1318          "fte" : "0.6",
     1319          "salary" : "2000",
     1320          "work from home" : "1"
     1321        }
     1322      }, {
     1323        "issuevalues" : {
     1324          "lease car" : "yes",
     1325          "permanent contract" : "no",
     1326          "career development opportunities" : "high",
     1327          "fte" : "1.0",
     1328          "salary" : "3000",
     1329          "work from home" : "1"
     1330        }
     1331      }, {
     1332        "issuevalues" : {
     1333          "lease car" : "yes",
     1334          "permanent contract" : "no",
     1335          "career development opportunities" : "high",
     1336          "fte" : "0.8",
     1337          "salary" : "3500",
     1338          "work from home" : "1"
     1339        }
     1340      }, {
     1341        "issuevalues" : {
     1342          "lease car" : "no",
     1343          "permanent contract" : "no",
     1344          "career development opportunities" : "medium",
     1345          "fte" : "0.8",
     1346          "salary" : "2000",
     1347          "work from home" : "1"
     1348        }
     1349      }, {
     1350        "issuevalues" : {
     1351          "lease car" : "yes",
     1352          "permanent contract" : "yes",
     1353          "career development opportunities" : "high",
     1354          "fte" : "0.6",
     1355          "salary" : "2000",
     1356          "work from home" : "1"
     1357        }
     1358      }, {
     1359        "issuevalues" : {
     1360          "lease car" : "no",
     1361          "permanent contract" : "no",
     1362          "career development opportunities" : "low",
     1363          "fte" : "0.6",
     1364          "salary" : "2000",
     1365          "work from home" : "0"
     1366        }
     1367      }, {
     1368        "issuevalues" : {
     1369          "lease car" : "yes",
     1370          "permanent contract" : "no",
     1371          "career development opportunities" : "low",
     1372          "fte" : "0.8",
     1373          "salary" : "4000",
     1374          "work from home" : "2"
     1375        }
     1376      }, {
     1377        "issuevalues" : {
     1378          "lease car" : "no",
     1379          "permanent contract" : "no",
     1380          "career development opportunities" : "high",
     1381          "fte" : "0.6",
     1382          "salary" : "3500",
     1383          "work from home" : "1"
     1384        }
     1385      }, {
     1386        "issuevalues" : {
     1387          "lease car" : "yes",
     1388          "permanent contract" : "yes",
     1389          "career development opportunities" : "medium",
     1390          "fte" : "0.8",
     1391          "salary" : "2500",
     1392          "work from home" : "1"
     1393        }
     1394      }, {
     1395        "issuevalues" : {
     1396          "lease car" : "yes",
     1397          "permanent contract" : "yes",
     1398          "career development opportunities" : "medium",
     1399          "fte" : "0.8",
     1400          "salary" : "2500",
     1401          "work from home" : "2"
     1402        }
     1403      }, {
     1404        "issuevalues" : {
     1405          "lease car" : "no",
     1406          "permanent contract" : "yes",
     1407          "career development opportunities" : "low",
     1408          "fte" : "1.0",
     1409          "salary" : "3500",
     1410          "work from home" : "0"
     1411        }
     1412      } ],
     1413      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
     1414        "issuevalues" : {
     1415          "lease car" : "no",
     1416          "permanent contract" : "no",
     1417          "career development opportunities" : "low",
     1418          "fte" : "0.6",
     1419          "salary" : "2000",
     1420          "work from home" : "0"
     1421        }
     1422      }, {
     1423        "issuevalues" : {
     1424          "lease car" : "yes",
     1425          "permanent contract" : "no",
     1426          "career development opportunities" : "low",
     1427          "fte" : "0.6",
     1428          "salary" : "3500",
     1429          "work from home" : "0"
     1430        }
     1431      }, {
     1432        "issuevalues" : {
     1433          "lease car" : "no",
     1434          "permanent contract" : "no",
     1435          "career development opportunities" : "high",
     1436          "fte" : "0.6",
     1437          "salary" : "3500",
     1438          "work from home" : "1"
     1439        }
     1440      }, {
     1441        "issuevalues" : {
     1442          "lease car" : "no",
     1443          "permanent contract" : "no",
     1444          "career development opportunities" : "low",
     1445          "fte" : "1.0",
     1446          "salary" : "2000",
     1447          "work from home" : "1"
     1448        }
     1449      }, {
     1450        "issuevalues" : {
     1451          "lease car" : "no",
     1452          "permanent contract" : "no",
     1453          "career development opportunities" : "high",
     1454          "fte" : "1.0",
     1455          "salary" : "3000",
     1456          "work from home" : "0"
     1457        }
     1458      }, {
     1459        "issuevalues" : {
     1460          "lease car" : "no",
     1461          "permanent contract" : "no",
     1462          "career development opportunities" : "low",
     1463          "fte" : "0.6",
     1464          "salary" : "2000",
     1465          "work from home" : "1"
     1466        }
     1467      }, {
     1468        "issuevalues" : {
     1469          "lease car" : "yes",
     1470          "permanent contract" : "no",
     1471          "career development opportunities" : "high",
     1472          "fte" : "1.0",
     1473          "salary" : "3000",
     1474          "work from home" : "1"
     1475        }
     1476      }, {
     1477        "issuevalues" : {
     1478          "lease car" : "yes",
     1479          "permanent contract" : "no",
     1480          "career development opportunities" : "high",
     1481          "fte" : "0.8",
     1482          "salary" : "3500",
     1483          "work from home" : "1"
     1484        }
     1485      }, {
     1486        "issuevalues" : {
     1487          "lease car" : "no",
     1488          "permanent contract" : "no",
     1489          "career development opportunities" : "medium",
     1490          "fte" : "0.8",
     1491          "salary" : "2000",
     1492          "work from home" : "1"
     1493        }
     1494      }, {
     1495        "issuevalues" : {
     1496          "lease car" : "yes",
     1497          "permanent contract" : "yes",
     1498          "career development opportunities" : "high",
     1499          "fte" : "0.6",
     1500          "salary" : "2000",
     1501          "work from home" : "1"
     1502        }
     1503      } ],
     1504      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     1505        "issuevalues" : {
     1506          "lease car" : "no",
     1507          "permanent contract" : "yes",
     1508          "career development opportunities" : "high",
     1509          "fte" : "1.0",
     1510          "salary" : "2000",
     1511          "work from home" : "2"
     1512        }
     1513      }, {
     1514        "issuevalues" : {
     1515          "lease car" : "no",
     1516          "permanent contract" : "no",
     1517          "career development opportunities" : "low",
     1518          "fte" : "0.6",
     1519          "salary" : "2000",
     1520          "work from home" : "0"
     1521        }
     1522      }, {
     1523        "issuevalues" : {
     1524          "lease car" : "yes",
     1525          "permanent contract" : "no",
     1526          "career development opportunities" : "low",
     1527          "fte" : "0.6",
     1528          "salary" : "3500",
     1529          "work from home" : "0"
     1530        }
     1531      }, {
     1532        "issuevalues" : {
     1533          "lease car" : "no",
     1534          "permanent contract" : "no",
     1535          "career development opportunities" : "high",
     1536          "fte" : "0.6",
     1537          "salary" : "3500",
     1538          "work from home" : "1"
     1539        }
     1540      }, {
     1541        "issuevalues" : {
     1542          "lease car" : "no",
     1543          "permanent contract" : "no",
     1544          "career development opportunities" : "low",
     1545          "fte" : "1.0",
     1546          "salary" : "2000",
     1547          "work from home" : "1"
     1548        }
     1549      }, {
     1550        "issuevalues" : {
     1551          "lease car" : "no",
     1552          "permanent contract" : "no",
     1553          "career development opportunities" : "high",
     1554          "fte" : "1.0",
     1555          "salary" : "3000",
     1556          "work from home" : "0"
     1557        }
     1558      }, {
     1559        "issuevalues" : {
     1560          "lease car" : "yes",
     1561          "permanent contract" : "yes",
     1562          "career development opportunities" : "medium",
     1563          "fte" : "0.8",
     1564          "salary" : "2500",
     1565          "work from home" : "1"
     1566        }
     1567      }, {
     1568        "issuevalues" : {
     1569          "lease car" : "no",
     1570          "permanent contract" : "no",
     1571          "career development opportunities" : "low",
     1572          "fte" : "0.6",
     1573          "salary" : "2000",
     1574          "work from home" : "1"
     1575        }
     1576      }, {
     1577        "issuevalues" : {
     1578          "lease car" : "yes",
     1579          "permanent contract" : "no",
     1580          "career development opportunities" : "high",
     1581          "fte" : "1.0",
     1582          "salary" : "3000",
     1583          "work from home" : "1"
     1584        }
     1585      }, {
     1586        "issuevalues" : {
     1587          "lease car" : "yes",
     1588          "permanent contract" : "no",
     1589          "career development opportunities" : "high",
     1590          "fte" : "0.8",
     1591          "salary" : "3500",
     1592          "work from home" : "1"
     1593        }
     1594      }, {
     1595        "issuevalues" : {
     1596          "lease car" : "no",
     1597          "permanent contract" : "no",
     1598          "career development opportunities" : "medium",
     1599          "fte" : "0.8",
     1600          "salary" : "2000",
     1601          "work from home" : "1"
     1602        }
     1603      }, {
     1604        "issuevalues" : {
     1605          "lease car" : "yes",
     1606          "permanent contract" : "yes",
     1607          "career development opportunities" : "high",
     1608          "fte" : "0.6",
     1609          "salary" : "2000",
     1610          "work from home" : "1"
     1611        }
     1612      } ],
     1613      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     1614        "issuevalues" : {
     1615          "lease car" : "no",
     1616          "permanent contract" : "yes",
     1617          "career development opportunities" : "high",
     1618          "fte" : "1.0",
     1619          "salary" : "2000",
     1620          "work from home" : "2"
     1621        }
     1622      }, {
     1623        "issuevalues" : {
     1624          "lease car" : "yes",
     1625          "permanent contract" : "no",
     1626          "career development opportunities" : "low",
     1627          "fte" : "0.6",
     1628          "salary" : "3500",
     1629          "work from home" : "0"
     1630        }
     1631      }, {
     1632        "issuevalues" : {
     1633          "lease car" : "no",
     1634          "permanent contract" : "no",
     1635          "career development opportunities" : "low",
     1636          "fte" : "1.0",
     1637          "salary" : "2000",
     1638          "work from home" : "1"
     1639        }
     1640      }, {
     1641        "issuevalues" : {
     1642          "lease car" : "yes",
     1643          "permanent contract" : "no",
     1644          "career development opportunities" : "medium",
     1645          "fte" : "1.0",
     1646          "salary" : "3500",
     1647          "work from home" : "1"
     1648        }
     1649      }, {
     1650        "issuevalues" : {
     1651          "lease car" : "no",
     1652          "permanent contract" : "no",
     1653          "career development opportunities" : "high",
     1654          "fte" : "1.0",
     1655          "salary" : "3000",
     1656          "work from home" : "0"
     1657        }
     1658      }, {
     1659        "issuevalues" : {
     1660          "lease car" : "no",
     1661          "permanent contract" : "no",
     1662          "career development opportunities" : "low",
     1663          "fte" : "0.6",
     1664          "salary" : "2000",
     1665          "work from home" : "1"
     1666        }
     1667      }, {
     1668        "issuevalues" : {
     1669          "lease car" : "yes",
     1670          "permanent contract" : "no",
     1671          "career development opportunities" : "high",
     1672          "fte" : "1.0",
     1673          "salary" : "3000",
     1674          "work from home" : "1"
     1675        }
     1676      }, {
     1677        "issuevalues" : {
     1678          "lease car" : "yes",
     1679          "permanent contract" : "no",
     1680          "career development opportunities" : "high",
     1681          "fte" : "0.8",
     1682          "salary" : "3500",
     1683          "work from home" : "1"
     1684        }
     1685      }, {
     1686        "issuevalues" : {
     1687          "lease car" : "no",
     1688          "permanent contract" : "no",
     1689          "career development opportunities" : "medium",
     1690          "fte" : "0.8",
     1691          "salary" : "2000",
     1692          "work from home" : "1"
     1693        }
     1694      }, {
     1695        "issuevalues" : {
     1696          "lease car" : "yes",
     1697          "permanent contract" : "yes",
     1698          "career development opportunities" : "high",
     1699          "fte" : "0.6",
     1700          "salary" : "2000",
     1701          "work from home" : "1"
     1702        }
     1703      }, {
     1704        "issuevalues" : {
     1705          "lease car" : "no",
     1706          "permanent contract" : "no",
     1707          "career development opportunities" : "low",
     1708          "fte" : "0.6",
     1709          "salary" : "2000",
     1710          "work from home" : "0"
     1711        }
     1712      }, {
     1713        "issuevalues" : {
     1714          "lease car" : "yes",
     1715          "permanent contract" : "no",
     1716          "career development opportunities" : "low",
     1717          "fte" : "0.8",
     1718          "salary" : "4000",
     1719          "work from home" : "2"
     1720        }
     1721      }, {
     1722        "issuevalues" : {
     1723          "lease car" : "no",
     1724          "permanent contract" : "no",
     1725          "career development opportunities" : "high",
     1726          "fte" : "0.6",
     1727          "salary" : "3500",
     1728          "work from home" : "1"
     1729        }
     1730      }, {
     1731        "issuevalues" : {
     1732          "lease car" : "yes",
     1733          "permanent contract" : "yes",
     1734          "career development opportunities" : "medium",
     1735          "fte" : "0.8",
     1736          "salary" : "2500",
     1737          "work from home" : "1"
     1738        }
     1739      }, {
     1740        "issuevalues" : {
     1741          "lease car" : "yes",
     1742          "permanent contract" : "yes",
     1743          "career development opportunities" : "medium",
     1744          "fte" : "0.8",
     1745          "salary" : "2500",
     1746          "work from home" : "2"
     1747        }
     1748      } ]
     1749    },
     1750    "reservationbid" : {
     1751      "issuevalues" : {
     1752        "lease car" : "no",
     1753        "permanent contract" : "yes",
     1754        "career development opportunities" : "medium",
     1755        "fte" : "0.8",
     1756        "salary" : "3500",
     1757        "work from home" : "1"
     1758      }
     1759    }
     1760  }
    10181761}
  • exampleparties/boulware/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>boulware</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/comparebids/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>comparebids</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5353                        <groupId>tudelft.utilities</groupId>
    5454                        <artifactId>utilities</artifactId>
    55                         <version>1.2.1</version>
     55                        <version>1.3.1</version>
    5656                </dependency>
    5757
  • exampleparties/conceder/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>conceder</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/hardliner/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>hardliner</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/humangui/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>humangui</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/linear/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>linear</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/randomparty/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randomparty</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5555                        <groupId>tudelft.utilities</groupId>
    5656                        <artifactId>utilities</artifactId>
    57                         <version>1.2.1</version>
     57                        <version>1.3.1</version>
    5858                </dependency>
    5959
  • exampleparties/randompartypy/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randompyparty</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/simpleboa/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>simpleboaparty</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • exampleparties/simpleshaop/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>simpleshaop</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5353                        <groupId>tudelft.utilities</groupId>
    5454                        <artifactId>utilities</artifactId>
    55                         <version>1.2.1</version>
     55                        <version>1.3.1</version>
    5656                </dependency>
    5757
  • exampleparties/simpleshaop/src/test/resources/testprofile.json

    r52 r53  
    2929                        }
    3030                },
    31                 "bids": [
    32                         {
    33                                 "issuevalues": {
    34                                         "iss1": "1",
    35                                         "iss2": "1"
     31                "better": {
     32                        "{\"issuevalues\": { \"iss1\": \"1\",\"iss2\": \"1\"}}": [
     33                                {
     34                                        "issuevalues": {
     35                                                "iss1": "2",
     36                                                "iss2": "1"
     37                                        }
    3638                                }
    37                         },
    38                         {
    39                                 "issuevalues": {
    40                                         "iss1": "2",
    41                                         "iss2": "1"
     39                        ],
     40                        "{\"issuevalues\": {\"iss1\": \"2\",\"iss2\": \"1\"}}": [
     41                                {
     42                                        "issuevalues": {
     43                                                "iss1": "3",
     44                                                "iss2": "1"
     45                                        }
    4246                                }
    43                         },
    44                         {
    45                                 "issuevalues": {
    46                                         "iss1": "3",
    47                                         "iss2": "1"
     47                        ],
     48                        "{\"issuevalues\": {\"iss1\": \"3\",\"iss2\": \"1\"}}": [
     49                                {
     50                                        "issuevalues": {
     51                                                "iss1": "4",
     52                                                "iss2": "1"
     53                                        }
    4854                                }
    49                         },
    50                         {
    51                                 "issuevalues": {
    52                                         "iss1": "4",
    53                                         "iss2": "1"
     55                        ],
     56                        "{\"issuevalues\": {\"iss1\": \"4\",\"iss2\": \"1\"}}": [
     57                                {
     58                                        "issuevalues": {
     59                                                "iss1": "1",
     60                                                "iss2": "2"
     61                                        }
    5462                                }
    55                         },
    56                         {
    57                                 "issuevalues": {
    58                                         "iss1": "1",
    59                                         "iss2": "2"
     63                        ],
     64                        "{\"issuevalues\": {\"iss1\": \"1\",\"iss2\": \"2\"}}": [
     65                                {
     66                                        "issuevalues": {
     67                                                "iss1": "2",
     68                                                "iss2": "2"
     69                                        }
    6070                                }
    61                         },
    62                         {
    63                                 "issuevalues": {
    64                                         "iss1": "2",
    65                                         "iss2": "2"
     71                        ],
     72                        "{\"issuevalues\": {\"iss1\": \"2\",\"iss2\": \"2\"}}": [
     73                                {
     74                                        "issuevalues": {
     75                                                "iss1": "3",
     76                                                "iss2": "2"
     77                                        }
    6678                                }
    67                         },
    68                         {
    69                                 "issuevalues": {
    70                                         "iss1": "3",
    71                                         "iss2": "2"
     79                        ],
     80                        "{\"issuevalues\": { \"iss1\": \"4\",\"iss2\": \"2\"}}": [
     81                                {
     82                                        "issuevalues": {
     83                                                "iss1": "1",
     84                                                "iss2": "3"
     85                                        }
    7286                                }
    73                         },
    74                         {
    75                                 "issuevalues": {
    76                                         "iss1": "4",
    77                                         "iss2": "2"
     87                        ],
     88                        "{\"issuevalues\": {\"iss1\": \"1\", \"iss2\": \"3\"}}": [
     89                                {
     90                                        "issuevalues": {
     91                                                "iss1": "2",
     92                                                "iss2": "3"
     93                                        }
    7894                                }
    79                         },
    80                         {
    81                                 "issuevalues": {
    82                                         "iss1": "1",
    83                                         "iss2": "3"
     95                        ],
     96                        "{\"issuevalues\": { \"iss1\": \"2\",\"iss2\": \"3\" }}": [
     97                                {
     98                                        "issuevalues": {
     99                                                "iss1": "4",
     100                                                "iss2": "3"
     101                                        }
    84102                                }
    85                         },
    86                         {
    87                                 "issuevalues": {
    88                                         "iss1": "2",
    89                                         "iss2": "3"
     103                        ],
     104                        "{\"issuevalues\": {\"iss1\": \"4\", \"iss2\": \"3\"}}": [
     105                                {
     106                                        "issuevalues": {
     107                                                "iss1": "1",
     108                                                "iss2": "4"
     109                                        }
    90110                                }
    91                         },
    92                         {
    93                                 "issuevalues": {
    94                                         "iss1": "4",
    95                                         "iss2": "3"
     111                        ],
     112                        "{\"issuevalues\": { \"iss1\": \"1\",\"iss2\": \"4\" }}": [
     113                                {
     114                                        "issuevalues": {
     115                                                "iss1": "2",
     116                                                "iss2": "4"
     117                                        }
    96118                                }
    97                         },
    98                         {
    99                                 "issuevalues": {
    100                                         "iss1": "1",
    101                                         "iss2": "4"
     119                        ],
     120                        "{\"issuevalues\": { \"iss1\": \"2\", \"iss2\": \"4\"}}": [
     121                                {
     122                                        "issuevalues": {
     123                                                "iss1": "3",
     124                                                "iss2": "4"
     125                                        }
    102126                                }
    103                         },
    104                         {
    105                                 "issuevalues": {
    106                                         "iss1": "2",
    107                                         "iss2": "4"
     127                        ],
     128                        "{\"issuevalues\": { \"iss1\": \"3\",\"iss2\": \"4\"}}": [
     129                                {
     130                                        "issuevalues": {
     131                                                "iss1": "4",
     132                                                "iss2": "4"
     133                                        }
    108134                                }
    109                         },
    110                         {
    111                                 "issuevalues": {
    112                                         "iss1": "3",
    113                                         "iss2": "4"
    114                                 }
    115                         },
    116                         {
    117                                 "issuevalues": {
    118                                         "iss1": "4",
    119                                         "iss2": "4"
    120                                 }
    121                         }
    122                 ],
    123                 "better": [
    124                         [
    125                                 0,
    126                                 1
    127                         ],
    128                         [
    129                                 1,
    130                                 2
    131                         ],
    132                         [
    133                                 2,
    134                                 3
    135                         ],
    136                         [
    137                                 3,
    138                                 4
    139                         ],
    140                         [
    141                                 4,
    142                                 5
    143                         ],
    144                         [
    145                                 5,
    146                                 6
    147                         ],
    148                         [
    149                                 6,
    150                                 7
    151                         ],
    152                         [
    153                                 7,
    154                                 8
    155                         ],
    156                         [
    157                                 8,
    158                                 9
    159                         ],
    160                         [
    161                                 9,
    162                                 10
    163                         ],
    164                         [
    165                                 10,
    166                                 11
    167                         ],
    168                         [
    169                                 11,
    170                                 12
    171                         ],
    172                         [
    173                                 12,
    174                                 13
    175                         ],
    176                         [
    177                                 13,
    178                                 14
    179135                        ]
    180                 ]
     136                }
    181137        }
    182138}
  • exampleparties/timedependentparty/pom.xml

    r52 r53  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>timedependentparty</artifactId>
    8         <version>2.1.6</version>  <!-- equals the geniusweb version -->
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5353                        <groupId>tudelft.utilities</groupId>
    5454                        <artifactId>utilities</artifactId>
    55                         <version>1.2.1</version>
     55                        <version>1.3.1</version>
    5656                </dependency>
    5757
  • exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpace.java

    r52 r53  
    99import geniusweb.bidspace.Interval;
    1010import geniusweb.bidspace.IssueInfo;
     11import geniusweb.bidspace.SumOfGroupsLinAdditiveAdapter;
    1112import geniusweb.issuevalue.Bid;
    1213import geniusweb.issuevalue.Value;
    1314import geniusweb.profile.utilityspace.LinearAdditive;
     15import geniusweb.profile.utilityspace.SumOfGroupsUtilitySpace;
     16import geniusweb.profile.utilityspace.UtilitySpace;
    1417import tudelft.utilities.immutablelist.ImmutableList;
     18import tudelft.utilities.immutablelist.MapList;
    1519
    1620/**
    17  * Inner class for TimeDependentParty, made public for testing purposes. This
    18  * class may change in the future, use at your own risk.
     21 * Inner class for TimeDependentParty, Handles mechanisms for searching the bid
     22 * space, and using adapters to handle the nonlinear
     23 * {@link SumOfGroupsUtilitySpace}.
     24 *
     25 * This class is public for testing purposes. This class may change in the
     26 * future, use at your own risk.
    1927 *
    2028 */
    2129public class ExtendedUtilSpace {
    22         private LinearAdditive utilspace;
     30        private UtilitySpace utilspace;
     31        // linear approximation of utilspace (possibly utilspace itself)
     32        // thsi may have different utilityes issues and values than utilspace.
     33        private LinearAdditive linapprox;
     34
     35        // bidutils tolerance minUtil maxUtil all work on linapprox
     36        private BidsWithUtility bidutils;
    2337        /**
    2438         * The tolerance for a utility. Generally utilities can be this amount
     
    2640         */
    2741        private BigDecimal tolerance;
    28         private BidsWithUtility bidutils;
    2942        // min and max achievable utility
    3043        private BigDecimal minUtil;
    3144        private BigDecimal maxUtil;
    3245
    33         public ExtendedUtilSpace(LinearAdditive space) {
     46        public ExtendedUtilSpace(UtilitySpace space) {
    3447                this.utilspace = space;
    35                 bidutils = new BidsWithUtility(utilspace);
     48                if (space instanceof LinearAdditive)
     49                        linapprox = (LinearAdditive) space;
     50                else
     51                        linapprox = SumOfGroupsLinAdditiveAdapter
     52                                        .create((SumOfGroupsUtilitySpace) space);
     53                bidutils = new BidsWithUtility(linapprox);
    3654                computeMinMax();
    3755                this.tolerance = computeTolerance();
    38 
    3956        }
    4057
     
    5269                this.maxUtil = range.getMax();
    5370
    54                 Bid rvbid = utilspace.getReservationBid();
     71                Bid rvbid = linapprox.getReservationBid();
    5572                if (rvbid != null) {
    56                         BigDecimal rv = utilspace.getUtility(rvbid);
     73                        BigDecimal rv = linapprox.getUtility(rvbid);
    5774                        if (rv.compareTo(minUtil) > 0)
    5875                                minUtil = rv;
     
    6582         * best and one-but-best utility.
    6683         *
    67          * @return the minimum tolerance required, which is the minimum difference
    68          *         between the weighted utility of the best and one-but-best issue
    69          *         value.
     84         * @return the minimum tolerance required in the {@link #linapprox} space,
     85         *         which is the minimum difference between the weighted utility of
     86         *         the best and one-but-best issue value.
    7087         */
    7188        protected BigDecimal computeTolerance() {
     
    87104        }
    88105
     106        /**
     107         * @return the minimum utility in the {@link #linapprox} space
     108         */
    89109        public BigDecimal getMin() {
    90110                return minUtil;
    91111        }
    92112
     113        /**
     114         * @return the maximum utility in the {@link #linapprox} space
     115         */
    93116        public BigDecimal getMax() {
    94117                return maxUtil;
     
    96119
    97120        /**
    98          * @param utilityGoal the requested utility
     121         * @param utilityGoal the requested utility in the {@link #linapprox} space
    99122         * @return bids with utility inside [utilitygoal-{@link #tolerance},
    100          *         utilitygoal]
     123         *         utilitygoal], converted back to bids in the utilspace
    101124         */
    102125        public ImmutableList<Bid> getBids(BigDecimal utilityGoal) {
    103                 return bidutils.getBids(
     126                ImmutableList<Bid> bidslist = bidutils.getBids(
    104127                                new Interval(utilityGoal.subtract(tolerance), utilityGoal));
     128                return new MapList<>((Bid b) -> realBid(b), bidslist);
     129        }
     130
     131        /**
     132         * @param b a bid in the linapprox space
     133         * @return a bid in the original space
     134         */
     135        private Bid realBid(Bid b) {
     136                if (linapprox instanceof SumOfGroupsLinAdditiveAdapter)
     137                        return ((SumOfGroupsLinAdditiveAdapter) linapprox).toGroupBid(b);
     138                return b;
    105139        }
    106140
  • exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java

    r52 r53  
    7474 * </table>
    7575 * <p>
    76  * TimeDependentParty requires a {@link UtilitySpace}
     76 * TimeDependentParty requires a {@link LinearAdditive} utilityspace.
    7777 */
    7878public class TimeDependentParty extends DefaultParty {
    7979
    8080        private ProfileInterface profileint = null;
    81         private LinearAdditive utilspace = null; // last received space
     81        private UtilitySpace utilspace = null; // last received space
    8282        private PartyId me;
    8383        private Progress progress;
     
    238238        }
    239239
    240         private LinearAdditive updateUtilSpace() throws IOException {
     240        private UtilitySpace updateUtilSpace() throws IOException {
    241241                Profile newutilspace = profileint.getProfile();
    242242                if (!newutilspace.equals(utilspace)) {
    243                         utilspace = (LinearAdditive) newutilspace;
     243                        utilspace = (UtilitySpace) newutilspace;
    244244                        extendedspace = new ExtendedUtilSpace(utilspace);
    245245                }
  • exampleparties/timedependentparty/src/test/java/geniusweb/exampleparties/timedependentparty/ExtendedUtilSpaceTest.java

    r52 r53  
    11package geniusweb.exampleparties.timedependentparty;
    22
    3 import static org.junit.Assert.assertTrue;
     3import static org.junit.Assert.assertEquals;
    44
    55import java.io.IOException;
    6 import java.math.BigDecimal;
    76import java.nio.file.Files;
    87import java.nio.file.Paths;
     
    1918
    2019import geniusweb.profile.Profile;
    21 import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace;
     20import geniusweb.profile.utilityspace.UtilitySpace;
    2221
    2322@RunWith(Parameterized.class)
    2423public class ExtendedUtilSpaceTest {
    2524        private final static ObjectMapper jackson = new ObjectMapper();
    26         private final static BigDecimal SMALL = new BigDecimal("0.0001");
     25        private final static double SMALL = 0.0001;
    2726
    2827        @Parameters
     
    3130                                { "src/test/resources/jobs/jobs1.json", 0.02 },
    3231                                { "src/test/resources/7issues/7issues1.json", 0.0055 },
    33                                 { "src/test/resources/9issues/9issues1.json", 0.0013 } });
     32                                { "src/test/resources/9issues/9issues1.json", 0.0013 },
     33                                // tolerance in computerbuy is quite small because approximation
     34                                // scales the space
     35                                { "src/test/resources/computer/computerbuy.json", 0.0016 } });
    3436        }
    3537
    3638        private String filename;
    37         private BigDecimal expectedTolerance;
     39        private double expectedTolerance;
    3840        private ExtendedUtilSpace space;
    3941
    4042        public ExtendedUtilSpaceTest(String filename, double expectedTolerance) {
    4143                this.filename = filename;
    42                 this.expectedTolerance = BigDecimal.valueOf(expectedTolerance);
     44                this.expectedTolerance = expectedTolerance;
    4345        }
    4446
     
    4648        public void before() throws IOException {
    4749                String file = new String(Files.readAllBytes(Paths.get(filename)));
    48                 LinearAdditiveUtilitySpace profile = (LinearAdditiveUtilitySpace) jackson
    49                                 .readValue(file, Profile.class);
     50                UtilitySpace profile = (UtilitySpace) jackson.readValue(file,
     51                                Profile.class);
    5052                space = new ExtendedUtilSpace(profile);
    5153        }
     
    5860        @Test
    5961        public void testTolerance() {
    60                 assertTrue(space.computeTolerance().subtract(expectedTolerance).abs()
    61                                 .compareTo(SMALL) < 0);
     62                assertEquals(expectedTolerance, space.computeTolerance().doubleValue(),
     63                                SMALL);
    6264        }
    6365}
  • ip/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>ip</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • issuevalue/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>issuevalue</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    9393                        <groupId>tudelft.utilities</groupId>
    9494                        <artifactId>utilities</artifactId>
    95                         <version>1.2.1</version>
     95                        <version>1.3.1</version>
    9696                </dependency>
    9797
  • logconverter/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>logconverter</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • opponentmodel/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>opponentmodel</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • party/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>party</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5252                        <groupId>tudelft.utilities</groupId>
    5353                        <artifactId>utilities</artifactId>
    54                         <version>1.2.1</version>
     54                        <version>1.3.1</version>
    5555                </dependency>
    5656                <dependency>
  • profile/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profile</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    4242                        <groupId>tudelft.utilities</groupId>
    4343                        <artifactId>utilities</artifactId>
    44                         <version>1.2.1</version>
     44                        <version>1.3.1</version>
    4545                </dependency>
    4646
  • profile/src/main/java/geniusweb/profile/DefaultPartialOrdering.java

    r52 r53  
    11package geniusweb.profile;
    22
     3import java.io.IOException;
    34import java.util.ArrayList;
    45import java.util.Arrays;
    5 import java.util.HashMap;
    66import java.util.HashSet;
    77import java.util.LinkedList;
     
    1010import java.util.Set;
    1111
     12import com.fasterxml.jackson.annotation.JsonAutoDetect;
     13import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
    1214import com.fasterxml.jackson.annotation.JsonCreator;
    13 import com.fasterxml.jackson.annotation.JsonGetter;
    1415import com.fasterxml.jackson.annotation.JsonProperty;
     16import com.fasterxml.jackson.core.JsonGenerator;
     17import com.fasterxml.jackson.databind.DeserializationContext;
     18import com.fasterxml.jackson.databind.JsonSerializer;
     19import com.fasterxml.jackson.databind.KeyDeserializer;
     20import com.fasterxml.jackson.databind.ObjectMapper;
     21import com.fasterxml.jackson.databind.SerializerProvider;
     22import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
     23import com.fasterxml.jackson.databind.annotation.JsonSerialize;
    1524
    1625import geniusweb.issuevalue.Bid;
    1726import geniusweb.issuevalue.Domain;
     27
     28/**
     29 * Strange that we need to do this. Bid is completely standard. The complication
     30 * that this solves is that the keys are places as STRING in the json code
     31 * because json allows only strings as key.
     32 */
     33@SuppressWarnings("serial")
     34class BidDeserializer extends KeyDeserializer {
     35        private ObjectMapper jackson = new ObjectMapper();
     36
     37        @Override
     38        public Bid deserializeKey(String key, DeserializationContext ctxt)
     39                        throws IOException {
     40                return jackson.readValue(key, Bid.class);
     41        }
     42
     43}
     44
     45/**
     46 * Serializes a Bid to string. Unfortunately by default jackson uses
     47 * key.toString() for serializing (rather than
     48 * {@link ObjectMapper#writeValueAsString(Object)}).
     49 *
     50 */
     51class BidSerializer extends JsonSerializer<Bid> {
     52        private ObjectMapper jackson = new ObjectMapper();
     53
     54        @Override
     55        public void serialize(Bid bid, JsonGenerator gen,
     56                        SerializerProvider serializers) throws IOException {
     57                gen.writeFieldName(jackson.writeValueAsString(bid));
     58        }
     59
     60}
    1861
    1962/**
     
    2669 * limited anyway.
    2770 */
     71@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE)
    2872public class DefaultPartialOrdering extends DefaultProfile
    2973                implements PartialOrdering {
     
    3377         * other bid.
    3478         */
    35         private final Map<Bid, Set<Bid>> isBetter;
     79        @JsonDeserialize(keyUsing = BidDeserializer.class)
     80        @JsonSerialize(keyUsing = BidSerializer.class)
     81        private final Map<Bid, Set<Bid>> better;
    3682
    3783        /**
    38          *
    39          * @param name           name of the profile
    40          * @param domain         the {@link Domain}
    41          * @param reservationbid the reservation bid, this is the minimum acceptable
    42          *                       bid
    43          * @param bids           a list of bids that this ordering contains
    44          *                       comparisons for
    45          * @param isbetterList   a list of tuples [bid1index, bid2index]. It
    46          *                       indicates that bids[bid1index] isbetterthan
    47          *                       bids[bid2index].
     84         * @param name           the name for the profile
     85         * @param domain         the {@link Domain} description
     86         * @param reservationbid the reservation {@link Bid}
     87         * @param better         a map with keys = a better bid and value=a less
     88         *                       good bid.
    4889         */
    4990        @JsonCreator
     
    5192                        @JsonProperty("domain") Domain domain,
    5293                        @JsonProperty("reservationBid") Bid reservationbid,
    53                         @JsonProperty("bids") List<Bid> bids,
    54                         @JsonProperty("better") List<List<Integer>> isbetterList) {
    55                 this(name, domain, reservationbid, makeBidMap(bids, isbetterList));
    56         }
    57 
    58         /**
    59          * @param name           the name for the profile
    60          * @param domain         the {@link Domain} description
    61          * @param reservationbid the reservation {@link Bid}
    62          * @param isBetterMap    a map with keys = a better bid and value=a less
    63          *                       good bid.
    64          */
    65         public DefaultPartialOrdering(String name, Domain domain,
    66                         Bid reservationbid, Map<Bid, Set<Bid>> isBetterMap) {
     94                        @JsonProperty("better") Map<Bid, Set<Bid>> better) {
    6795                super(name, domain, reservationbid);
    68                 this.isBetter = isBetterMap;
     96                this.better = better;
    6997        }
    7098
    7199        @Override
    72100        public boolean isPreferredOrEqual(Bid bid1, Bid bid2) {
    73                 if (!isBetter.containsKey(bid1))
     101                if (!better.containsKey(bid1))
    74102                        return false;
    75                 return isBetter.get(bid1).contains(bid2);
     103                return better.get(bid1).contains(bid2);
    76104        }
    77105
     
    81109         *         or as worse than another bid
    82110         */
    83         @JsonGetter
    84111        public List<Bid> getBids() {
    85112                // FIXME the iteration order may not be guaranteed!
    86113                Set<Bid> bids = new HashSet<>();
    87                 for (Bid bid : isBetter.keySet()) {
     114                for (Bid bid : better.keySet()) {
    88115                        bids.add(bid);
    89                         bids.addAll(isBetter.get(bid));
     116                        bids.addAll(better.get(bid));
    90117                }
    91118                return new ArrayList<Bid>(bids);
    92119        }
    93120
    94         @JsonGetter
    95121        /**
    96122         *
     
    103129
    104130                for (Bid bid : bidslist) {
    105                         if (isBetter.containsKey(bid)) {
    106                                 for (Bid worsebid : isBetter.get(bid)) {
     131                        if (better.containsKey(bid)) {
     132                                for (Bid worsebid : better.get(bid)) {
    107133                                        betterlist.add(Arrays.asList(bidslist.indexOf(bid),
    108134                                                        bidslist.indexOf(worsebid)));
     
    116142        @Override
    117143        public String toString() {
    118                 return "DefaultPartialOrdering[" + getValuesString() + "," + isBetter
     144                return "DefaultPartialOrdering[" + getValuesString() + "," + better
    119145                                + "]";
    120         }
    121 
    122         private static Map<Bid, Set<Bid>> makeBidMap(List<Bid> bids,
    123                         List<List<Integer>> isBetterList) {
    124                 Map<Bid, Set<Bid>> betterMap = new HashMap<>();
    125 
    126                 for (List<Integer> tuple : isBetterList) {
    127                         if (tuple.size() != 2) {
    128                                 throw new IllegalArgumentException("Expected tuple but found "
    129                                                 + tuple + "in " + isBetterList);
    130                         }
    131                         Bid betterbid = bids.get(tuple.get(0));
    132                         Set<Bid> map = betterMap.get(betterbid);
    133                         if (map == null) {
    134                                 map = new HashSet<>();
    135                                 betterMap.put(betterbid, map);
    136                         }
    137                         map.add(bids.get(tuple.get(1)));
    138                 }
    139 
    140                 return betterMap;
    141146        }
    142147
     
    145150                final int prime = 31;
    146151                int result = super.hashCode();
    147                 result = prime * result
    148                                 + ((isBetter == null) ? 0 : isBetter.hashCode());
     152                result = prime * result + ((better == null) ? 0 : better.hashCode());
    149153                return result;
    150154        }
     
    159163                        return false;
    160164                DefaultPartialOrdering other = (DefaultPartialOrdering) obj;
    161                 if (isBetter == null) {
    162                         if (other.isBetter != null)
     165                if (better == null) {
     166                        if (other.better != null)
    163167                                return false;
    164                 } else if (!isBetter.equals(other.isBetter))
     168                } else if (!better.equals(other.better))
    165169                        return false;
    166170                return true;
  • profile/src/main/java/geniusweb/profile/utilityspace/LinearAdditiveUtilitySpace.java

    r52 r53  
    4949         * @param domain  the {@link Domain} in which this profile is defined.
    5050         * @param name    the name of this profile. Must be simple name (a-Z, 0-9)
    51          * @param utils   a map with key: issue names (String) and value: the values
     51         * @param issueUtilities   a map with key: issue names (String) and value: the values
    5252         *                for that issue. There MUST NOT be a null issue. All values
    5353         *                MUST NOT be null.
    54          * @param weights the weight of each issue in the computation of the
     54         * @param issueWeights the weight of each issue in the computation of the
    5555         *                weighted sum. The issues must be the same as those in the
    5656         *                utils map. All weights MUST NOT be null. The weights MUST
    5757         *                sum to 1.
    58          * @param resBid  the reservation bid. Only bids that are
     58         * @param reservationBid  the reservation bid. Only bids that are
    5959         *                {@link #isPreferredOrEqual(Bid, Bid)} should be accepted.
    6060         *                Can be null, meaning that there is no reservation bid and
     
    6666        public LinearAdditiveUtilitySpace(@JsonProperty("domain") Domain domain,
    6767                        @JsonProperty("name") String name,
    68                         @JsonProperty("issueUtilities") Map<String, ValueSetUtilities> utils,
    69                         @JsonProperty("issueWeights") Map<String, BigDecimal> weights,
    70                         @JsonProperty("reservationBid") Bid resBid) {
    71                 this.domain = domain;
    72                 this.name = name;
    73                 this.reservationBid = resBid;
    74                 this.issueUtilities.putAll(utils);
    75                 this.issueWeights.putAll(weights);
     68                        @JsonProperty("issueUtilities") Map<String, ValueSetUtilities> issueUtilities,
     69                        @JsonProperty("issueWeights") Map<String, BigDecimal> issueWeights,
     70                        @JsonProperty("reservationBid") Bid reservationBid) {
    7671
    7772                if (domain == null) {
    7873                        throw new NullPointerException("domain=null");
    7974                }
    80                 if (utils == null) {
     75                if (issueUtilities == null) {
    8176                        throw new NullPointerException("utils=null");
    8277                }
    83                 if (weights == null) {
     78                if (issueWeights == null) {
    8479                        throw new NullPointerException("weights=null");
    8580                }
    86                 if (utils.values().contains(null)) {
     81                if (issueUtilities.values().contains(null)) {
    8782                        throw new NullPointerException(
    8883                                        "One of the ValueSetUtilities in issueUtilitiesis null:"
    89                                                         + utils);
    90                 }
    91                 if (weights.values().contains(null)) {
     84                                                        + issueUtilities);
     85                }
     86                if (issueWeights.values().contains(null)) {
    9287                        throw new NullPointerException("One of the weights is null");
    9388                }
    94                 if (utils.keySet().contains(null)) {
     89                if (issueUtilities.keySet().contains(null)) {
    9590                        throw new NullPointerException("One of the issue names is null");
    9691                }
     
    9994                                        "Name must be simple (a-Z, 0-9) but got " + name);
    10095                }
    101                 if (!(utils.keySet().equals(domain.getIssues()))) {
     96                if (!(issueUtilities.keySet().equals(domain.getIssues()))) {
    10297                        throw new IllegalArgumentException(
    10398                                        "The issues in  utilityspace and domain do not match: utilityspace has issues "
    104                                                         + utils.keySet() + " but domain contains "
     99                                                        + issueUtilities.keySet() + " but domain contains "
    105100                                                        + domain.getIssues());
    106101                }
    107                 if (!(weights.keySet().equals(domain.getIssues()))) {
     102                if (!(issueWeights.keySet().equals(domain.getIssues()))) {
    108103                        throw new IllegalArgumentException(
    109104                                        "The issues in weights and domain do not match: weights has "
    110                                                         + weights.keySet() + " but domain contains "
     105                                                        + issueWeights.keySet() + " but domain contains "
    111106                                                        + domain.getIssues());
    112107                }
     
    118113                }
    119114
    120                 BigDecimal sum = weights.values().stream().reduce(BigDecimal.ZERO,
     115                BigDecimal sum = issueWeights.values().stream().reduce(BigDecimal.ZERO,
    121116                                BigDecimal::add);
    122117                if (BigDecimal.ONE.compareTo(sum) != 0) { // equals does NOT work for
    123118                                                                                                        // comparing BigDecimals!!
    124119                        throw new IllegalArgumentException("The sum of the weights ("
    125                                         + weights.values() + ") must be 1");
    126                 }
    127                 if (resBid != null) {
    128                         String message = domain.isFitting(resBid);
     120                                        + issueWeights.values() + ") must be 1");
     121                }
     122                if (reservationBid != null) {
     123                        String message = domain.isFitting(reservationBid);
    129124                        if (message != null)
    130125                                throw new IllegalArgumentException(
    131126                                                "reservationbid is not fitting domain: " + message);
    132127                }
     128
     129                this.domain = domain;
     130                this.name = name;
     131                this.reservationBid = reservationBid;
     132                this.issueUtilities.putAll(issueUtilities);
     133                this.issueWeights.putAll(issueWeights);
     134
    133135        }
    134136
  • profile/src/main/java/geniusweb/profile/utilityspace/PartsUtilities.java

    r52 r53  
    77import java.util.List;
    88import java.util.Map;
     9import java.util.stream.Collectors;
    910
    1011import com.fasterxml.jackson.annotation.JsonAutoDetect;
     
    1314import com.fasterxml.jackson.annotation.JsonProperty;
    1415
     16import geniusweb.issuevalue.Domain;
    1517import geniusweb.issuevalue.Value;
    1618import geniusweb.issuevalue.ValueSet;
     19import tudelft.utilities.immutablelist.ImmutableList;
     20import tudelft.utilities.immutablelist.Outer;
    1721
    1822/**
     
    4145         *
    4246         * @param issues list of issues
    43          * @param utils  with keys: list of values and value: utility value for that
    44          *               list of values. All list-of-values missing from the map are
    45          *               assumed to have utility 0. This includes partial bids where
    46          *               list-of-values contain null objects.
     47         * @param utils  with keys: list of values, one for each issue in issues (in
     48         *               the order of the list of issues) and value: utility value
     49         *               for that list of values. All list-of-values missing from
     50         *               the map are assumed to have utility 0. This includes
     51         *               partial bids where list-of-values contain null objects.
    4752         */
    4853        public PartsUtilities(List<String> issues,
    4954                        Map<ProductOfValue, BigDecimal> utils) {
    50                 if (issues == null || utils == null) {
     55                if (issues == null || utils == null || issues.isEmpty()) {
    5156                        throw new IllegalArgumentException(
    52                                         "issues and utils must be not null");
     57                                        "issues and utils must be not null or empty");
    5358                }
    5459
     
    149154        }
    150155
     156        /**
     157         * Check that all needed values have been set to a utility.
     158         *
     159         * @param domain the domain for which this should be parts. We need this to
     160         *               check that the values used are actually from the dmoain
     161         * @throws IllegalArgumentException if a problem is found
     162         */
     163        public void checkComplete(Domain domain) {
     164
     165                final List<ImmutableList<Value>> valuesofissues = issues.stream()
     166                                .map(iss -> domain.getValues(iss)).collect(Collectors.toList());
     167
     168                // check that all possible value combinations are handled
     169                for (ImmutableList<Value> vals : new Outer<Value>(valuesofissues)) {
     170                        ProductOfValue expected = ProductOfValue.create(vals);
     171                        if (!utilities.containsKey(expected))
     172                                throw new IllegalArgumentException(
     173                                                "Values " + vals + " must be assigned a utility");
     174                }
     175        }
     176
    151177        @Override
    152178        public boolean equals(Object obj) {
     
    176202        }
    177203
     204        /**
     205         * Check that the set of utilities is complete and no weird utility values
     206         * were used
     207         *
     208         */
    178209        private void checkUtilities() {
    179                 if (utilities.values().stream()
    180                                 .anyMatch(v -> v == null || v.compareTo(BigDecimal.ZERO) < 0
    181                                                 || v.compareTo(BigDecimal.ONE) > 0)) {
    182                         throw new IllegalArgumentException(
    183                                         "part weights must all be in [0,1]");
     210                for (BigDecimal value : utilities.values()) {
     211                        if (value == null || value.compareTo(BigDecimal.ZERO) < 0
     212                                        || value.compareTo(BigDecimal.ONE) > 0)
     213                                throw new IllegalArgumentException(
     214                                                "part weights must all be in [0,1] but found " + value);
    184215                }
    185216        }
     
    196227
    197228        /**
    198          *
    199229         * @return the max utility of all values contained here.
    200230         */
  • profile/src/main/java/geniusweb/profile/utilityspace/ProductOfValue.java

    r52 r53  
    22
    33import java.util.ArrayList;
     4import java.util.LinkedList;
    45import java.util.List;
    56
     
    1011
    1112import geniusweb.issuevalue.Value;
     13import tudelft.utilities.immutablelist.ImmutableList;
    1214
    1315/**
    14  * A {@link Value} that is the product of some existing values
     16 * A {@link Value} that is a list of a number of values in the space
    1517 */
    1618@JsonDeserialize(using = JsonDeserializer.None.class)
     
    2426        public ProductOfValue(List<Value> newvals) {
    2527                values.addAll(newvals);
     28        }
     29
     30        public static ProductOfValue create(ImmutableList<Value> vals) {
     31                List<Value> list = new LinkedList<>();
     32                for (Value val : vals) {
     33                        list.add(val);
     34                }
     35                return new ProductOfValue(list);
    2636        }
    2737
  • profile/src/main/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpace.java

    r52 r53  
    33import java.math.BigDecimal;
    44import java.util.Arrays;
     5import java.util.Collections;
    56import java.util.HashMap;
    67import java.util.HashSet;
     
    5152         * @param partutils a map with key: part names (String) and value: the
    5253         *                  {@link PartsUtilities} for that part. There MUST NOT be
    53          *                  a null part name. All values MUST NOT be null. The
    54          *                  PartsUtilities must match the
     54         *                  a null part name. The PartsUtilities must be complete:
     55         *                  all possible combinations of all parts must cover all
     56         *                  combinations of issue values and assign a proper utility
     57         *                  in [0,1].
    5558         * @param resBid    the reservation bid. Only bids that are
    5659         *                  {@link #isPreferredOrEqual(Bid, Bid)} should be
    5760         *                  accepted. Can be null, meaning that there is no
    5861         *                  reservation bid and any agreement is better than no
    59          *                  agreement.
     62         *                  agreement. Read the note about partial bids in
     63         *                  {@link #getUtility(Bid)}.
    6064         * @throws NullPointerException     if values are incorrectly null.
    6165         * @throws IllegalArgumentException if preconditions not met.
     
    6973                this.partUtilities.putAll(partutils);
    7074
    71                 String err = checkParts();
    72                 if (err != null) {
    73                         throw new IllegalArgumentException(err);
    74                 }
    75         }
    76 
    77         /**
    78          * Copy settings in las. This will have the exact same utilities as the las
    79          * but this then gives you the power to change it into a non-linear space by
    80          * grouping.
     75                checkParts();
     76        }
     77
     78        /**
     79         * Copy settings in las. This will have the exact same utilities as the
     80         * {@link LinearAdditive} space but this then gives you the power to change
     81         * it into a non-linear space by grouping.
    8182         *
    8283         * @param las the {@link LinearAdditive} to be converted/copied.
    8384         *
    8485         */
    85         public SumOfGroupsUtilitySpace(LinearAdditive las) {
    86                 this(las.getDomain(), las.getName(), las2parts(las),
    87                                 las.getReservationBid());
    88         }
    89 
     86        public static SumOfGroupsUtilitySpace create(LinearAdditive las) {
     87                return new SumOfGroupsUtilitySpace(las.getDomain(), las.getName(),
     88                                las2parts(las), las.getReservationBid());
     89        }
     90
     91        /**
     92         *
     93         * @return all partsutilities
     94         */
     95        public Map<String, PartsUtilities> getPartsUtilities() {
     96                return Collections.unmodifiableMap(partUtilities);
     97        }
     98
     99        /**
     100         *
     101         * Note: If bid is partial for a group, the utility of that group can not be
     102         * evaluated and is set to 0.
     103         *
     104         */
    90105        @Override
    91106        public BigDecimal getUtility(Bid bid) {
    92                 return partUtilities.keySet().stream()
    93                                 .map(partname -> util(partname, bid))
    94                                 .reduce(BigDecimal.ZERO, BigDecimal::add);
     107                BigDecimal sum = BigDecimal.ZERO;
     108                for (String partname : partUtilities.keySet()) {
     109                        sum = sum.add(util(partname, bid));
     110                }
     111                return sum;
    95112        }
    96113
    97114        @Override
    98115        public String toString() {
    99                 return "PartialAdditive[" + partUtilities + "," + getReservationBid()
    100                                 + "]";
     116                return "SumOfGroupsUtilitySpace[" + getName() + "," + partUtilities
     117                                + "," + getReservationBid() + "]";
    101118        }
    102119
     
    235252         * @return error string, or null if no error (all parts seem fine)
    236253         */
    237         private String checkParts() {
     254        private void checkParts() throws IllegalArgumentException {
    238255
    239256                Set<String> collectedIssues = new HashSet<>();
     
    241258                        PartsUtilities part = partUtilities.get(partname);
    242259                        if (part == null) {
    243                                 return "partUtilities " + partname + " contains null value";
     260                                throw new IllegalArgumentException(
     261                                                "partUtilities " + partname + " contains null value");
    244262                        }
    245263                        List<String> issues = part.getIssues();
     
    247265                        intersection.retainAll(issues);
    248266                        if (!intersection.isEmpty()) {
    249                                 return "issues " + intersection + " occur multiple times";
    250                         }
     267                                throw new IllegalArgumentException(
     268                                                "issues " + intersection + " occur multiple times");
     269                        }
     270                        part.checkComplete(getDomain());
    251271                        collectedIssues.addAll(issues);
    252272                }
    253273
    254274                if (!collectedIssues.equals(getDomain().getIssues())) {
    255                         return "parts must cover the domain issues "
    256                                         + getDomain().getIssues() + " but cover " + collectedIssues;
     275                        throw new IllegalArgumentException(
     276                                        "parts must cover the domain issues "
     277                                                        + getDomain().getIssues() + " but cover "
     278                                                        + collectedIssues);
    257279                }
    258280                if (getMaxUtility().compareTo(BigDecimal.ONE) > 0) {
    259                         return "Max utility of the space exceedds 1";
    260                 }
    261                 return null;
     281                        throw new IllegalArgumentException(
     282                                        "Max utility of the space exceedds 1");
     283                }
    262284
    263285        }
  • profile/src/test/java/geniusweb/profile/DefaultPartialOrderingTest.java

    r52 r53  
    2727import tudelft.utilities.junit.GeneralTests;
    2828
    29 public class DefaultPartialOrderingTest extends GeneralTests<DefaultPartialOrdering> {
     29public class DefaultPartialOrderingTest
     30                extends GeneralTests<DefaultPartialOrdering> {
    3031
    31         private final String serialized = "{\"DefaultPartialOrdering\":{" + "\"name\":\"ordering1\","
     32        private final String serialized = "{\"DefaultPartialOrdering\":{"
     33                        + "\"name\":\"ordering1\","
    3234                        + "\"domain\":{\"name\":\"dom1\",\"issuesValues\":{\"iss1\":{\"values\":[\"1\",\"2\",\"3\"]}}},"
    33                         + "\"reservationBid\":{\"issuevalues\":{\"iss1\":\"1\"}},"
    34                         + "\"bids\":[{\"issuevalues\":{\"iss1\":\"1\"}},{\"issuevalues\":{\"iss1\":\"3\"}},{\"issuevalues\":{\"iss1\":\"2\"}}],"
    35                         + "\"better\":[[0,2],[1,2]]}}";
     35                        + "\"better\":{\"{\\\"issuevalues\\\":{\\\"iss1\\\":\\\"1\\\"}}\":[{\"issuevalues\":{\"iss1\":\"2\"}}],\"{\\\"issuevalues\\\":{\\\"iss1\\\":\\\"3\\\"}}\":[{\"issuevalues\":{\"iss1\":\"2\"}}]},"
     36                        + "\"reservationbid\":{\"issuevalues\":{\"iss1\":\"1\"}}}}";
    3637
    3738        // we need real (not mock) values otherwise serializer crashes..
    3839        private String issue1 = "iss1";
    39         private DefaultPartialOrdering ordering1, ordering1b, ordering2, ordering3, ordering4, ordering5;
     40        private DefaultPartialOrdering ordering1, ordering1b, ordering2, ordering3,
     41                        ordering4, ordering5;
    4042
    4143        private Bid bid1, bid2, bid3;
     
    4749                DiscreteValue val2 = new DiscreteValue("2");
    4850                DiscreteValue val3 = new DiscreteValue("3");
    49                 issues.put(issue1, new DiscreteValueSet(new HashSet<>(Arrays.asList(val1, val2, val3))));
     51                issues.put(issue1, new DiscreteValueSet(
     52                                new HashSet<>(Arrays.asList(val1, val2, val3))));
    5053                Domain domain1 = new Domain("dom1", issues);
    5154                Domain domain2 = new Domain("dom2", issues);
     
    6265                map2.put(bid3, new HashSet<Bid>(Arrays.asList(bid1)));
    6366
    64                 ordering1 = new DefaultPartialOrdering("ordering1", domain1, bid1, map1);
    65                 ordering1b = new DefaultPartialOrdering("ordering1", domain1, bid1, map1);
    66                 ordering2 = new DefaultPartialOrdering("ordering2", domain1, bid1, map1);
    67                 ordering3 = new DefaultPartialOrdering("ordering1", domain2, bid1, map1);
    68                 ordering4 = new DefaultPartialOrdering("ordering1", domain1, bid2, map1);
    69                 ordering5 = new DefaultPartialOrdering("ordering1", domain1, bid1, map2);
     67                ordering1 = new DefaultPartialOrdering("ordering1", domain1, bid1,
     68                                map1);
     69                ordering1b = new DefaultPartialOrdering("ordering1", domain1, bid1,
     70                                map1);
     71                ordering2 = new DefaultPartialOrdering("ordering2", domain1, bid1,
     72                                map1);
     73                ordering3 = new DefaultPartialOrdering("ordering1", domain2, bid1,
     74                                map1);
     75                ordering4 = new DefaultPartialOrdering("ordering1", domain1, bid2,
     76                                map1);
     77                ordering5 = new DefaultPartialOrdering("ordering1", domain1, bid1,
     78                                map2);
    7079
    7180        }
     
    7382        @Override
    7483        public List<List<DefaultPartialOrdering>> getGeneralTestData() {
    75                 return Arrays.asList(Arrays.asList(ordering1, ordering1b), Arrays.asList(ordering2), Arrays.asList(ordering3),
     84                return Arrays.asList(Arrays.asList(ordering1, ordering1b),
     85                                Arrays.asList(ordering2), Arrays.asList(ordering3),
    7686                                Arrays.asList(ordering4), Arrays.asList(ordering5));
    7787        }
     
    7989        @Override
    8090        public List<String> getGeneralTestStrings() {
    81                 return Arrays.asList("DefaultPartialOrdering.*", "DefaultPartialOrdering.*", "DefaultPartialOrdering.*",
     91                return Arrays.asList("DefaultPartialOrdering.*",
     92                                "DefaultPartialOrdering.*", "DefaultPartialOrdering.*",
    8293                                "DefaultPartialOrdering.*", "DefaultPartialOrdering.*");
    8394        }
  • profile/src/test/java/geniusweb/profile/utilityspace/LinearAdditiveTest.java

    r52 r53  
    2222
    2323import com.fasterxml.jackson.databind.ObjectMapper;
     24import com.fasterxml.jackson.databind.exc.ValueInstantiationException;
    2425
    2526import geniusweb.issuevalue.Bid;
     
    309310        }
    310311
     312        /**
     313         * This should throw because computersell-domainmismatch has a mismatch: it
     314         * has "high 32G" as graphics option, but the utilities have no value for
     315         * that. Instead it talks about "high 24G"
     316         */
     317        @Test(expected = ValueInstantiationException.class)
     318        public void testIsFitting() throws IOException {
     319                String profile = new String(
     320                                Files.readAllBytes(Paths.get(
     321                                                "src/test/resources/computersell-domainmismatch.json")),
     322                                StandardCharsets.UTF_8);
     323                UtilitySpace space = jackson.readValue(profile, UtilitySpace.class);
     324
     325        }
     326
    311327}
  • profile/src/test/java/geniusweb/profile/utilityspace/SumOfGroupsUtilitySpaceTest.java

    r52 r53  
    2121import org.junit.Test;
    2222
     23import com.fasterxml.jackson.core.JsonParseException;
    2324import com.fasterxml.jackson.core.JsonProcessingException;
     25import com.fasterxml.jackson.databind.JsonMappingException;
    2426import com.fasterxml.jackson.databind.ObjectMapper;
     27import com.fasterxml.jackson.databind.exc.ValueInstantiationException;
    2528
    2629import geniusweb.issuevalue.Bid;
     
    3437import tudelft.utilities.immutablelist.ImmutableList;
    3538import tudelft.utilities.immutablelist.Outer;
    36 
    37 public class SumOfGroupsUtilitySpaceTest {
     39import tudelft.utilities.junit.GeneralTests;
     40
     41public class SumOfGroupsUtilitySpaceTest
     42                extends GeneralTests<SumOfGroupsUtilitySpace> {
    3843        private final ObjectMapper jackson = new ObjectMapper();
    3944        private SumOfGroupsUtilitySpace pa1;
     
    4954
    5055        private Domain domain;
    51         private PartsUtilities putils12, putils3;
     56        private PartsUtilities putils12, putils3, putils3b;
    5257        private String serialized = "{\"SumOfGroupsUtilitySpace\":{\"domain\":{\"name\":\"domain\",\"issuesValues\":{\"issue3\":{\"values\":[\"low\",\"high\"]},\"issue2\":{\"values\":[\"low\",\"high\"]},\"issue1\":{\"values\":[\"low\",\"high\"]}}},\"name\":\"testspace\",\"partUtilities\":{\"1and2\":{\"PartsUtilities\":{\"issues\":[\"issue1\",\"issue2\"],\"utilslist\":[{\"values\":[\"low\",\"low\"],\"util\":0.16},{\"values\":[\"high\",\"high\"],\"util\":0.72},{\"values\":[\"low\",\"high\"],\"util\":0.16},{\"values\":[\"high\",\"low\"],\"util\":0.16}]}},\"3\":{\"PartsUtilities\":{\"issues\":[\"issue3\"],\"utilslist\":[{\"values\":[\"low\"],\"util\":0.16},{\"values\":[\"high\"],\"util\":0.14}]}}},\"reservationbid\":{\"issuevalues\":{\"issue1\":\"high\"}}}}";
     58        private SumOfGroupsUtilitySpace sog1, sog1a, sog2, sog3;
    5359
    5460        @Before
     
    7884                putils3 = new PartsUtilities(Arrays.asList(iss3), utils3);
    7985
     86                Map<ProductOfValue, BigDecimal> utils3b = new HashMap<>();
     87                utils3b.put(new ProductOfValue(Arrays.asList(lo)), N07.multiply(N02));
     88                utils3b.put(new ProductOfValue(Arrays.asList(hi)), N08.multiply(N02));
     89                putils3b = new PartsUtilities(Arrays.asList(iss3), utils3b);
     90
     91                HashMap<String, PartsUtilities> partutils = new HashMap<>();
     92                partutils.put("1and2", putils12);
     93                partutils.put("3", putils3);
     94
     95                sog1 = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
     96                                resBid);
     97                sog1a = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
     98                                resBid);
     99                sog2 = new SumOfGroupsUtilitySpace(domain, "testspace2", partutils,
     100                                resBid);
     101
     102                // reuse partutils. Also checks that the values have been copied
     103                partutils = new HashMap<>();
     104                partutils.put("1and2", putils12);
     105                partutils.put("3", putils3b);
     106                sog3 = new SumOfGroupsUtilitySpace(domain, "testspace", partutils,
     107                                resBid);
     108
     109        }
     110
     111        @Override
     112        public List<List<SumOfGroupsUtilitySpace>> getGeneralTestData() {
     113                return Arrays.asList(Arrays.asList(sog1, sog1a), Arrays.asList(sog2),
     114                                Arrays.asList(sog3));
     115        }
     116
     117        @Override
     118        public List<String> getGeneralTestStrings() {
     119                return Arrays.asList(
     120                                "SumOfGroupsUtilitySpace.*testspace.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*",
     121                                "SumOfGroupsUtilitySpace.*testspace2.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*",
     122                                "SumOfGroupsUtilitySpace.*testspace.*1and2.*PartsUtilities.*issue1.*issue2.*3.*PartsUtilities.*Bid.*issue1.*high.*");
    80123        }
    81124
     
    161204                LinearAdditiveUtilitySpace las = jackson.readValue(profile,
    162205                                LinearAdditiveUtilitySpace.class);
    163                 SumOfGroupsUtilitySpace pas = new SumOfGroupsUtilitySpace(las);
     206                SumOfGroupsUtilitySpace pas = SumOfGroupsUtilitySpace.create(las);
    164207                checkUtilitiesAllEqual(las, pas);
    165208                System.out.println("Generated partial profile:\n" + pas);
     
    178221                LinearAdditiveUtilitySpace las = jackson.readValue(profile,
    179222                                LinearAdditiveUtilitySpace.class);
    180                 SumOfGroupsUtilitySpace pas = new SumOfGroupsUtilitySpace(las);
     223                SumOfGroupsUtilitySpace pas = SumOfGroupsUtilitySpace.create(las);
    181224                pas = pas.group(Arrays.asList("Food", "Drinks"), "food&drinks");
    182225                checkUtilitiesAllEqual(las, pas);
     
    235278        }
    236279
     280        @Test
     281        public void loadComputerBuy() throws IOException {
     282                UtilitySpace space = jackson.readValue(
     283                                getClass().getResourceAsStream("/computerbuy.json"),
     284                                UtilitySpace.class);
     285                assertTrue(space instanceof SumOfGroupsUtilitySpace);
     286
     287        }
     288
     289        @Test
     290        public void loadComputerSell() throws IOException {
     291                UtilitySpace space = jackson.readValue(
     292                                getClass().getResourceAsStream("/computersell.json"),
     293                                UtilitySpace.class);
     294                assertTrue(space instanceof LinearAdditiveUtilitySpace);
     295
     296        }
     297
     298        @Test(expected = ValueInstantiationException.class)
     299        public void loadComputerBuyIncomplete() throws IOException {
     300                UtilitySpace space = jackson.readValue(
     301                                getClass().getResourceAsStream("/computerbuyincomplete.json"),
     302                                UtilitySpace.class);
     303                assertTrue(space instanceof LinearAdditiveUtilitySpace);
     304
     305        }
     306
     307        @Test
     308        public void loadComputerBuyNumbers() throws IOException {
     309                UtilitySpace space = jackson.readValue(
     310                                getClass().getResourceAsStream("/computerbuynumbers.json"),
     311                                UtilitySpace.class);
     312                assertTrue(space instanceof SumOfGroupsUtilitySpace);
     313
     314        }
     315
     316        @Test
     317        public void testComputerBuyUtility()
     318                        throws JsonParseException, JsonMappingException, IOException {
     319                SumOfGroupsUtilitySpace space = jackson.readValue(
     320                                getClass().getResourceAsStream("/computerbuy.json"),
     321                                SumOfGroupsUtilitySpace.class);
     322                Bid bid = space.getReservationBid();
     323                assertEquals(new BigDecimal("0.625"), space.getUtility(bid));
     324        }
     325
    237326        /************************ PRIVATE FUNCTIONS *******************/
    238327
  • profileconnection/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profileconnection</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • profileconnection/src/test/resources/jobs1_20.json

    r52 r53  
    11{
    2         "DefaultPartialOrdering": {
    3                 "name": "jobs1_20",
    4                 "domain": {
    5                         "name": "jobs",
    6                         "issuesValues": {
    7                                 "lease car": {
    8                                         "values": ["yes", "no"]
    9                                 },
    10                                 "permanent contract": {
    11                                         "values": ["yes", "no"]
    12                                 },
    13                                 "career development opportunities": {
    14                                         "values": ["low", "medium", "high"]
    15                                 },
    16                                 "fte": {
    17                                         "values": ["0.6", "0.8", "1.0"]
    18                                 },
    19                                 "salary": {
    20                                         "values": ["2000", "2500", "3000", "3500", "4000"]
    21                                 },
    22                                 "work from home": {
    23                                         "values": ["0", "1", "2"]
    24                                 }
    25                         }
    26                 },
    27                 "better": [
    28                         [0, 34],
    29                         [2, 9],
    30                         [3, 5],
    31                         [6, 23],
    32                         [12, 18],
    33                         [13, 27],
    34                         [14, 28],
    35                         [15, 37],
    36                         [17, 28],
    37                         [19, 1],
    38                         [20, 29],
    39                         [21, 24],
    40                         [22, 8],
    41                         [25, 10],
    42                         [26, 16],
    43                         [30, 24],
    44                         [31, 32],
    45                         [33, 7],
    46                         [35, 4],
    47                         [36, 11]
    48                 ],
    49                 "bids": [{
    50                         "issuevalues": {
    51                                 "lease car": "yes",
    52                                 "permanent contract": "yes",
    53                                 "career development opportunities": "low",
    54                                 "fte": "0.8",
    55                                 "salary": "4000",
    56                                 "work from home": "0"
    57                         }
    58                 }, {
    59                         "issuevalues": {
    60                                 "lease car": "no",
    61                                 "permanent contract": "no",
    62                                 "career development opportunities": "high",
    63                                 "fte": "0.6",
    64                                 "salary": "2000",
    65                                 "work from home": "1"
    66                         }
    67                 }, {
    68                         "issuevalues": {
    69                                 "lease car": "yes",
    70                                 "permanent contract": "no",
    71                                 "career development opportunities": "low",
    72                                 "fte": "0.8",
    73                                 "salary": "2000",
    74                                 "work from home": "0"
    75                         }
    76                 }, {
    77                         "issuevalues": {
    78                                 "lease car": "no",
    79                                 "permanent contract": "yes",
    80                                 "career development opportunities": "high",
    81                                 "fte": "0.8",
    82                                 "salary": "2500",
    83                                 "work from home": "2"
    84                         }
    85                 }, {
    86                         "issuevalues": {
    87                                 "lease car": "no",
    88                                 "permanent contract": "yes",
    89                                 "career development opportunities": "low",
    90                                 "fte": "0.6",
    91                                 "salary": "2000",
    92                                 "work from home": "2"
    93                         }
    94                 }, {
    95                         "issuevalues": {
    96                                 "lease car": "no",
    97                                 "permanent contract": "no",
    98                                 "career development opportunities": "high",
    99                                 "fte": "0.6",
    100                                 "salary": "2500",
    101                                 "work from home": "2"
    102                         }
    103                 }, {
    104                         "issuevalues": {
    105                                 "lease car": "no",
    106                                 "permanent contract": "yes",
    107                                 "career development opportunities": "low",
    108                                 "fte": "1.0",
    109                                 "salary": "3500",
    110                                 "work from home": "2"
    111                         }
    112                 }, {
    113                         "issuevalues": {
    114                                 "lease car": "no",
    115                                 "permanent contract": "yes",
    116                                 "career development opportunities": "medium",
    117                                 "fte": "1.0",
    118                                 "salary": "3000",
    119                                 "work from home": "0"
    120                         }
    121                 }, {
    122                         "issuevalues": {
    123                                 "lease car": "no",
    124                                 "permanent contract": "yes",
    125                                 "career development opportunities": "high",
    126                                 "fte": "0.6",
    127                                 "salary": "3500",
    128                                 "work from home": "1"
    129                         }
    130                 }, {
    131                         "issuevalues": {
    132                                 "lease car": "no",
    133                                 "permanent contract": "no",
    134                                 "career development opportunities": "medium",
    135                                 "fte": "0.6",
    136                                 "salary": "2000",
    137                                 "work from home": "1"
    138                         }
    139                 }, {
    140                         "issuevalues": {
    141                                 "lease car": "yes",
    142                                 "permanent contract": "no",
    143                                 "career development opportunities": "high",
    144                                 "fte": "0.6",
    145                                 "salary": "2000",
    146                                 "work from home": "0"
    147                         }
    148                 }, {
    149                         "issuevalues": {
    150                                 "lease car": "no",
    151                                 "permanent contract": "no",
    152                                 "career development opportunities": "medium",
    153                                 "fte": "0.8",
    154                                 "salary": "3500",
    155                                 "work from home": "2"
    156                         }
    157                 }, {
    158                         "issuevalues": {
    159                                 "lease car": "yes",
    160                                 "permanent contract": "yes",
    161                                 "career development opportunities": "high",
    162                                 "fte": "0.6",
    163                                 "salary": "2500",
    164                                 "work from home": "2"
    165                         }
    166                 }, {
    167                         "issuevalues": {
    168                                 "lease car": "no",
    169                                 "permanent contract": "yes",
    170                                 "career development opportunities": "low",
    171                                 "fte": "0.8",
    172                                 "salary": "3000",
    173                                 "work from home": "1"
    174                         }
    175                 }, {
    176                         "issuevalues": {
    177                                 "lease car": "yes",
    178                                 "permanent contract": "yes",
    179                                 "career development opportunities": "high",
    180                                 "fte": "0.8",
    181                                 "salary": "2000",
    182                                 "work from home": "2"
    183                         }
    184                 }, {
    185                         "issuevalues": {
    186                                 "lease car": "no",
    187                                 "permanent contract": "yes",
    188                                 "career development opportunities": "high",
    189                                 "fte": "1.0",
    190                                 "salary": "3500",
    191                                 "work from home": "0"
    192                         }
    193                 }, {
    194                         "issuevalues": {
    195                                 "lease car": "no",
    196                                 "permanent contract": "yes",
    197                                 "career development opportunities": "medium",
    198                                 "fte": "0.8",
    199                                 "salary": "4000",
    200                                 "work from home": "0"
    201                         }
    202                 }, {
    203                         "issuevalues": {
    204                                 "lease car": "yes",
    205                                 "permanent contract": "no",
    206                                 "career development opportunities": "medium",
    207                                 "fte": "0.8",
    208                                 "salary": "3000",
    209                                 "work from home": "1"
    210                         }
    211                 }, {
    212                         "issuevalues": {
    213                                 "lease car": "no",
    214                                 "permanent contract": "yes",
    215                                 "career development opportunities": "high",
    216                                 "fte": "0.8",
    217                                 "salary": "2000",
    218                                 "work from home": "0"
    219                         }
    220                 }, {
    221                         "issuevalues": {
    222                                 "lease car": "no",
    223                                 "permanent contract": "yes",
    224                                 "career development opportunities": "low",
    225                                 "fte": "1.0",
    226                                 "salary": "3000",
    227                                 "work from home": "2"
    228                         }
    229                 }, {
    230                         "issuevalues": {
    231                                 "lease car": "yes",
    232                                 "permanent contract": "no",
    233                                 "career development opportunities": "medium",
    234                                 "fte": "1.0",
    235                                 "salary": "4000",
    236                                 "work from home": "1"
    237                         }
    238                 }, {
    239                         "issuevalues": {
    240                                 "lease car": "no",
    241                                 "permanent contract": "no",
    242                                 "career development opportunities": "low",
    243                                 "fte": "1.0",
    244                                 "salary": "3500",
    245                                 "work from home": "2"
    246                         }
    247                 }, {
    248                         "issuevalues": {
    249                                 "lease car": "yes",
    250                                 "permanent contract": "yes",
    251                                 "career development opportunities": "medium",
    252                                 "fte": "1.0",
    253                                 "salary": "2500",
    254                                 "work from home": "2"
    255                         }
    256                 }, {
    257                         "issuevalues": {
    258                                 "lease car": "yes",
    259                                 "permanent contract": "no",
    260                                 "career development opportunities": "low",
    261                                 "fte": "1.0",
    262                                 "salary": "3000",
    263                                 "work from home": "2"
    264                         }
    265                 }, {
    266                         "issuevalues": {
    267                                 "lease car": "no",
    268                                 "permanent contract": "yes",
    269                                 "career development opportunities": "medium",
    270                                 "fte": "0.8",
    271                                 "salary": "3000",
    272                                 "work from home": "2"
    273                         }
    274                 }, {
    275                         "issuevalues": {
    276                                 "lease car": "no",
    277                                 "permanent contract": "no",
    278                                 "career development opportunities": "medium",
    279                                 "fte": "0.8",
    280                                 "salary": "2000",
    281                                 "work from home": "1"
    282                         }
    283                 }, {
    284                         "issuevalues": {
    285                                 "lease car": "yes",
    286                                 "permanent contract": "yes",
    287                                 "career development opportunities": "low",
    288                                 "fte": "0.8",
    289                                 "salary": "3500",
    290                                 "work from home": "2"
    291                         }
    292                 }, {
    293                         "issuevalues": {
    294                                 "lease car": "yes",
    295                                 "permanent contract": "no",
    296                                 "career development opportunities": "medium",
    297                                 "fte": "0.6",
    298                                 "salary": "4000",
    299                                 "work from home": "0"
    300                         }
    301                 }, {
    302                         "issuevalues": {
    303                                 "lease car": "no",
    304                                 "permanent contract": "no",
    305                                 "career development opportunities": "low",
    306                                 "fte": "0.6",
    307                                 "salary": "2000",
    308                                 "work from home": "0"
    309                         }
    310                 }, {
    311                         "issuevalues": {
    312                                 "lease car": "no",
    313                                 "permanent contract": "no",
    314                                 "career development opportunities": "low",
    315                                 "fte": "0.6",
    316                                 "salary": "3500",
    317                                 "work from home": "1"
    318                         }
    319                 }, {
    320                         "issuevalues": {
    321                                 "lease car": "yes",
    322                                 "permanent contract": "no",
    323                                 "career development opportunities": "high",
    324                                 "fte": "0.8",
    325                                 "salary": "4000",
    326                                 "work from home": "1"
    327                         }
    328                 }, {
    329                         "issuevalues": {
    330                                 "lease car": "no",
    331                                 "permanent contract": "yes",
    332                                 "career development opportunities": "low",
    333                                 "fte": "0.8",
    334                                 "salary": "4000",
    335                                 "work from home": "1"
    336                         }
    337                 }, {
    338                         "issuevalues": {
    339                                 "lease car": "no",
    340                                 "permanent contract": "yes",
    341                                 "career development opportunities": "high",
    342                                 "fte": "0.8",
    343                                 "salary": "2500",
    344                                 "work from home": "0"
    345                         }
    346                 }, {
    347                         "issuevalues": {
    348                                 "lease car": "no",
    349                                 "permanent contract": "yes",
    350                                 "career development opportunities": "medium",
    351                                 "fte": "1.0",
    352                                 "salary": "4000",
    353                                 "work from home": "0"
    354                         }
    355                 }, {
    356                         "issuevalues": {
    357                                 "lease car": "yes",
    358                                 "permanent contract": "no",
    359                                 "career development opportunities": "high",
    360                                 "fte": "0.6",
    361                                 "salary": "2500",
    362                                 "work from home": "2"
    363                         }
    364                 }, {
    365                         "issuevalues": {
    366                                 "lease car": "yes",
    367                                 "permanent contract": "yes",
    368                                 "career development opportunities": "low",
    369                                 "fte": "0.8",
    370                                 "salary": "3500",
    371                                 "work from home": "0"
    372                         }
    373                 }, {
    374                         "issuevalues": {
    375                                 "lease car": "yes",
    376                                 "permanent contract": "no",
    377                                 "career development opportunities": "high",
    378                                 "fte": "1.0",
    379                                 "salary": "4000",
    380                                 "work from home": "1"
    381                         }
    382                 }, {
    383                         "issuevalues": {
    384                                 "lease car": "yes",
    385                                 "permanent contract": "no",
    386                                 "career development opportunities": "medium",
    387                                 "fte": "0.8",
    388                                 "salary": "3500",
    389                                 "work from home": "2"
    390                         }
    391                 }],
    392                 "reservationBid": {
    393                         "issuevalues": {
    394                                 "lease car": "no",
    395                                 "permanent contract": "no",
    396                                 "career development opportunities": "low",
    397                                 "fte": "0.6",
    398                                 "salary": "3500",
    399                                 "work from home": "1"
    400                         }
    401                 }
    402         }
     2  "DefaultPartialOrdering" : {
     3    "name" : "jobs1_20",
     4    "domain" : {
     5      "name" : "jobs",
     6      "issuesValues" : {
     7        "lease car" : {
     8          "values" : [ "yes", "no" ]
     9        },
     10        "permanent contract" : {
     11          "values" : [ "yes", "no" ]
     12        },
     13        "career development opportunities" : {
     14          "values" : [ "low", "medium", "high" ]
     15        },
     16        "fte" : {
     17          "values" : [ "0.6", "0.8", "1.0" ]
     18        },
     19        "salary" : {
     20          "values" : [ "2000", "2500", "3000", "3500", "4000" ]
     21        },
     22        "work from home" : {
     23          "values" : [ "0", "1", "2" ]
     24        }
     25      }
     26    },
     27    "better" : {
     28      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"2\"}}" : [ {
     29        "issuevalues" : {
     30          "lease car" : "no",
     31          "permanent contract" : "no",
     32          "career development opportunities" : "low",
     33          "fte" : "0.6",
     34          "salary" : "2000",
     35          "work from home" : "0"
     36        }
     37      }, {
     38        "issuevalues" : {
     39          "lease car" : "yes",
     40          "permanent contract" : "no",
     41          "career development opportunities" : "low",
     42          "fte" : "0.6",
     43          "salary" : "3500",
     44          "work from home" : "0"
     45        }
     46      }, {
     47        "issuevalues" : {
     48          "lease car" : "no",
     49          "permanent contract" : "no",
     50          "career development opportunities" : "high",
     51          "fte" : "0.6",
     52          "salary" : "3500",
     53          "work from home" : "1"
     54        }
     55      }, {
     56        "issuevalues" : {
     57          "lease car" : "no",
     58          "permanent contract" : "no",
     59          "career development opportunities" : "low",
     60          "fte" : "1.0",
     61          "salary" : "2000",
     62          "work from home" : "1"
     63        }
     64      }, {
     65        "issuevalues" : {
     66          "lease car" : "no",
     67          "permanent contract" : "no",
     68          "career development opportunities" : "high",
     69          "fte" : "1.0",
     70          "salary" : "3000",
     71          "work from home" : "0"
     72        }
     73      }, {
     74        "issuevalues" : {
     75          "lease car" : "yes",
     76          "permanent contract" : "yes",
     77          "career development opportunities" : "medium",
     78          "fte" : "0.8",
     79          "salary" : "2500",
     80          "work from home" : "1"
     81        }
     82      }, {
     83        "issuevalues" : {
     84          "lease car" : "no",
     85          "permanent contract" : "no",
     86          "career development opportunities" : "low",
     87          "fte" : "0.6",
     88          "salary" : "2000",
     89          "work from home" : "1"
     90        }
     91      }, {
     92        "issuevalues" : {
     93          "lease car" : "yes",
     94          "permanent contract" : "no",
     95          "career development opportunities" : "high",
     96          "fte" : "1.0",
     97          "salary" : "3000",
     98          "work from home" : "1"
     99        }
     100      }, {
     101        "issuevalues" : {
     102          "lease car" : "yes",
     103          "permanent contract" : "no",
     104          "career development opportunities" : "high",
     105          "fte" : "0.8",
     106          "salary" : "3500",
     107          "work from home" : "1"
     108        }
     109      }, {
     110        "issuevalues" : {
     111          "lease car" : "no",
     112          "permanent contract" : "no",
     113          "career development opportunities" : "medium",
     114          "fte" : "0.8",
     115          "salary" : "2000",
     116          "work from home" : "1"
     117        }
     118      }, {
     119        "issuevalues" : {
     120          "lease car" : "yes",
     121          "permanent contract" : "yes",
     122          "career development opportunities" : "high",
     123          "fte" : "0.6",
     124          "salary" : "2000",
     125          "work from home" : "1"
     126        }
     127      } ],
     128      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     129        "issuevalues" : {
     130          "lease car" : "no",
     131          "permanent contract" : "no",
     132          "career development opportunities" : "low",
     133          "fte" : "0.6",
     134          "salary" : "2000",
     135          "work from home" : "0"
     136        }
     137      }, {
     138        "issuevalues" : {
     139          "lease car" : "no",
     140          "permanent contract" : "no",
     141          "career development opportunities" : "low",
     142          "fte" : "1.0",
     143          "salary" : "2000",
     144          "work from home" : "1"
     145        }
     146      }, {
     147        "issuevalues" : {
     148          "lease car" : "no",
     149          "permanent contract" : "no",
     150          "career development opportunities" : "low",
     151          "fte" : "0.6",
     152          "salary" : "2000",
     153          "work from home" : "1"
     154        }
     155      }, {
     156        "issuevalues" : {
     157          "lease car" : "no",
     158          "permanent contract" : "no",
     159          "career development opportunities" : "medium",
     160          "fte" : "0.8",
     161          "salary" : "2000",
     162          "work from home" : "1"
     163        }
     164      } ],
     165      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     166        "issuevalues" : {
     167          "lease car" : "no",
     168          "permanent contract" : "no",
     169          "career development opportunities" : "low",
     170          "fte" : "0.6",
     171          "salary" : "2000",
     172          "work from home" : "0"
     173        }
     174      }, {
     175        "issuevalues" : {
     176          "lease car" : "no",
     177          "permanent contract" : "no",
     178          "career development opportunities" : "low",
     179          "fte" : "0.6",
     180          "salary" : "2000",
     181          "work from home" : "1"
     182        }
     183      }, {
     184        "issuevalues" : {
     185          "lease car" : "no",
     186          "permanent contract" : "no",
     187          "career development opportunities" : "medium",
     188          "fte" : "0.8",
     189          "salary" : "2000",
     190          "work from home" : "1"
     191        }
     192      } ],
     193      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     194        "issuevalues" : {
     195          "lease car" : "no",
     196          "permanent contract" : "yes",
     197          "career development opportunities" : "high",
     198          "fte" : "1.0",
     199          "salary" : "2000",
     200          "work from home" : "2"
     201        }
     202      }, {
     203        "issuevalues" : {
     204          "lease car" : "yes",
     205          "permanent contract" : "no",
     206          "career development opportunities" : "low",
     207          "fte" : "0.6",
     208          "salary" : "3500",
     209          "work from home" : "0"
     210        }
     211      }, {
     212        "issuevalues" : {
     213          "lease car" : "no",
     214          "permanent contract" : "no",
     215          "career development opportunities" : "low",
     216          "fte" : "1.0",
     217          "salary" : "2000",
     218          "work from home" : "1"
     219        }
     220      }, {
     221        "issuevalues" : {
     222          "lease car" : "no",
     223          "permanent contract" : "no",
     224          "career development opportunities" : "high",
     225          "fte" : "1.0",
     226          "salary" : "3000",
     227          "work from home" : "0"
     228        }
     229      }, {
     230        "issuevalues" : {
     231          "lease car" : "no",
     232          "permanent contract" : "no",
     233          "career development opportunities" : "low",
     234          "fte" : "0.6",
     235          "salary" : "2000",
     236          "work from home" : "1"
     237        }
     238      }, {
     239        "issuevalues" : {
     240          "lease car" : "yes",
     241          "permanent contract" : "no",
     242          "career development opportunities" : "high",
     243          "fte" : "1.0",
     244          "salary" : "3000",
     245          "work from home" : "1"
     246        }
     247      }, {
     248        "issuevalues" : {
     249          "lease car" : "yes",
     250          "permanent contract" : "no",
     251          "career development opportunities" : "high",
     252          "fte" : "0.8",
     253          "salary" : "3500",
     254          "work from home" : "1"
     255        }
     256      }, {
     257        "issuevalues" : {
     258          "lease car" : "no",
     259          "permanent contract" : "no",
     260          "career development opportunities" : "medium",
     261          "fte" : "0.8",
     262          "salary" : "2000",
     263          "work from home" : "1"
     264        }
     265      }, {
     266        "issuevalues" : {
     267          "lease car" : "yes",
     268          "permanent contract" : "yes",
     269          "career development opportunities" : "high",
     270          "fte" : "0.6",
     271          "salary" : "2000",
     272          "work from home" : "1"
     273        }
     274      }, {
     275        "issuevalues" : {
     276          "lease car" : "no",
     277          "permanent contract" : "no",
     278          "career development opportunities" : "low",
     279          "fte" : "0.6",
     280          "salary" : "2000",
     281          "work from home" : "0"
     282        }
     283      }, {
     284        "issuevalues" : {
     285          "lease car" : "yes",
     286          "permanent contract" : "no",
     287          "career development opportunities" : "low",
     288          "fte" : "0.8",
     289          "salary" : "4000",
     290          "work from home" : "2"
     291        }
     292      }, {
     293        "issuevalues" : {
     294          "lease car" : "no",
     295          "permanent contract" : "no",
     296          "career development opportunities" : "high",
     297          "fte" : "0.6",
     298          "salary" : "3500",
     299          "work from home" : "1"
     300        }
     301      }, {
     302        "issuevalues" : {
     303          "lease car" : "yes",
     304          "permanent contract" : "yes",
     305          "career development opportunities" : "medium",
     306          "fte" : "0.8",
     307          "salary" : "2500",
     308          "work from home" : "1"
     309        }
     310      }, {
     311        "issuevalues" : {
     312          "lease car" : "yes",
     313          "permanent contract" : "yes",
     314          "career development opportunities" : "medium",
     315          "fte" : "0.8",
     316          "salary" : "2500",
     317          "work from home" : "2"
     318        }
     319      } ],
     320      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"0\"}}" : [ {
     321        "issuevalues" : {
     322          "lease car" : "no",
     323          "permanent contract" : "no",
     324          "career development opportunities" : "low",
     325          "fte" : "0.6",
     326          "salary" : "2000",
     327          "work from home" : "0"
     328        }
     329      }, {
     330        "issuevalues" : {
     331          "lease car" : "yes",
     332          "permanent contract" : "no",
     333          "career development opportunities" : "low",
     334          "fte" : "0.6",
     335          "salary" : "3500",
     336          "work from home" : "0"
     337        }
     338      }, {
     339        "issuevalues" : {
     340          "lease car" : "no",
     341          "permanent contract" : "no",
     342          "career development opportunities" : "high",
     343          "fte" : "0.6",
     344          "salary" : "3500",
     345          "work from home" : "1"
     346        }
     347      }, {
     348        "issuevalues" : {
     349          "lease car" : "no",
     350          "permanent contract" : "no",
     351          "career development opportunities" : "low",
     352          "fte" : "1.0",
     353          "salary" : "2000",
     354          "work from home" : "1"
     355        }
     356      }, {
     357        "issuevalues" : {
     358          "lease car" : "no",
     359          "permanent contract" : "no",
     360          "career development opportunities" : "low",
     361          "fte" : "0.6",
     362          "salary" : "2000",
     363          "work from home" : "1"
     364        }
     365      }, {
     366        "issuevalues" : {
     367          "lease car" : "no",
     368          "permanent contract" : "no",
     369          "career development opportunities" : "medium",
     370          "fte" : "0.8",
     371          "salary" : "2000",
     372          "work from home" : "1"
     373        }
     374      } ],
     375      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"1.0\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     376        "issuevalues" : {
     377          "lease car" : "no",
     378          "permanent contract" : "yes",
     379          "career development opportunities" : "high",
     380          "fte" : "1.0",
     381          "salary" : "2000",
     382          "work from home" : "2"
     383        }
     384      }, {
     385        "issuevalues" : {
     386          "lease car" : "yes",
     387          "permanent contract" : "no",
     388          "career development opportunities" : "low",
     389          "fte" : "0.6",
     390          "salary" : "3500",
     391          "work from home" : "0"
     392        }
     393      }, {
     394        "issuevalues" : {
     395          "lease car" : "no",
     396          "permanent contract" : "no",
     397          "career development opportunities" : "low",
     398          "fte" : "1.0",
     399          "salary" : "2000",
     400          "work from home" : "1"
     401        }
     402      }, {
     403        "issuevalues" : {
     404          "lease car" : "yes",
     405          "permanent contract" : "no",
     406          "career development opportunities" : "medium",
     407          "fte" : "1.0",
     408          "salary" : "3500",
     409          "work from home" : "1"
     410        }
     411      }, {
     412        "issuevalues" : {
     413          "lease car" : "no",
     414          "permanent contract" : "no",
     415          "career development opportunities" : "high",
     416          "fte" : "1.0",
     417          "salary" : "3000",
     418          "work from home" : "0"
     419        }
     420      }, {
     421        "issuevalues" : {
     422          "lease car" : "no",
     423          "permanent contract" : "no",
     424          "career development opportunities" : "low",
     425          "fte" : "0.6",
     426          "salary" : "2000",
     427          "work from home" : "1"
     428        }
     429      }, {
     430        "issuevalues" : {
     431          "lease car" : "yes",
     432          "permanent contract" : "no",
     433          "career development opportunities" : "high",
     434          "fte" : "1.0",
     435          "salary" : "3000",
     436          "work from home" : "1"
     437        }
     438      }, {
     439        "issuevalues" : {
     440          "lease car" : "yes",
     441          "permanent contract" : "no",
     442          "career development opportunities" : "high",
     443          "fte" : "0.8",
     444          "salary" : "3500",
     445          "work from home" : "1"
     446        }
     447      }, {
     448        "issuevalues" : {
     449          "lease car" : "no",
     450          "permanent contract" : "no",
     451          "career development opportunities" : "medium",
     452          "fte" : "0.8",
     453          "salary" : "2000",
     454          "work from home" : "1"
     455        }
     456      }, {
     457        "issuevalues" : {
     458          "lease car" : "yes",
     459          "permanent contract" : "yes",
     460          "career development opportunities" : "high",
     461          "fte" : "0.6",
     462          "salary" : "2000",
     463          "work from home" : "1"
     464        }
     465      }, {
     466        "issuevalues" : {
     467          "lease car" : "no",
     468          "permanent contract" : "no",
     469          "career development opportunities" : "low",
     470          "fte" : "0.6",
     471          "salary" : "2000",
     472          "work from home" : "0"
     473        }
     474      }, {
     475        "issuevalues" : {
     476          "lease car" : "yes",
     477          "permanent contract" : "no",
     478          "career development opportunities" : "low",
     479          "fte" : "0.8",
     480          "salary" : "4000",
     481          "work from home" : "2"
     482        }
     483      }, {
     484        "issuevalues" : {
     485          "lease car" : "no",
     486          "permanent contract" : "no",
     487          "career development opportunities" : "high",
     488          "fte" : "0.6",
     489          "salary" : "3500",
     490          "work from home" : "1"
     491        }
     492      }, {
     493        "issuevalues" : {
     494          "lease car" : "yes",
     495          "permanent contract" : "yes",
     496          "career development opportunities" : "medium",
     497          "fte" : "0.8",
     498          "salary" : "2500",
     499          "work from home" : "1"
     500        }
     501      }, {
     502        "issuevalues" : {
     503          "lease car" : "yes",
     504          "permanent contract" : "yes",
     505          "career development opportunities" : "medium",
     506          "fte" : "0.8",
     507          "salary" : "2500",
     508          "work from home" : "2"
     509        }
     510      }, {
     511        "issuevalues" : {
     512          "lease car" : "no",
     513          "permanent contract" : "yes",
     514          "career development opportunities" : "low",
     515          "fte" : "1.0",
     516          "salary" : "3500",
     517          "work from home" : "0"
     518        }
     519      } ],
     520      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     521        "issuevalues" : {
     522          "lease car" : "no",
     523          "permanent contract" : "no",
     524          "career development opportunities" : "low",
     525          "fte" : "0.6",
     526          "salary" : "2000",
     527          "work from home" : "0"
     528        }
     529      } ],
     530      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"3000\",\"work from home\":\"1\"}}" : [ {
     531        "issuevalues" : {
     532          "lease car" : "no",
     533          "permanent contract" : "no",
     534          "career development opportunities" : "low",
     535          "fte" : "0.6",
     536          "salary" : "2000",
     537          "work from home" : "0"
     538        }
     539      }, {
     540        "issuevalues" : {
     541          "lease car" : "yes",
     542          "permanent contract" : "no",
     543          "career development opportunities" : "low",
     544          "fte" : "0.6",
     545          "salary" : "3500",
     546          "work from home" : "0"
     547        }
     548      }, {
     549        "issuevalues" : {
     550          "lease car" : "no",
     551          "permanent contract" : "no",
     552          "career development opportunities" : "high",
     553          "fte" : "0.6",
     554          "salary" : "3500",
     555          "work from home" : "1"
     556        }
     557      }, {
     558        "issuevalues" : {
     559          "lease car" : "no",
     560          "permanent contract" : "no",
     561          "career development opportunities" : "low",
     562          "fte" : "1.0",
     563          "salary" : "2000",
     564          "work from home" : "1"
     565        }
     566      }, {
     567        "issuevalues" : {
     568          "lease car" : "no",
     569          "permanent contract" : "no",
     570          "career development opportunities" : "high",
     571          "fte" : "1.0",
     572          "salary" : "3000",
     573          "work from home" : "0"
     574        }
     575      }, {
     576        "issuevalues" : {
     577          "lease car" : "no",
     578          "permanent contract" : "no",
     579          "career development opportunities" : "low",
     580          "fte" : "0.6",
     581          "salary" : "2000",
     582          "work from home" : "1"
     583        }
     584      }, {
     585        "issuevalues" : {
     586          "lease car" : "no",
     587          "permanent contract" : "no",
     588          "career development opportunities" : "medium",
     589          "fte" : "0.8",
     590          "salary" : "2000",
     591          "work from home" : "1"
     592        }
     593      }, {
     594        "issuevalues" : {
     595          "lease car" : "yes",
     596          "permanent contract" : "yes",
     597          "career development opportunities" : "high",
     598          "fte" : "0.6",
     599          "salary" : "2000",
     600          "work from home" : "1"
     601        }
     602      } ],
     603      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.8\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     604        "issuevalues" : {
     605          "lease car" : "no",
     606          "permanent contract" : "no",
     607          "career development opportunities" : "low",
     608          "fte" : "0.6",
     609          "salary" : "2000",
     610          "work from home" : "0"
     611        }
     612      }, {
     613        "issuevalues" : {
     614          "lease car" : "yes",
     615          "permanent contract" : "no",
     616          "career development opportunities" : "low",
     617          "fte" : "0.6",
     618          "salary" : "3500",
     619          "work from home" : "0"
     620        }
     621      }, {
     622        "issuevalues" : {
     623          "lease car" : "no",
     624          "permanent contract" : "no",
     625          "career development opportunities" : "high",
     626          "fte" : "0.6",
     627          "salary" : "3500",
     628          "work from home" : "1"
     629        }
     630      }, {
     631        "issuevalues" : {
     632          "lease car" : "no",
     633          "permanent contract" : "no",
     634          "career development opportunities" : "low",
     635          "fte" : "1.0",
     636          "salary" : "2000",
     637          "work from home" : "1"
     638        }
     639      }, {
     640        "issuevalues" : {
     641          "lease car" : "no",
     642          "permanent contract" : "no",
     643          "career development opportunities" : "high",
     644          "fte" : "1.0",
     645          "salary" : "3000",
     646          "work from home" : "0"
     647        }
     648      }, {
     649        "issuevalues" : {
     650          "lease car" : "no",
     651          "permanent contract" : "no",
     652          "career development opportunities" : "low",
     653          "fte" : "0.6",
     654          "salary" : "2000",
     655          "work from home" : "1"
     656        }
     657      }, {
     658        "issuevalues" : {
     659          "lease car" : "yes",
     660          "permanent contract" : "no",
     661          "career development opportunities" : "high",
     662          "fte" : "1.0",
     663          "salary" : "3000",
     664          "work from home" : "1"
     665        }
     666      }, {
     667        "issuevalues" : {
     668          "lease car" : "no",
     669          "permanent contract" : "no",
     670          "career development opportunities" : "medium",
     671          "fte" : "0.8",
     672          "salary" : "2000",
     673          "work from home" : "1"
     674        }
     675      }, {
     676        "issuevalues" : {
     677          "lease car" : "yes",
     678          "permanent contract" : "yes",
     679          "career development opportunities" : "high",
     680          "fte" : "0.6",
     681          "salary" : "2000",
     682          "work from home" : "1"
     683        }
     684      } ],
     685      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     686        "issuevalues" : {
     687          "lease car" : "no",
     688          "permanent contract" : "no",
     689          "career development opportunities" : "low",
     690          "fte" : "0.6",
     691          "salary" : "2000",
     692          "work from home" : "0"
     693        }
     694      }, {
     695        "issuevalues" : {
     696          "lease car" : "no",
     697          "permanent contract" : "no",
     698          "career development opportunities" : "low",
     699          "fte" : "0.6",
     700          "salary" : "2000",
     701          "work from home" : "1"
     702        }
     703      } ],
     704      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"1\"}}" : [ {
     705        "issuevalues" : {
     706          "lease car" : "no",
     707          "permanent contract" : "no",
     708          "career development opportunities" : "low",
     709          "fte" : "0.6",
     710          "salary" : "2000",
     711          "work from home" : "0"
     712        }
     713      }, {
     714        "issuevalues" : {
     715          "lease car" : "yes",
     716          "permanent contract" : "no",
     717          "career development opportunities" : "low",
     718          "fte" : "0.6",
     719          "salary" : "3500",
     720          "work from home" : "0"
     721        }
     722      }, {
     723        "issuevalues" : {
     724          "lease car" : "no",
     725          "permanent contract" : "no",
     726          "career development opportunities" : "high",
     727          "fte" : "0.6",
     728          "salary" : "3500",
     729          "work from home" : "1"
     730        }
     731      }, {
     732        "issuevalues" : {
     733          "lease car" : "no",
     734          "permanent contract" : "no",
     735          "career development opportunities" : "low",
     736          "fte" : "1.0",
     737          "salary" : "2000",
     738          "work from home" : "1"
     739        }
     740      }, {
     741        "issuevalues" : {
     742          "lease car" : "no",
     743          "permanent contract" : "no",
     744          "career development opportunities" : "high",
     745          "fte" : "1.0",
     746          "salary" : "3000",
     747          "work from home" : "0"
     748        }
     749      }, {
     750        "issuevalues" : {
     751          "lease car" : "no",
     752          "permanent contract" : "no",
     753          "career development opportunities" : "low",
     754          "fte" : "0.6",
     755          "salary" : "2000",
     756          "work from home" : "1"
     757        }
     758      }, {
     759        "issuevalues" : {
     760          "lease car" : "no",
     761          "permanent contract" : "no",
     762          "career development opportunities" : "medium",
     763          "fte" : "0.8",
     764          "salary" : "2000",
     765          "work from home" : "1"
     766        }
     767      } ],
     768      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.6\",\"salary\":\"2000\",\"work from home\":\"0\"}}" : [ ],
     769      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     770        "issuevalues" : {
     771          "lease car" : "no",
     772          "permanent contract" : "yes",
     773          "career development opportunities" : "high",
     774          "fte" : "1.0",
     775          "salary" : "2000",
     776          "work from home" : "2"
     777        }
     778      }, {
     779        "issuevalues" : {
     780          "lease car" : "yes",
     781          "permanent contract" : "no",
     782          "career development opportunities" : "low",
     783          "fte" : "0.6",
     784          "salary" : "3500",
     785          "work from home" : "0"
     786        }
     787      }, {
     788        "issuevalues" : {
     789          "lease car" : "no",
     790          "permanent contract" : "no",
     791          "career development opportunities" : "low",
     792          "fte" : "1.0",
     793          "salary" : "2000",
     794          "work from home" : "1"
     795        }
     796      }, {
     797        "issuevalues" : {
     798          "lease car" : "yes",
     799          "permanent contract" : "no",
     800          "career development opportunities" : "medium",
     801          "fte" : "1.0",
     802          "salary" : "3500",
     803          "work from home" : "1"
     804        }
     805      }, {
     806        "issuevalues" : {
     807          "lease car" : "no",
     808          "permanent contract" : "no",
     809          "career development opportunities" : "high",
     810          "fte" : "1.0",
     811          "salary" : "3000",
     812          "work from home" : "0"
     813        }
     814      }, {
     815        "issuevalues" : {
     816          "lease car" : "yes",
     817          "permanent contract" : "yes",
     818          "career development opportunities" : "medium",
     819          "fte" : "1.0",
     820          "salary" : "2500",
     821          "work from home" : "2"
     822        }
     823      }, {
     824        "issuevalues" : {
     825          "lease car" : "no",
     826          "permanent contract" : "no",
     827          "career development opportunities" : "low",
     828          "fte" : "0.6",
     829          "salary" : "2000",
     830          "work from home" : "1"
     831        }
     832      }, {
     833        "issuevalues" : {
     834          "lease car" : "yes",
     835          "permanent contract" : "no",
     836          "career development opportunities" : "high",
     837          "fte" : "1.0",
     838          "salary" : "3000",
     839          "work from home" : "1"
     840        }
     841      }, {
     842        "issuevalues" : {
     843          "lease car" : "yes",
     844          "permanent contract" : "no",
     845          "career development opportunities" : "high",
     846          "fte" : "0.8",
     847          "salary" : "3500",
     848          "work from home" : "1"
     849        }
     850      }, {
     851        "issuevalues" : {
     852          "lease car" : "no",
     853          "permanent contract" : "no",
     854          "career development opportunities" : "medium",
     855          "fte" : "0.8",
     856          "salary" : "2000",
     857          "work from home" : "1"
     858        }
     859      }, {
     860        "issuevalues" : {
     861          "lease car" : "yes",
     862          "permanent contract" : "yes",
     863          "career development opportunities" : "high",
     864          "fte" : "0.6",
     865          "salary" : "2000",
     866          "work from home" : "1"
     867        }
     868      }, {
     869        "issuevalues" : {
     870          "lease car" : "no",
     871          "permanent contract" : "no",
     872          "career development opportunities" : "low",
     873          "fte" : "0.6",
     874          "salary" : "2000",
     875          "work from home" : "0"
     876        }
     877      }, {
     878        "issuevalues" : {
     879          "lease car" : "yes",
     880          "permanent contract" : "no",
     881          "career development opportunities" : "low",
     882          "fte" : "0.8",
     883          "salary" : "4000",
     884          "work from home" : "2"
     885        }
     886      }, {
     887        "issuevalues" : {
     888          "lease car" : "no",
     889          "permanent contract" : "no",
     890          "career development opportunities" : "high",
     891          "fte" : "0.6",
     892          "salary" : "3500",
     893          "work from home" : "1"
     894        }
     895      }, {
     896        "issuevalues" : {
     897          "lease car" : "yes",
     898          "permanent contract" : "no",
     899          "career development opportunities" : "high",
     900          "fte" : "1.0",
     901          "salary" : "4000",
     902          "work from home" : "2"
     903        }
     904      }, {
     905        "issuevalues" : {
     906          "lease car" : "yes",
     907          "permanent contract" : "yes",
     908          "career development opportunities" : "medium",
     909          "fte" : "0.8",
     910          "salary" : "2500",
     911          "work from home" : "1"
     912        }
     913      }, {
     914        "issuevalues" : {
     915          "lease car" : "yes",
     916          "permanent contract" : "yes",
     917          "career development opportunities" : "medium",
     918          "fte" : "0.8",
     919          "salary" : "2500",
     920          "work from home" : "2"
     921        }
     922      }, {
     923        "issuevalues" : {
     924          "lease car" : "no",
     925          "permanent contract" : "yes",
     926          "career development opportunities" : "low",
     927          "fte" : "1.0",
     928          "salary" : "3500",
     929          "work from home" : "0"
     930        }
     931      } ],
     932      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"low\",\"fte\":\"0.8\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     933        "issuevalues" : {
     934          "lease car" : "no",
     935          "permanent contract" : "yes",
     936          "career development opportunities" : "high",
     937          "fte" : "1.0",
     938          "salary" : "2000",
     939          "work from home" : "2"
     940        }
     941      }, {
     942        "issuevalues" : {
     943          "lease car" : "no",
     944          "permanent contract" : "no",
     945          "career development opportunities" : "low",
     946          "fte" : "0.6",
     947          "salary" : "2000",
     948          "work from home" : "0"
     949        }
     950      }, {
     951        "issuevalues" : {
     952          "lease car" : "yes",
     953          "permanent contract" : "no",
     954          "career development opportunities" : "low",
     955          "fte" : "0.6",
     956          "salary" : "3500",
     957          "work from home" : "0"
     958        }
     959      }, {
     960        "issuevalues" : {
     961          "lease car" : "no",
     962          "permanent contract" : "no",
     963          "career development opportunities" : "high",
     964          "fte" : "0.6",
     965          "salary" : "3500",
     966          "work from home" : "1"
     967        }
     968      }, {
     969        "issuevalues" : {
     970          "lease car" : "no",
     971          "permanent contract" : "no",
     972          "career development opportunities" : "low",
     973          "fte" : "1.0",
     974          "salary" : "2000",
     975          "work from home" : "1"
     976        }
     977      }, {
     978        "issuevalues" : {
     979          "lease car" : "no",
     980          "permanent contract" : "no",
     981          "career development opportunities" : "high",
     982          "fte" : "1.0",
     983          "salary" : "3000",
     984          "work from home" : "0"
     985        }
     986      }, {
     987        "issuevalues" : {
     988          "lease car" : "yes",
     989          "permanent contract" : "yes",
     990          "career development opportunities" : "medium",
     991          "fte" : "0.8",
     992          "salary" : "2500",
     993          "work from home" : "1"
     994        }
     995      }, {
     996        "issuevalues" : {
     997          "lease car" : "no",
     998          "permanent contract" : "no",
     999          "career development opportunities" : "low",
     1000          "fte" : "0.6",
     1001          "salary" : "2000",
     1002          "work from home" : "1"
     1003        }
     1004      }, {
     1005        "issuevalues" : {
     1006          "lease car" : "yes",
     1007          "permanent contract" : "no",
     1008          "career development opportunities" : "high",
     1009          "fte" : "1.0",
     1010          "salary" : "3000",
     1011          "work from home" : "1"
     1012        }
     1013      }, {
     1014        "issuevalues" : {
     1015          "lease car" : "yes",
     1016          "permanent contract" : "no",
     1017          "career development opportunities" : "high",
     1018          "fte" : "0.8",
     1019          "salary" : "3500",
     1020          "work from home" : "1"
     1021        }
     1022      }, {
     1023        "issuevalues" : {
     1024          "lease car" : "no",
     1025          "permanent contract" : "no",
     1026          "career development opportunities" : "medium",
     1027          "fte" : "0.8",
     1028          "salary" : "2000",
     1029          "work from home" : "1"
     1030        }
     1031      }, {
     1032        "issuevalues" : {
     1033          "lease car" : "yes",
     1034          "permanent contract" : "yes",
     1035          "career development opportunities" : "high",
     1036          "fte" : "0.6",
     1037          "salary" : "2000",
     1038          "work from home" : "1"
     1039        }
     1040      } ],
     1041      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"0.6\",\"salary\":\"3500\",\"work from home\":\"1\"}}" : [ {
     1042        "issuevalues" : {
     1043          "lease car" : "no",
     1044          "permanent contract" : "no",
     1045          "career development opportunities" : "low",
     1046          "fte" : "0.6",
     1047          "salary" : "2000",
     1048          "work from home" : "0"
     1049        }
     1050      }, {
     1051        "issuevalues" : {
     1052          "lease car" : "yes",
     1053          "permanent contract" : "no",
     1054          "career development opportunities" : "low",
     1055          "fte" : "0.6",
     1056          "salary" : "3500",
     1057          "work from home" : "0"
     1058        }
     1059      }, {
     1060        "issuevalues" : {
     1061          "lease car" : "no",
     1062          "permanent contract" : "no",
     1063          "career development opportunities" : "low",
     1064          "fte" : "1.0",
     1065          "salary" : "2000",
     1066          "work from home" : "1"
     1067        }
     1068      }, {
     1069        "issuevalues" : {
     1070          "lease car" : "no",
     1071          "permanent contract" : "no",
     1072          "career development opportunities" : "low",
     1073          "fte" : "0.6",
     1074          "salary" : "2000",
     1075          "work from home" : "1"
     1076        }
     1077      }, {
     1078        "issuevalues" : {
     1079          "lease car" : "no",
     1080          "permanent contract" : "no",
     1081          "career development opportunities" : "medium",
     1082          "fte" : "0.8",
     1083          "salary" : "2000",
     1084          "work from home" : "1"
     1085        }
     1086      } ],
     1087      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1088        "issuevalues" : {
     1089          "lease car" : "no",
     1090          "permanent contract" : "yes",
     1091          "career development opportunities" : "high",
     1092          "fte" : "1.0",
     1093          "salary" : "2000",
     1094          "work from home" : "2"
     1095        }
     1096      }, {
     1097        "issuevalues" : {
     1098          "lease car" : "yes",
     1099          "permanent contract" : "no",
     1100          "career development opportunities" : "low",
     1101          "fte" : "0.6",
     1102          "salary" : "3500",
     1103          "work from home" : "0"
     1104        }
     1105      }, {
     1106        "issuevalues" : {
     1107          "lease car" : "no",
     1108          "permanent contract" : "no",
     1109          "career development opportunities" : "low",
     1110          "fte" : "1.0",
     1111          "salary" : "2000",
     1112          "work from home" : "1"
     1113        }
     1114      }, {
     1115        "issuevalues" : {
     1116          "lease car" : "yes",
     1117          "permanent contract" : "no",
     1118          "career development opportunities" : "medium",
     1119          "fte" : "1.0",
     1120          "salary" : "3500",
     1121          "work from home" : "1"
     1122        }
     1123      }, {
     1124        "issuevalues" : {
     1125          "lease car" : "no",
     1126          "permanent contract" : "no",
     1127          "career development opportunities" : "high",
     1128          "fte" : "1.0",
     1129          "salary" : "3000",
     1130          "work from home" : "0"
     1131        }
     1132      }, {
     1133        "issuevalues" : {
     1134          "lease car" : "yes",
     1135          "permanent contract" : "yes",
     1136          "career development opportunities" : "medium",
     1137          "fte" : "1.0",
     1138          "salary" : "2500",
     1139          "work from home" : "2"
     1140        }
     1141      }, {
     1142        "issuevalues" : {
     1143          "lease car" : "no",
     1144          "permanent contract" : "no",
     1145          "career development opportunities" : "low",
     1146          "fte" : "0.6",
     1147          "salary" : "2000",
     1148          "work from home" : "1"
     1149        }
     1150      }, {
     1151        "issuevalues" : {
     1152          "lease car" : "yes",
     1153          "permanent contract" : "no",
     1154          "career development opportunities" : "high",
     1155          "fte" : "1.0",
     1156          "salary" : "3000",
     1157          "work from home" : "1"
     1158        }
     1159      }, {
     1160        "issuevalues" : {
     1161          "lease car" : "yes",
     1162          "permanent contract" : "no",
     1163          "career development opportunities" : "high",
     1164          "fte" : "0.8",
     1165          "salary" : "3500",
     1166          "work from home" : "1"
     1167        }
     1168      }, {
     1169        "issuevalues" : {
     1170          "lease car" : "no",
     1171          "permanent contract" : "no",
     1172          "career development opportunities" : "medium",
     1173          "fte" : "0.8",
     1174          "salary" : "2000",
     1175          "work from home" : "1"
     1176        }
     1177      }, {
     1178        "issuevalues" : {
     1179          "lease car" : "yes",
     1180          "permanent contract" : "yes",
     1181          "career development opportunities" : "high",
     1182          "fte" : "0.6",
     1183          "salary" : "2000",
     1184          "work from home" : "1"
     1185        }
     1186      }, {
     1187        "issuevalues" : {
     1188          "lease car" : "no",
     1189          "permanent contract" : "no",
     1190          "career development opportunities" : "low",
     1191          "fte" : "0.6",
     1192          "salary" : "2000",
     1193          "work from home" : "0"
     1194        }
     1195      }, {
     1196        "issuevalues" : {
     1197          "lease car" : "yes",
     1198          "permanent contract" : "yes",
     1199          "career development opportunities" : "low",
     1200          "fte" : "0.8",
     1201          "salary" : "4000",
     1202          "work from home" : "2"
     1203        }
     1204      }, {
     1205        "issuevalues" : {
     1206          "lease car" : "yes",
     1207          "permanent contract" : "no",
     1208          "career development opportunities" : "low",
     1209          "fte" : "0.8",
     1210          "salary" : "4000",
     1211          "work from home" : "2"
     1212        }
     1213      }, {
     1214        "issuevalues" : {
     1215          "lease car" : "no",
     1216          "permanent contract" : "no",
     1217          "career development opportunities" : "high",
     1218          "fte" : "0.6",
     1219          "salary" : "3500",
     1220          "work from home" : "1"
     1221        }
     1222      }, {
     1223        "issuevalues" : {
     1224          "lease car" : "yes",
     1225          "permanent contract" : "no",
     1226          "career development opportunities" : "high",
     1227          "fte" : "1.0",
     1228          "salary" : "4000",
     1229          "work from home" : "2"
     1230        }
     1231      }, {
     1232        "issuevalues" : {
     1233          "lease car" : "yes",
     1234          "permanent contract" : "yes",
     1235          "career development opportunities" : "medium",
     1236          "fte" : "0.8",
     1237          "salary" : "2500",
     1238          "work from home" : "1"
     1239        }
     1240      }, {
     1241        "issuevalues" : {
     1242          "lease car" : "yes",
     1243          "permanent contract" : "yes",
     1244          "career development opportunities" : "medium",
     1245          "fte" : "0.8",
     1246          "salary" : "2500",
     1247          "work from home" : "2"
     1248        }
     1249      }, {
     1250        "issuevalues" : {
     1251          "lease car" : "no",
     1252          "permanent contract" : "yes",
     1253          "career development opportunities" : "low",
     1254          "fte" : "1.0",
     1255          "salary" : "3500",
     1256          "work from home" : "0"
     1257        }
     1258      } ],
     1259      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"no\",\"career development opportunities\":\"high\",\"fte\":\"1.0\",\"salary\":\"4000\",\"work from home\":\"2\"}}" : [ {
     1260        "issuevalues" : {
     1261          "lease car" : "no",
     1262          "permanent contract" : "yes",
     1263          "career development opportunities" : "high",
     1264          "fte" : "1.0",
     1265          "salary" : "2000",
     1266          "work from home" : "2"
     1267        }
     1268      }, {
     1269        "issuevalues" : {
     1270          "lease car" : "yes",
     1271          "permanent contract" : "no",
     1272          "career development opportunities" : "low",
     1273          "fte" : "0.6",
     1274          "salary" : "3500",
     1275          "work from home" : "0"
     1276        }
     1277      }, {
     1278        "issuevalues" : {
     1279          "lease car" : "no",
     1280          "permanent contract" : "no",
     1281          "career development opportunities" : "low",
     1282          "fte" : "1.0",
     1283          "salary" : "2000",
     1284          "work from home" : "1"
     1285        }
     1286      }, {
     1287        "issuevalues" : {
     1288          "lease car" : "yes",
     1289          "permanent contract" : "no",
     1290          "career development opportunities" : "medium",
     1291          "fte" : "1.0",
     1292          "salary" : "3500",
     1293          "work from home" : "1"
     1294        }
     1295      }, {
     1296        "issuevalues" : {
     1297          "lease car" : "no",
     1298          "permanent contract" : "no",
     1299          "career development opportunities" : "high",
     1300          "fte" : "1.0",
     1301          "salary" : "3000",
     1302          "work from home" : "0"
     1303        }
     1304      }, {
     1305        "issuevalues" : {
     1306          "lease car" : "yes",
     1307          "permanent contract" : "yes",
     1308          "career development opportunities" : "medium",
     1309          "fte" : "1.0",
     1310          "salary" : "2500",
     1311          "work from home" : "2"
     1312        }
     1313      }, {
     1314        "issuevalues" : {
     1315          "lease car" : "no",
     1316          "permanent contract" : "no",
     1317          "career development opportunities" : "low",
     1318          "fte" : "0.6",
     1319          "salary" : "2000",
     1320          "work from home" : "1"
     1321        }
     1322      }, {
     1323        "issuevalues" : {
     1324          "lease car" : "yes",
     1325          "permanent contract" : "no",
     1326          "career development opportunities" : "high",
     1327          "fte" : "1.0",
     1328          "salary" : "3000",
     1329          "work from home" : "1"
     1330        }
     1331      }, {
     1332        "issuevalues" : {
     1333          "lease car" : "yes",
     1334          "permanent contract" : "no",
     1335          "career development opportunities" : "high",
     1336          "fte" : "0.8",
     1337          "salary" : "3500",
     1338          "work from home" : "1"
     1339        }
     1340      }, {
     1341        "issuevalues" : {
     1342          "lease car" : "no",
     1343          "permanent contract" : "no",
     1344          "career development opportunities" : "medium",
     1345          "fte" : "0.8",
     1346          "salary" : "2000",
     1347          "work from home" : "1"
     1348        }
     1349      }, {
     1350        "issuevalues" : {
     1351          "lease car" : "yes",
     1352          "permanent contract" : "yes",
     1353          "career development opportunities" : "high",
     1354          "fte" : "0.6",
     1355          "salary" : "2000",
     1356          "work from home" : "1"
     1357        }
     1358      }, {
     1359        "issuevalues" : {
     1360          "lease car" : "no",
     1361          "permanent contract" : "no",
     1362          "career development opportunities" : "low",
     1363          "fte" : "0.6",
     1364          "salary" : "2000",
     1365          "work from home" : "0"
     1366        }
     1367      }, {
     1368        "issuevalues" : {
     1369          "lease car" : "yes",
     1370          "permanent contract" : "no",
     1371          "career development opportunities" : "low",
     1372          "fte" : "0.8",
     1373          "salary" : "4000",
     1374          "work from home" : "2"
     1375        }
     1376      }, {
     1377        "issuevalues" : {
     1378          "lease car" : "no",
     1379          "permanent contract" : "no",
     1380          "career development opportunities" : "high",
     1381          "fte" : "0.6",
     1382          "salary" : "3500",
     1383          "work from home" : "1"
     1384        }
     1385      }, {
     1386        "issuevalues" : {
     1387          "lease car" : "yes",
     1388          "permanent contract" : "yes",
     1389          "career development opportunities" : "medium",
     1390          "fte" : "0.8",
     1391          "salary" : "2500",
     1392          "work from home" : "1"
     1393        }
     1394      }, {
     1395        "issuevalues" : {
     1396          "lease car" : "yes",
     1397          "permanent contract" : "yes",
     1398          "career development opportunities" : "medium",
     1399          "fte" : "0.8",
     1400          "salary" : "2500",
     1401          "work from home" : "2"
     1402        }
     1403      }, {
     1404        "issuevalues" : {
     1405          "lease car" : "no",
     1406          "permanent contract" : "yes",
     1407          "career development opportunities" : "low",
     1408          "fte" : "1.0",
     1409          "salary" : "3500",
     1410          "work from home" : "0"
     1411        }
     1412      } ],
     1413      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"1\"}}" : [ {
     1414        "issuevalues" : {
     1415          "lease car" : "no",
     1416          "permanent contract" : "no",
     1417          "career development opportunities" : "low",
     1418          "fte" : "0.6",
     1419          "salary" : "2000",
     1420          "work from home" : "0"
     1421        }
     1422      }, {
     1423        "issuevalues" : {
     1424          "lease car" : "yes",
     1425          "permanent contract" : "no",
     1426          "career development opportunities" : "low",
     1427          "fte" : "0.6",
     1428          "salary" : "3500",
     1429          "work from home" : "0"
     1430        }
     1431      }, {
     1432        "issuevalues" : {
     1433          "lease car" : "no",
     1434          "permanent contract" : "no",
     1435          "career development opportunities" : "high",
     1436          "fte" : "0.6",
     1437          "salary" : "3500",
     1438          "work from home" : "1"
     1439        }
     1440      }, {
     1441        "issuevalues" : {
     1442          "lease car" : "no",
     1443          "permanent contract" : "no",
     1444          "career development opportunities" : "low",
     1445          "fte" : "1.0",
     1446          "salary" : "2000",
     1447          "work from home" : "1"
     1448        }
     1449      }, {
     1450        "issuevalues" : {
     1451          "lease car" : "no",
     1452          "permanent contract" : "no",
     1453          "career development opportunities" : "high",
     1454          "fte" : "1.0",
     1455          "salary" : "3000",
     1456          "work from home" : "0"
     1457        }
     1458      }, {
     1459        "issuevalues" : {
     1460          "lease car" : "no",
     1461          "permanent contract" : "no",
     1462          "career development opportunities" : "low",
     1463          "fte" : "0.6",
     1464          "salary" : "2000",
     1465          "work from home" : "1"
     1466        }
     1467      }, {
     1468        "issuevalues" : {
     1469          "lease car" : "yes",
     1470          "permanent contract" : "no",
     1471          "career development opportunities" : "high",
     1472          "fte" : "1.0",
     1473          "salary" : "3000",
     1474          "work from home" : "1"
     1475        }
     1476      }, {
     1477        "issuevalues" : {
     1478          "lease car" : "yes",
     1479          "permanent contract" : "no",
     1480          "career development opportunities" : "high",
     1481          "fte" : "0.8",
     1482          "salary" : "3500",
     1483          "work from home" : "1"
     1484        }
     1485      }, {
     1486        "issuevalues" : {
     1487          "lease car" : "no",
     1488          "permanent contract" : "no",
     1489          "career development opportunities" : "medium",
     1490          "fte" : "0.8",
     1491          "salary" : "2000",
     1492          "work from home" : "1"
     1493        }
     1494      }, {
     1495        "issuevalues" : {
     1496          "lease car" : "yes",
     1497          "permanent contract" : "yes",
     1498          "career development opportunities" : "high",
     1499          "fte" : "0.6",
     1500          "salary" : "2000",
     1501          "work from home" : "1"
     1502        }
     1503      } ],
     1504      "{\"issuevalues\":{\"lease car\":\"yes\",\"permanent contract\":\"yes\",\"career development opportunities\":\"medium\",\"fte\":\"0.8\",\"salary\":\"2500\",\"work from home\":\"2\"}}" : [ {
     1505        "issuevalues" : {
     1506          "lease car" : "no",
     1507          "permanent contract" : "yes",
     1508          "career development opportunities" : "high",
     1509          "fte" : "1.0",
     1510          "salary" : "2000",
     1511          "work from home" : "2"
     1512        }
     1513      }, {
     1514        "issuevalues" : {
     1515          "lease car" : "no",
     1516          "permanent contract" : "no",
     1517          "career development opportunities" : "low",
     1518          "fte" : "0.6",
     1519          "salary" : "2000",
     1520          "work from home" : "0"
     1521        }
     1522      }, {
     1523        "issuevalues" : {
     1524          "lease car" : "yes",
     1525          "permanent contract" : "no",
     1526          "career development opportunities" : "low",
     1527          "fte" : "0.6",
     1528          "salary" : "3500",
     1529          "work from home" : "0"
     1530        }
     1531      }, {
     1532        "issuevalues" : {
     1533          "lease car" : "no",
     1534          "permanent contract" : "no",
     1535          "career development opportunities" : "high",
     1536          "fte" : "0.6",
     1537          "salary" : "3500",
     1538          "work from home" : "1"
     1539        }
     1540      }, {
     1541        "issuevalues" : {
     1542          "lease car" : "no",
     1543          "permanent contract" : "no",
     1544          "career development opportunities" : "low",
     1545          "fte" : "1.0",
     1546          "salary" : "2000",
     1547          "work from home" : "1"
     1548        }
     1549      }, {
     1550        "issuevalues" : {
     1551          "lease car" : "no",
     1552          "permanent contract" : "no",
     1553          "career development opportunities" : "high",
     1554          "fte" : "1.0",
     1555          "salary" : "3000",
     1556          "work from home" : "0"
     1557        }
     1558      }, {
     1559        "issuevalues" : {
     1560          "lease car" : "yes",
     1561          "permanent contract" : "yes",
     1562          "career development opportunities" : "medium",
     1563          "fte" : "0.8",
     1564          "salary" : "2500",
     1565          "work from home" : "1"
     1566        }
     1567      }, {
     1568        "issuevalues" : {
     1569          "lease car" : "no",
     1570          "permanent contract" : "no",
     1571          "career development opportunities" : "low",
     1572          "fte" : "0.6",
     1573          "salary" : "2000",
     1574          "work from home" : "1"
     1575        }
     1576      }, {
     1577        "issuevalues" : {
     1578          "lease car" : "yes",
     1579          "permanent contract" : "no",
     1580          "career development opportunities" : "high",
     1581          "fte" : "1.0",
     1582          "salary" : "3000",
     1583          "work from home" : "1"
     1584        }
     1585      }, {
     1586        "issuevalues" : {
     1587          "lease car" : "yes",
     1588          "permanent contract" : "no",
     1589          "career development opportunities" : "high",
     1590          "fte" : "0.8",
     1591          "salary" : "3500",
     1592          "work from home" : "1"
     1593        }
     1594      }, {
     1595        "issuevalues" : {
     1596          "lease car" : "no",
     1597          "permanent contract" : "no",
     1598          "career development opportunities" : "medium",
     1599          "fte" : "0.8",
     1600          "salary" : "2000",
     1601          "work from home" : "1"
     1602        }
     1603      }, {
     1604        "issuevalues" : {
     1605          "lease car" : "yes",
     1606          "permanent contract" : "yes",
     1607          "career development opportunities" : "high",
     1608          "fte" : "0.6",
     1609          "salary" : "2000",
     1610          "work from home" : "1"
     1611        }
     1612      } ],
     1613      "{\"issuevalues\":{\"lease car\":\"no\",\"permanent contract\":\"yes\",\"career development opportunities\":\"low\",\"fte\":\"1.0\",\"salary\":\"3500\",\"work from home\":\"0\"}}" : [ {
     1614        "issuevalues" : {
     1615          "lease car" : "no",
     1616          "permanent contract" : "yes",
     1617          "career development opportunities" : "high",
     1618          "fte" : "1.0",
     1619          "salary" : "2000",
     1620          "work from home" : "2"
     1621        }
     1622      }, {
     1623        "issuevalues" : {
     1624          "lease car" : "yes",
     1625          "permanent contract" : "no",
     1626          "career development opportunities" : "low",
     1627          "fte" : "0.6",
     1628          "salary" : "3500",
     1629          "work from home" : "0"
     1630        }
     1631      }, {
     1632        "issuevalues" : {
     1633          "lease car" : "no",
     1634          "permanent contract" : "no",
     1635          "career development opportunities" : "low",
     1636          "fte" : "1.0",
     1637          "salary" : "2000",
     1638          "work from home" : "1"
     1639        }
     1640      }, {
     1641        "issuevalues" : {
     1642          "lease car" : "yes",
     1643          "permanent contract" : "no",
     1644          "career development opportunities" : "medium",
     1645          "fte" : "1.0",
     1646          "salary" : "3500",
     1647          "work from home" : "1"
     1648        }
     1649      }, {
     1650        "issuevalues" : {
     1651          "lease car" : "no",
     1652          "permanent contract" : "no",
     1653          "career development opportunities" : "high",
     1654          "fte" : "1.0",
     1655          "salary" : "3000",
     1656          "work from home" : "0"
     1657        }
     1658      }, {
     1659        "issuevalues" : {
     1660          "lease car" : "no",
     1661          "permanent contract" : "no",
     1662          "career development opportunities" : "low",
     1663          "fte" : "0.6",
     1664          "salary" : "2000",
     1665          "work from home" : "1"
     1666        }
     1667      }, {
     1668        "issuevalues" : {
     1669          "lease car" : "yes",
     1670          "permanent contract" : "no",
     1671          "career development opportunities" : "high",
     1672          "fte" : "1.0",
     1673          "salary" : "3000",
     1674          "work from home" : "1"
     1675        }
     1676      }, {
     1677        "issuevalues" : {
     1678          "lease car" : "yes",
     1679          "permanent contract" : "no",
     1680          "career development opportunities" : "high",
     1681          "fte" : "0.8",
     1682          "salary" : "3500",
     1683          "work from home" : "1"
     1684        }
     1685      }, {
     1686        "issuevalues" : {
     1687          "lease car" : "no",
     1688          "permanent contract" : "no",
     1689          "career development opportunities" : "medium",
     1690          "fte" : "0.8",
     1691          "salary" : "2000",
     1692          "work from home" : "1"
     1693        }
     1694      }, {
     1695        "issuevalues" : {
     1696          "lease car" : "yes",
     1697          "permanent contract" : "yes",
     1698          "career development opportunities" : "high",
     1699          "fte" : "0.6",
     1700          "salary" : "2000",
     1701          "work from home" : "1"
     1702        }
     1703      }, {
     1704        "issuevalues" : {
     1705          "lease car" : "no",
     1706          "permanent contract" : "no",
     1707          "career development opportunities" : "low",
     1708          "fte" : "0.6",
     1709          "salary" : "2000",
     1710          "work from home" : "0"
     1711        }
     1712      }, {
     1713        "issuevalues" : {
     1714          "lease car" : "yes",
     1715          "permanent contract" : "no",
     1716          "career development opportunities" : "low",
     1717          "fte" : "0.8",
     1718          "salary" : "4000",
     1719          "work from home" : "2"
     1720        }
     1721      }, {
     1722        "issuevalues" : {
     1723          "lease car" : "no",
     1724          "permanent contract" : "no",
     1725          "career development opportunities" : "high",
     1726          "fte" : "0.6",
     1727          "salary" : "3500",
     1728          "work from home" : "1"
     1729        }
     1730      }, {
     1731        "issuevalues" : {
     1732          "lease car" : "yes",
     1733          "permanent contract" : "yes",
     1734          "career development opportunities" : "medium",
     1735          "fte" : "0.8",
     1736          "salary" : "2500",
     1737          "work from home" : "1"
     1738        }
     1739      }, {
     1740        "issuevalues" : {
     1741          "lease car" : "yes",
     1742          "permanent contract" : "yes",
     1743          "career development opportunities" : "medium",
     1744          "fte" : "0.8",
     1745          "salary" : "2500",
     1746          "work from home" : "2"
     1747        }
     1748      } ]
     1749    },
     1750    "reservationbid" : {
     1751      "issuevalues" : {
     1752        "lease car" : "no",
     1753        "permanent contract" : "yes",
     1754        "career development opportunities" : "medium",
     1755        "fte" : "0.8",
     1756        "salary" : "3500",
     1757        "work from home" : "1"
     1758      }
     1759    }
     1760  }
    4031761}
  • protocol/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>protocol</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    5656                        <groupId>tudelft.utilities</groupId>
    5757                        <artifactId>utilities</artifactId>
    58                         <version>1.2.1</version>
     58                        <version>1.3.1</version>
    5959                </dependency>
    6060                <dependency>
  • protocol/src/main/java/geniusweb/protocol/tournament/allpermutationslearn/AllPermutationsLearnSettings.java

    r52 r53  
    147147                                        (parties, flocs) -> createSetting(parties, flocs),
    148148                                        partylistlist, filelocs);
    149                         settings = new JoinedList<SessionSettings>(settings,
    150                                         getLearnSessions(filelocs, partylistlist));
     149                        settings = new JoinedList<SessionSettings>(Arrays.asList(settings,
     150                                        getLearnSessions(filelocs, partylistlist)));
    151151                        allSettings = allSettings == null ? settings
    152                                         : new JoinedList<SessionSettings>(allSettings, settings);
     152                                        : new JoinedList<SessionSettings>(
     153                                                        Arrays.asList(allSettings, settings));
    153154                }
    154155
  • pythonadapter/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>pythonadapter</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • references/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>references</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    3232                        <groupId>tudelft.utilities</groupId>
    3333                        <artifactId>utilities</artifactId>
    34                         <version>1.2.1</version>
     34                        <version>1.3.1</version>
    3535                </dependency>
    3636                <!-- the core, which includes Streaming API, shared low-level abstractions
  • simplerunner/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>simplerunner</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • timeline/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>timeline</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
  • voting/pom.xml

    r52 r53  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>voting</artifactId>
    8         <version>2.1.6</version>
     8        <version>2.2.1</version>  <!-- equals the geniusweb version -->
    99        <packaging>jar</packaging>
    1010
     
    4242                        <groupId>tudelft.utilities</groupId>
    4343                        <artifactId>utilities</artifactId>
    44                         <version>1.2.1</version>
     44                        <version>1.3.1</version>
    4545                </dependency>
    4646                <!-- the core, which includes Streaming API, shared low-level abstractions
Note: See TracChangeset for help on using the changeset viewer.