Changeset 20 for protocol


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

Added BOA support, some bug fixes

Location:
protocol
Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • 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;
Note: See TracChangeset for help on using the changeset viewer.