Changeset 20


Ignore:
Timestamp:
08/05/20 09:42:15 (4 years ago)
Author:
bart
Message:

Added BOA support, some bug fixes

Files:
75 added
42 edited

Legend:

Unmodified
Added
Removed
  • bidspace/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>bidspace</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1616                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1717                <jackson-2-version>2.9.10</jackson-2-version>
    18                 <geniusweb.version>1.4.2</geniusweb.version>
     18                <geniusweb.version>1.4.4</geniusweb.version>
    1919        </properties>
    2020
  • events/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>events</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/anac2019/agentgg/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>agentgg</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/anac2019/winkyagent/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties.anac2019</groupId>
    77        <artifactId>winkyagent</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/boulware/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>boulware</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
     
    3434                        <groupId>geniusweb.exampleparties</groupId>
    3535                        <artifactId>timedependentparty</artifactId>
    36                         <version>1.4.1</version> <!-- must equal ${geniusweb.version} -->
     36                        <version>${geniusweb.version}</version>
    3737                </dependency>
    3838                <dependency>
  • exampleparties/comparebids/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>comparebids</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/conceder/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>conceder</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/hardliner/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>hardliner</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/humangui/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>humangui</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/linear/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>linear</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/pom.xml

    r12 r20  
    2727                <module>comparebids</module>
    2828                <module>anac2019</module>
     29                <module>simpleboa</module>
    2930        </modules>
    3031</project>
  • exampleparties/randomparty/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randomparty</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/randompartypy/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>randompyparty</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/simpleshaop/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>simpleshaop</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.6</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/timedependentparty/pom.xml

    r19 r20  
    66        <groupId>geniusweb.exampleparties</groupId>
    77        <artifactId>timedependentparty</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • exampleparties/timedependentparty/src/main/java/geniusweb/exampleparties/timedependentparty/TimeDependentParty.java

    r18 r20  
    126126
    127127                Action myAction;
    128                 if (bid == null || lastReceivedBid != null
     128                if (bid == null || (lastReceivedBid != null
    129129                                && utilspace.getUtility(lastReceivedBid)
    130                                                 .compareTo(utilspace.getUtility(bid)) >= 0) {
     130                                                .compareTo(utilspace.getUtility(bid)) >= 0)) {
    131131                        // if bid==null we failed to suggest next bid.
    132132                        myAction = new Accept(me, lastReceivedBid);
     
    155155                BigDecimal utilityGoal = utilityGoal(time, getE());
    156156                ImmutableList<Bid> options = extendedspace.getBids(utilityGoal);
    157                 if (options.size() == BigInteger.ZERO)
    158                         return null;
     157                if (options.size() == BigInteger.ZERO) {
     158                        // if we can't find good bid, get max util bid....
     159                        options = extendedspace.getBids(extendedspace.getMax());
     160                }
    159161                // pick a random one.
    160162                return options.get(new Random().nextInt(options.size().intValue()));
  • issuevalue/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>issuevalue</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • opponentmodel/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>opponentmodel</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • opponentmodel/src/main/java/geniusweb/opponentmodel/FrequencyOpponentModel.java

    r18 r20  
    2424 * (as you might expect as {@link NumberValueSetUtilities} is only affected by
    2525 * the endpoints).
    26  *
     26 * <p>
     27 * immutable.
    2728 */
    2829public class FrequencyOpponentModel implements UtilitySpace, OpponentModel {
    2930
    3031        private static final int DECIMALS = 4; // accuracy of our computations.
     32        private static int serial = 1; // counter for auto name generation
     33
    3134        private final Domain domain;
    3235        private final Map<String, Map<Value, Integer>> bidFrequencies;
    3336        private final BigDecimal totalBids;
    34         private static int serial = 1; // counter for auto name generation
    35 
    36         public FrequencyOpponentModel(Domain domain) {
    37                 /*
    38                  * simply reset the whole model and make a new one... maybe this can be
    39                  * done smarter for minor changes? map with empth hashmap for each
    40                  * issue.
    41                  */
    42                 this(domain,
     37
     38        public FrequencyOpponentModel() {
     39                this.domain = null;
     40                this.bidFrequencies = null;
     41                this.totalBids = BigDecimal.ZERO;
     42        }
     43
     44        @Override
     45        public FrequencyOpponentModel with(Domain domain, Bid resBid) {
     46                // FIXME merge already available frequencies?
     47                return new FrequencyOpponentModel(domain,
    4348                                domain.getIssues().stream().collect(
    4449                                                Collectors.toMap(iss -> iss, iss -> new HashMap<>())),
     
    115120        }
    116121
    117         /**
    118          * {@inheritDoc}
    119          *
    120          * <h1>change info</h1> This replaces update(Bid). Now you pass the entire
    121          * action and the progress instead of just the bid.
    122          */
    123122        @Override
    124123        public FrequencyOpponentModel with(Action action, Progress progress) {
     
    127126
    128127                Bid bid = ((Offer) action).getBid();
    129                 String err = domain.isComplete(bid);
    130                 if (err != null) {
    131                         throw new IllegalArgumentException(err);
    132                 }
    133128                Map<String, Map<Value, Integer>> newFreqs = cloneMap(bidFrequencies);
    134129                for (String issue : domain.getIssues()) {
    135130                        Map<Value, Integer> freqs = newFreqs.get(issue);
    136131                        Value value = bid.getValue(issue);
    137                         Integer oldfreq = freqs.get(value);
    138                         if (oldfreq == null) {
    139                                 oldfreq = 0;
     132                        if (value != null) {
     133                                Integer oldfreq = freqs.get(value);
     134                                if (oldfreq == null) {
     135                                        oldfreq = 0;
     136                                }
     137                                freqs.put(value, oldfreq + 1);
    140138                        }
    141                         freqs.put(value, oldfreq + 1);
    142139                }
    143140
  • opponentmodel/src/main/java/geniusweb/opponentmodel/OpponentModel.java

    r18 r20  
    22
    33import geniusweb.actions.Action;
     4import geniusweb.issuevalue.Bid;
    45import geniusweb.issuevalue.Domain;
    56import geniusweb.profile.Profile;
     
    1314 * Domain as argument. unfortunately this can not be enforced in a java
    1415 * interface
     16 *
     17 * <p>
     18 * <em>MUST</em> have an empty constructor as these are also used as part of the
     19 * BOA framework.
     20 *
    1521 */
    1622public interface OpponentModel extends Profile {
     23
     24        /**
     25         * Initializes the model. This function must be called first after
     26         * constructing an instance. It can also be called later, if there is a
     27         * change in the domain or resBid.
     28         *
     29         * @param domain the domain to work with
     30         * @param resBid the reservation bid, or null if no reservationbid is
     31         *               available.
     32         * @return OpponentModel that uses given domain and reservationbid.
     33         *
     34         */
     35        OpponentModel with(Domain domain, Bid resBid);
    1736
    1837        /**
  • opponentmodel/src/test/java/geniusweb/profile/opponentmodel/FrequencyOppModelTest.java

    r18 r20  
    8787                bid3 = new Bid(issuevalues);
    8888
    89                 oppModel1 = new FrequencyOpponentModel(domain);
    90                 oppModel1b = new FrequencyOpponentModel(domain);
    91                 oppModel2 = new FrequencyOpponentModel(domain2);
    92                 oppModel3 = new FrequencyOpponentModel(domain3);
     89                oppModel1 = new FrequencyOpponentModel().with(domain, null);
     90                oppModel1b = new FrequencyOpponentModel().with(domain, null);
     91                oppModel2 = new FrequencyOpponentModel().with(domain2, null);
     92                oppModel3 = new FrequencyOpponentModel().with(domain3, null);
    9393                oppModel4 = oppModel3.with(new Offer(other, bid1), progress);
    9494
     
    113113        @Test(expected = NullPointerException.class)
    114114        public void smokeTestNull() {
    115                 new FrequencyOpponentModel(null);
     115                new FrequencyOpponentModel().with((Domain) null, null);
    116116        }
    117117
    118118        @Test
    119119        public void smokeTest() {
    120                 new FrequencyOpponentModel(domain);
     120                new FrequencyOpponentModel().with(domain, null);
    121121        }
    122122
    123123        @Test
    124124        public void testEmptyModel() {
    125                 FrequencyOpponentModel oppModel = new FrequencyOpponentModel(domain);
     125                FrequencyOpponentModel oppModel = new FrequencyOpponentModel()
     126                                .with(domain, null);
    126127                assertEquals(BigDecimal.ONE, oppModel.getUtility(bid1));
    127128                assertEquals(BigDecimal.ONE, oppModel.getUtility(bid2));
     
    153154        }
    154155
     156        @Test
     157        public void testPartialBidUpdate() {
     158                FrequencyOpponentModel oppModel = oppModel1.with(new Offer(other, bid1),
     159                                progress);
     160                Bid partialbid = new Bid(ISS1, I1V1);
     161                oppModel.with(new Offer(other, partialbid), progress);
     162        }
     163
    155164}
  • party/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>party</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • pom.xml

    r14 r20  
    3030                <module>simplerunner</module>
    3131                <module>opponentmodel</module>
     32                <module>boa</module>
    3233        </modules>
    3334</project>
  • profile/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profile</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • profile/src/test/java/geniusweb/profile/utilityspace/LinearAdditiveSerializationTest.java

    r7 r20  
    2727
    2828public class LinearAdditiveSerializationTest {
     29
    2930        private static final BigDecimal VAL2 = new BigDecimal("0.2");
    3031        private static final BigDecimal VAL3 = new BigDecimal("0.3");
     
    106107        @Test
    107108        public void testSerialize() throws JsonProcessingException {
    108                 ObjectMapper jackson = new ObjectMapper();
    109109                String string = jackson.writeValueAsString(space);
    110110                System.out.println(string);
     
    114114        @Test
    115115        public void testDeserialize() throws IOException {
    116                 ObjectMapper jackson = new ObjectMapper();
    117116                assertEquals(space, jackson.readValue(serialized, Profile.class));
    118117        }
     
    120119        @Test(expected = InvalidDefinitionException.class)
    121120        public void testDeserializeWrongIssues() throws IOException {
    122                 ObjectMapper jackson = new ObjectMapper();
    123121                jackson.readValue(serializedWrongIssues, Profile.class);
    124122        }
  • profileconnection/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>profileconnection</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • profileconnection/src/main/java/geniusweb/profileconnection/WebsocketProfileConnector.java

    r11 r20  
    4949                this.uri = uri;
    5050                this.logger = reporter;
     51                // see #1763 expected max size of profiles.
     52                wscontainer.setDefaultMaxTextMessageBufferSize(200000);
    5153                wscontainer.connectToServer(this, uri);
    5254        }
  • protocol/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>protocol</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • protocol/src/main/java/geniusweb/protocol/session/SessionState.java

    r11 r20  
    6565         */
    6666        Bid getAgreement();
     67
     68        /**
     69         *
     70         * @return the {@link SessionResult}. Assumes {@link #isFinal(long)}. result
     71         *         may be undefined if not.
     72         */
     73        SessionResult getResult();
    6774}
  • protocol/src/main/java/geniusweb/protocol/session/saop/SAOPState.java

    r10 r20  
    1919import geniusweb.protocol.partyconnection.ProtocolToPartyConnections;
    2020import geniusweb.protocol.session.DefaultSessionState;
     21import geniusweb.protocol.session.SessionResult;
    2122import geniusweb.protocol.session.SessionSettings;
    2223import geniusweb.references.PartyWithProfile;
     
    248249        }
    249250
     251        @Override
     252        public SessionResult getResult() {
     253                List<Double> emptylist = new LinkedList<>();
     254                for (int n = 0; n < getConnections().size(); n++)
     255                        emptylist.add(0d);
     256                return new SessionResult(getSettings().getAllParties(), getAgreement(),
     257                                emptylist, getError());
     258        }
     259
    250260}
  • protocol/src/main/java/geniusweb/protocol/session/shaop/BareSHAOPState.java

    r18 r20  
    11package geniusweb.protocol.session.shaop;
    22
     3import java.util.Arrays;
    34import java.util.Collections;
    45import java.util.LinkedList;
     
    1314import geniusweb.protocol.ProtocolException;
    1415import geniusweb.protocol.partyconnection.ProtocolToPartyConnections;
     16import geniusweb.protocol.session.SessionResult;
    1517import geniusweb.protocol.session.SessionSettings;
    1618import geniusweb.protocol.session.SessionState;
     
    169171
    170172        @Override
     173        public SessionResult getResult() {
     174                Double[] penalties = new Double[partyNumbers.size()];
     175                for (PartyId party : partyNumbers.keySet()) {
     176                        Double spent = totalSpent.get(party);
     177                        if (spent == null) {
     178                                spent = 0d;
     179                        } else {
     180                                spent = Math.max(0, Math.min(1.0, spent));
     181                        }
     182                        penalties[partyNumbers.get(party)] = spent;
     183                }
     184                return new SessionResult(getSettings().getAllParties(), getAgreement(),
     185                                Arrays.asList(penalties), getError());
     186
     187        }
     188
     189        @Override
    171190        public int hashCode() {
    172191                final int prime = 31;
  • protocol/src/main/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsProtocol.java

    r10 r20  
    66import geniusweb.events.TournamentStarted;
    77import geniusweb.protocol.CurrentNegoState;
    8 import geniusweb.protocol.SessionResult;
    98import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
    109import geniusweb.protocol.session.SessionProtocol;
     10import geniusweb.protocol.session.SessionResult;
    1111import geniusweb.protocol.session.SessionSettings;
    1212import geniusweb.protocol.session.SessionState;
     
    8383                                // List<TeamOfPartiesAndProfiles> participants =
    8484                                // sessionstate.getSettings().getParticipants()
    85                                 SessionResult result = new SessionResult(
    86                                                 sessionstate.getSettings().getAllParties(),
    87                                                 sessionstate.getAgreement(), sessionstate.getError());
     85                                SessionResult result = sessionstate.getResult();
    8886                                state = state.with(result);
    8987                                notifyListeners(new CurrentNegoState(state));
  • protocol/src/main/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsState.java

    r10 r20  
    66
    77import geniusweb.protocol.ProtocolException;
    8 import geniusweb.protocol.SessionResult;
     8import geniusweb.protocol.session.SessionResult;
    99import geniusweb.protocol.session.SessionSettings;
    1010import geniusweb.protocol.tournament.TournamentState;
  • protocol/src/test/java/geniusweb/protocol/session/DefaultSessionStateTest.java

    r10 r20  
    139139        }
    140140
     141        @Override
     142        public SessionResult getResult() {
     143
     144                List<Double> emptylist = new LinkedList<>();
     145                for (int n = 0; n < getConnections().size(); n++)
     146                        emptylist.add(0d);
     147                return new SessionResult(getSettings().getAllParties(), getAgreement(),
     148                                emptylist, getError());
     149
     150        }
     151
    141152}
  • protocol/src/test/java/geniusweb/protocol/session/SessionResultTest.java

    r8 r20  
    1919import geniusweb.issuevalue.DiscreteValue;
    2020import geniusweb.issuevalue.Value;
    21 import geniusweb.protocol.SessionResult;
    2221import geniusweb.references.Parameters;
    2322import geniusweb.references.PartyRef;
     
    3231
    3332        private final String ISSUE1 = "issue1";
    34         private SessionResult result1, result1a, result2, result3;// , result4;
     33        private SessionResult result1, result1a, result2, result3, result4;
    3534        private String errorstring; // created dynamically: eclipse and maven
    3635                                                                // generate different stacktrace.
    37         private String jsonstring = "{\"participants\":[{\"party\":{\"partyref\":\"party1\",\"parameters\":{}},\"profile\":\"profile1\"},{\"party\":{\"partyref\":\"party2\",\"parameters\":{}},\"profile\":\"profile2\"}],\"agreement\":{\"issuevalues\":{\"issue1\":\"a\"}},\"error\":null}";
     36        private String jsonstring = "{\"participants\":[{\"party\":{\"partyref\":\"party1\",\"parameters\":{}},\"profile\":\"profile1\"},{\"party\":{\"partyref\":\"party2\",\"parameters\":{}},\"profile\":\"profile2\"}],\"agreement\":{\"issuevalues\":{\"issue1\":\"a\"}},\"penalties\":[0.0,0.0],\"error\":null}";
     37        private List<Double> nopenalties = Arrays.asList(0d, 0d);
     38        private List<Double> penalties = Arrays.asList(0.1d, 0.2d);
    3839
    3940        @Before
     
    6364
    6465                result1 = new SessionResult(Arrays.asList(partyprofile1, partyprofile2),
    65                                 bid1, null);
     66                                bid1, nopenalties, null);
    6667                result1a = new SessionResult(
    67                                 Arrays.asList(partyprofile1, partyprofile2), bid1, null);
     68                                Arrays.asList(partyprofile1, partyprofile2), bid1, nopenalties,
     69                                null);
    6870                result2 = new SessionResult(Arrays.asList(partyprofile1, partyprofile2),
    69                                 bid2, null);
     71                                bid2, nopenalties, null);
    7072                result3 = new SessionResult(Arrays.asList(partyprofile2, partyprofile1),
    71                                 bid2, null);
     73                                bid2, nopenalties, null);
     74                result4 = new SessionResult(Arrays.asList(partyprofile2, partyprofile1),
     75                                bid2, penalties, null);
     76
    7277                // IGNORE ERROR for now, it fails somewhere deep in maven suddenly.
    7378                // result4 = new SessionResult(Arrays.asList(partyprofile1,
     
    7883        public List<List<SessionResult>> getGeneralTestData() {
    7984                return Arrays.asList(Arrays.asList(result1, result1a),
    80                                 Arrays.asList(result2), Arrays.asList(result3)
    81                 // ,Arrays.asList(result4)
    82                 );
     85                                Arrays.asList(result2), Arrays.asList(result3),
     86                                Arrays.asList(result4));
    8387        }
    8488
     
    8690        public List<String> getGeneralTestStrings() {
    8791                return Arrays.asList(
    88                                 "SessionResult.*party1.*profile1.*,.*party2.*profile2.*Bid.*issue1=\"a\".*null.",
    89                                 "SessionResult.*party1.*profile1.*,.*party2.*profile2.*Bid.*issue1=\"b\".*null.*",
    90                                 "SessionResult.*party2.*profile2.*,.*party1.*profile1.*Bid.*issue1=\"b\".*null.*"
    91                 // ,"SessionResult.*party1.*profile1.*,.*party2.*profile2.*Bid.*issue1=\"a\".*null.*"
     92                                "SessionResult.*party1.*profile1.*,.*party2.*profile2.*Bid.*issue1=\"a\".*0\\.0.*0\\.0.*null.*",
     93                                "SessionResult.*party1.*profile1.*,.*party2.*profile2.*Bid.*issue1=\"b\".*0\\.0.*0\\.0.*null.*",
     94                                "SessionResult.*party2.*profile2.*,.*party1.*profile1.*Bid.*issue1=\"b\".*0\\.0.*0\\.0.*null.*",
     95                                "SessionResult.*party2.*profile2.*,.*party1.*profile1.*Bid.*issue1=\"b\".*0\\.1.*0\\.2.*null.*"
    9296
    9397                );
  • protocol/src/test/java/geniusweb/protocol/session/shaop/SHAOPStateTest.java

    r18 r20  
    3131import geniusweb.protocol.partyconnection.ProtocolToPartyConn;
    3232import geniusweb.protocol.partyconnection.ProtocolToPartyConnections;
     33import geniusweb.protocol.session.SessionResult;
    3334import geniusweb.protocol.session.TeamOfPartiesAndProfiles;
    3435import tudelft.utilities.junit.GeneralTests;
     
    314315        }
    315316
     317        @Test
     318        public void getResultTest() {
     319
     320                Map<PartyId, Double> spent = new HashMap<>();
     321                spent.put(party1, 0.1d);
     322                SHAOPState state = new SHAOPState(actions, connections4,
     323                                new ProgressRounds(10, 0, null), settings, null, 0, partynrs,
     324                                spent);
     325                SessionResult res = state.getResult();
     326
     327        }
     328
    316329}
  • protocol/src/test/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsProtocolTest.java

    r10 r20  
    2323import geniusweb.protocol.CurrentNegoState;
    2424import geniusweb.protocol.NegoState;
    25 import geniusweb.protocol.SessionResult;
    2625import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
    2726import geniusweb.protocol.session.SessionProtocol;
     27import geniusweb.protocol.session.SessionResult;
    2828import geniusweb.protocol.session.SessionSettings;
    2929import geniusweb.protocol.session.SessionState;
     
    4646        private Bid agreement = mock(Bid.class);
    4747        private final long NOW = 1000;
     48        private SessionResult finalstate = mock(SessionResult.class);
    4849
    4950        @Before
     
    5354                when(finalsessionstate.getSettings()).thenReturn(settings);
    5455                when(finalsessionstate.getAgreement()).thenReturn(agreement);
     56                when(finalsessionstate.getResult()).thenReturn(finalstate);
     57                when(finalstate.getAgreement()).thenReturn(agreement);
    5558                when(state.with(any())).thenReturn(newstate);
    5659        }
  • protocol/src/test/java/geniusweb/protocol/tournament/allpermutations/AllPermutationsStateTest.java

    r10 r20  
    1313import org.junit.Test;
    1414
    15 import geniusweb.protocol.SessionResult;
     15import geniusweb.protocol.session.SessionResult;
    1616import geniusweb.protocol.session.SessionSettings;
    1717import geniusweb.references.PartyWithProfile;
  • pythonadapter/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>pythonadapter</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • references/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>references</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • simplerunner/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>simplerunner</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1717                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1818                <jackson-2-version>2.9.10</jackson-2-version>
    19                 <geniusweb.version>1.4.2</geniusweb.version>
     19                <geniusweb.version>1.4.4</geniusweb.version>
    2020        </properties>
    2121
  • timeline/pom.xml

    r19 r20  
    66        <groupId>geniusweb</groupId>
    77        <artifactId>timeline</artifactId>
    8         <version>1.4.2</version> <!-- must equal ${geniusweb.version} -->
     8        <version>1.4.4</version> <!-- must equal ${geniusweb.version} -->
    99        <packaging>jar</packaging>
    1010
     
    1616                <passwd>${env.ARTIFACTORY_PASS}</passwd>
    1717                <jackson-2-version>2.9.10</jackson-2-version>
    18                 <geniusweb.version>1.4.2</geniusweb.version>
     18                <geniusweb.version>1.4.4</geniusweb.version>
    1919        </properties>
    2020
Note: See TracChangeset for help on using the changeset viewer.