- Files:
-
- 14 deleted
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
/bidspace/pom.xml
r3 r1 42 42 <groupId>tudelft.utilities</groupId> 43 43 <artifactId>immutablelist</artifactId> 44 <version>1.0. 1</version>44 <version>1.0.0</version> 45 45 </dependency> 46 46 -
/exampleparties/pom.xml
r3 r1 18 18 <module>randomparty</module> 19 19 <module>randompartypy</module> 20 <module>timedependentparty</module>21 <module>conceder</module>22 <module>hardliner</module>23 <module>boulware</module>24 <module>linear</module>25 20 </modules> 26 21 </project> -
/exampleparties/randomparty/pom.xml
r3 r1 54 54 <groupId>tudelft.utilities</groupId> 55 55 <artifactId>immutablelist</artifactId> 56 <version>1.0. 1</version>56 <version>1.0.0</version> 57 57 </dependency> 58 58 -
/exampleparties/randomparty/src/main/java/geniusweb/exampleparties/randomparty/RandomParty.java
r3 r1 23 23 import geniusweb.party.inform.Settings; 24 24 import geniusweb.party.inform.YourTurn; 25 import geniusweb.profile.PartialOrdering;26 import geniusweb.profile.Profile;27 25 import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace; 28 26 import geniusweb.profileconnection.ProfileConnectionFactory; … … 57 55 if (info instanceof Settings) { 58 56 Settings settings = (Settings) info; 59 this.profileint = ProfileConnectionFactory.create(settings.getProfile().getURI(), getReporter()); 57 this.profileint = ProfileConnectionFactory 58 .create(settings.getProfile().getURI(), getReporter()); 60 59 this.me = settings.getID(); 61 60 this.progress = settings.getProgress(); … … 81 80 public Capabilities getCapabilities() { 82 81 try { 83 return new Capabilities(new HashSet<>(Arrays.asList(new ProtocolRef(new URI("SAOP"))))); 82 return new Capabilities(new HashSet<>( 83 Arrays.asList(new ProtocolRef(new URI("SAOP"))))); 84 84 } catch (URISyntaxException e) { 85 getReporter().log(Level.SEVERE, "Failed to create capabilities URI", e); 85 getReporter().log(Level.SEVERE, "Failed to create capabilities URI", 86 e); 86 87 return null; 87 88 } … … 99 100 } else { 100 101 // for demo. Obviously full bids have higher util in general 101 AllPartialBidsList bidspace = new AllPartialBidsList(profileint.getProfile().getDomain()); 102 AllPartialBidsList bidspace = new AllPartialBidsList( 103 profileint.getProfile().getDomain()); 102 104 Bid bid = null; 103 105 for (int attempt = 0; attempt < 20 && !isGood(bid); attempt++) { … … 112 114 113 115 private boolean isGood(Bid bid) { 114 if (bid == null) 115 return false; 116 Profile profile = profileint.getProfile(); 117 if (profile instanceof LinearAdditiveUtilitySpace) { 118 return ((LinearAdditiveUtilitySpace) profile).getUtility(bid).doubleValue() > 0.6; 119 } 120 if (profile instanceof PartialOrdering) { 121 return ((PartialOrdering) profile).isPreferredOrEqual(bid, profile.getReservationBid()); 122 } 123 throw new IllegalArgumentException("Can not handle profile type " + profile.getClass()); 116 return bid != null 117 && ((LinearAdditiveUtilitySpace) profileint.getProfile()) 118 .getUtility(bid).doubleValue() > 0.6; 124 119 } 125 120 -
/exampleparties/randompartypy/pom.xml
r3 r1 47 47 <groupId>tudelft.utilities</groupId> 48 48 <artifactId>immutablelist</artifactId> 49 <version>1.0. 1</version>49 <version>1.0.0</version> 50 50 </dependency> 51 51 -
/exampleparties/randompartypy/src/main/resources/RandomParty.py
r3 r1 23 23 import geniusweb.party.DefaultParty as DefaultParty 24 24 import geniusweb.profile.Profile as Profile 25 import geniusweb.profile.PartialOrdering as PartialOrdering26 25 import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace as LinearAdditiveUtilitySpace 27 26 import geniusweb.references.ProfileRef as ProfileRef … … 30 29 import geniusweb.profileconnection.ProfileInterface as ProfileInterface 31 30 import geniusweb.progress.ProgressRounds as ProgressRounds 32 33 31 34 32 import com.fasterxml.jackson.databind.ObjectMapper as ObjectMapper … … 94 92 95 93 def _isGood(self, bid): 96 if bid == None: 97 return false 98 profile = self.profile.getProfile() 99 if isinstance(profile, LinearAdditiveUtilitySpace): 100 return profile.getUtility(bid).doubleValue() > 0.6; 101 if isinstance(profile, PartialOrdering): 102 return profile.isPreferredOrEqual(bid, profile.getReservationBid()) 103 raise Exception("Can not handle this type of profile") 94 return bid != None and self.profile.getProfile().getUtility(bid).doubleValue() > 0.6; -
/issuevalue/pom.xml
r3 r1 92 92 <groupId>tudelft.utilities</groupId> 93 93 <artifactId>immutablelist</artifactId> 94 <version>1.0. 1</version>94 <version>1.0.0</version> 95 95 </dependency> 96 96 -
/issuevalue/src/test/java/geniusweb/issuevalue/DomainTest.java
r3 r1 21 21 import com.fasterxml.jackson.databind.ObjectMapper; 22 22 23 import geniusweb.issuevalue.Bid; 24 import geniusweb.issuevalue.DiscreteValue; 25 import geniusweb.issuevalue.DiscreteValueSet; 26 import geniusweb.issuevalue.Domain; 27 import geniusweb.issuevalue.NumberValue; 28 import geniusweb.issuevalue.NumberValueSet; 29 import geniusweb.issuevalue.ValueSet; 23 30 import tudelft.utilities.junit.GeneralTests; 24 31 … … 31 38 private static final String ISSUE3 = "issue3"; 32 39 private static final ObjectMapper jackson = new ObjectMapper(); 33 private static final String domainstring = "{\"name\":\"testdomain\",\"issuesValues\":{\"issue2\":{\"range\":[ 2,3,0.22]},\"issue1\":{\"values\":[\"i1v1\",\"i1v2\"]}}}";40 private static final String domainstring = "{\"name\":\"testdomain\",\"issuesValues\":{\"issue2\":{\"range\":[\"2\",\"3\",\"0.22\"]},\"issue1\":{\"values\":[\"i1v1\",\"i1v2\"]}}}"; 34 41 35 private static final String jobsstring = "{\"name\":\"jobs\"," + "\"issuesValues\":{" 36 + "\"lease car\":{\"values\":[\"yes\",\"no\"]}," + "\"permanent contract\":{\"values\":[\"yes\",\"no\"]}," 42 private static final String jobsstring = "{\"name\":\"jobs\"," 43 + "\"issuesValues\":{" 44 + "\"lease car\":{\"values\":[\"yes\",\"no\"]}," 45 + "\"permanent contract\":{\"values\":[\"yes\",\"no\"]}," 37 46 + "\"career development opportunities\":{\"values\":[\"low\",\"medium\",\"high\"]}," 38 47 + "\"fte\":{\"values\":[\"0.6\",\"0.8\",\"1.0\"]}," … … 64 73 Map<String, ValueSet> issues1 = new HashMap<>(); 65 74 issues1.put(ISSUE1, values1); 66 issues1.put(ISSUE2, new NumberValueSet(BigDecimal.ONE, TWO, new BigDecimal("0.22"))); 75 issues1.put(ISSUE2, new NumberValueSet(BigDecimal.ONE, TWO, 76 new BigDecimal("0.22"))); 67 77 domain3 = new Domain(DOMAINNAME, issues1); 68 78 … … 71 81 @Override 72 82 public List<List<Domain>> getGeneralTestData() { 73 return Arrays.asList(Arrays.asList(domain, domain1), Arrays.asList(domain2), Arrays.asList(domain3)); 83 return Arrays.asList(Arrays.asList(domain, domain1), 84 Arrays.asList(domain2), Arrays.asList(domain3)); 74 85 } 75 86 76 87 @Override 77 88 public List<String> getGeneralTestStrings() { 78 return Arrays.asList("Domain.*testdomain.*", "Domain.*testdomain1.*", "Domain.*testdomain.*"); 89 return Arrays.asList("Domain.*testdomain.*", "Domain.*testdomain1.*", 90 "Domain.*testdomain.*"); 79 91 } 80 92 … … 97 109 System.out.println(jobsstring); 98 110 Domain jobsdomain = jackson.readValue(jobsstring, Domain.class); 99 assertEquals(new HashSet<>(Arrays.asList("lease car", "permanent contract", "career development opportunities", 100 "fte", "salary", "work from home")), jobsdomain.getIssues()); 111 assertEquals(new HashSet<>(Arrays.asList("lease car", 112 "permanent contract", "career development opportunities", "fte", 113 "salary", "work from home")), jobsdomain.getIssues()); 101 114 102 115 } … … 121 134 public void testIsCompleteNoIssuesDefined() { 122 135 Bid bid = mock(Bid.class); 123 assertThat(domain.isComplete(bid), new PatternMatch("Issues in bid .* do not match issues in domain .*")); 136 assertThat(domain.isComplete(bid), new PatternMatch( 137 "Issues in bid .* do not match issues in domain .*")); 124 138 } 125 139 … … 140 154 // THREE is NOT a possible value in the NumberValueSet. 141 155 when(bid.getValue(ISSUE2)).thenReturn(new NumberValue(THREE)); 142 assertThat(domain.isComplete(bid), new PatternMatch("bid issue issue2 has illegal value 3")); 156 assertThat(domain.isComplete(bid), 157 new PatternMatch("bid issue issue2 has illegal value 3")); 143 158 } 144 159 … … 152 167 // THREE is NOT a possible value in the NumberValueSet. 153 168 when(bid.getValue(ISSUE2)).thenReturn(new NumberValue(THREE)); 154 assertThat(domain.isComplete(bid), new PatternMatch("Issues in bid .* do not match issues in domain .*")); 169 assertThat(domain.isComplete(bid), new PatternMatch( 170 "Issues in bid .* do not match issues in domain .*")); 155 171 } 156 172 -
/issuevalue/src/test/java/geniusweb/issuevalue/NumberValueSetTest.java
r3 r1 16 16 import com.fasterxml.jackson.databind.ObjectMapper; 17 17 18 import geniusweb.issuevalue.NumberValue; 19 import geniusweb.issuevalue.NumberValueSet; 20 import geniusweb.issuevalue.ValueSet; 18 21 import tudelft.utilities.immutablelist.Range; 19 22 … … 30 33 new BigDecimal("0.1")); 31 34 32 private final String asString = "{\"range\":[ 12.2,12.6,0.3]}";35 private final String asString = "{\"range\":[\"12.2\",\"12.6\",\"0.3\"]}"; 33 36 private final static NumberValueSet bigset = new NumberValueSet(BigDecimal.ZERO, BigDecimal.TEN, 34 37 new BigDecimal("0.00003")); -
/profile/src/main/java/geniusweb/profile/Profile.java
r3 r1 16 16 */ 17 17 @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT) 18 @JsonSubTypes({ @JsonSubTypes.Type(value = LinearAdditiveUtilitySpace.class), 19 @JsonSubTypes.Type(value = DefaultPartialOrdering.class) }) 18 @JsonSubTypes({ @JsonSubTypes.Type(value = LinearAdditiveUtilitySpace.class) }) 20 19 public interface Profile { 21 20 … … 33 32 /** 34 33 * 35 * @return a (hypothetical) bid that is the best alternative to a non-agreement. 36 * Only bids that are {@link #isPreferredOrEqual(Bid, Bid)} should be 37 * accepted. If a negotiation does not reach an agreement, the party can 38 * get this offer somewhere else. This replaces the older notion of a 34 * @return a (hypothetical) bid that is the best alternative to a 35 * non-agreement. Only bids that are 36 * {@link #isPreferredOrEqual(Bid, Bid)} should be accepted. If a 37 * negotiation does not reach an agreement, the party can get this 38 * offer somewhere else. This replaces the older notion of a 39 39 * "reservation value" and is more general. If null, there is no 40 40 * reservation bid and any agreement is better than no agreement. -
/profile/src/main/java/geniusweb/profile/utilityspace/NumberValueSetUtilities.java
r3 r1 6 6 import com.fasterxml.jackson.annotation.JsonAutoDetect; 7 7 import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; 8 import com.fasterxml.jackson.annotation.JsonCreator;9 import com.fasterxml.jackson.annotation.JsonProperty;10 import com.fasterxml.jackson.annotation.JsonTypeName;11 8 12 9 import geniusweb.issuevalue.NumberValue; … … 14 11 import geniusweb.issuevalue.Value; 15 12 import geniusweb.issuevalue.ValueSet; 13 14 import com.fasterxml.jackson.annotation.JsonCreator; 15 import com.fasterxml.jackson.annotation.JsonProperty; 16 import com.fasterxml.jackson.annotation.JsonTypeName; 17 16 18 import tudelft.utilities.immutablelist.Range; 17 19 … … 98 100 } 99 101 if (numvalset.getRange().getHigh().compareTo(highValue) != 0) { 100 return "the utilities are specified upto " + highValue101 + " but the valueset ends at "102 return "the utilities are specified down to " + highValue 103 + " but the valueset starts at " 102 104 + numvalset.getRange().getHigh(); 103 105 } -
/profile/src/test/java/geniusweb/profile/utilityspace/DiscreteValueSetUtilitiesTest.java
r3 r1 1 1 package geniusweb.profile.utilityspace; 2 3 import static org.junit.Assert.assertEquals;4 2 5 3 import java.math.BigDecimal; … … 12 10 13 11 import geniusweb.issuevalue.DiscreteValue; 14 import geniusweb.issuevalue.DiscreteValueSet; 15 import geniusweb.issuevalue.NumberValue; 16 import geniusweb.issuevalue.NumberValueSet; 17 import geniusweb.issuevalue.ValueSet; 12 import geniusweb.profile.utilityspace.DiscreteValueSetUtilities; 18 13 import tudelft.utilities.junit.GeneralTests; 19 14 20 public class DiscreteValueSetUtilitiesTest 21 extends GeneralTests<DiscreteValueSetUtilities> { 15 public class DiscreteValueSetUtilitiesTest extends GeneralTests<DiscreteValueSetUtilities> { 22 16 23 17 private final static DiscreteValue vala = new DiscreteValue("a"); 24 18 private final static DiscreteValue vala1 = new DiscreteValue("a"); 25 19 private final static DiscreteValue valb = new DiscreteValue("b"); 26 private final static NumberValue valn = new NumberValue("99");27 20 28 21 private final static BigDecimal util = new BigDecimal("0.14"); … … 30 23 private final static BigDecimal utilb = new BigDecimal("0.37"); 31 24 32 private final static BigDecimal badutil = new BigDecimal("1.37"); 33 private final static BigDecimal badutil2 = new BigDecimal("-0.37"); 34 35 private final static DiscreteValueSetUtilities utils, utils1, utilsb, 36 utils1b, utilsc1, utilsc2; 25 private final static DiscreteValueSetUtilities utils, utils1, utilsb, utils1b, utilsc1, utilsc2; 37 26 38 27 static { … … 67 56 @Override 68 57 public List<List<DiscreteValueSetUtilities>> getGeneralTestData() { 69 return Arrays.asList(Arrays.asList(utils, utils1), 70 Arrays.asList(utilsb), Arrays.asList(utils1b), 58 return Arrays.asList(Arrays.asList(utils, utils1), Arrays.asList(utilsb), Arrays.asList(utils1b), 71 59 Arrays.asList(utilsc1, utilsc2)); 72 60 } … … 74 62 @Override 75 63 public List<String> getGeneralTestStrings() { 76 return Arrays.asList("ValueSetUtilities\\{\"a\"=0.14\\}", 77 "ValueSetUtilities\\{\"b\"=0.37\\}", 78 "ValueSetUtilities\\{\"a\"=0.37\\}", 79 "ValueSetUtilities\\{\"a\"=0.14, \"b\"=0.37\\}"); 64 return Arrays.asList("ValueSetUtilities\\{\"a\"=0.14\\}", "ValueSetUtilities\\{\"b\"=0.37\\}", 65 "ValueSetUtilities\\{\"a\"=0.37\\}", "ValueSetUtilities\\{\"a\"=0.14, \"b\"=0.37\\}"); 80 66 } 81 67 … … 86 72 } 87 73 88 @Test(expected = IllegalArgumentException.class)89 public void testTooLargeUtility() {90 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();91 valueUtils.put(vala, util);92 valueUtils.put(valb, badutil);93 new DiscreteValueSetUtilities(valueUtils);94 }95 96 @Test(expected = IllegalArgumentException.class)97 public void testNegativeUtility() {98 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();99 valueUtils.put(vala, util);100 valueUtils.put(valb, badutil2);101 new DiscreteValueSetUtilities(valueUtils);102 }103 104 @Test(expected = IllegalArgumentException.class)105 public void testNullUtility() {106 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();107 valueUtils.put(vala, null);108 valueUtils.put(valb, util);109 new DiscreteValueSetUtilities(valueUtils);110 }111 112 @Test(expected = NullPointerException.class)113 public void testNullValueUtils() {114 new DiscreteValueSetUtilities(null);115 116 }117 118 @Test(expected = NullPointerException.class)119 public void testNullIssue() {120 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();121 valueUtils.put(vala, util);122 valueUtils.put(null, utilb);123 new DiscreteValueSetUtilities(valueUtils);124 }125 126 @Test127 public void testGetUtility() {128 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();129 valueUtils.put(vala, util);130 valueUtils.put(valb, utilb);131 DiscreteValueSetUtilities utilset = new DiscreteValueSetUtilities(132 valueUtils);133 assertEquals(util, utilset.getUtility(vala));134 assertEquals(utilb, utilset.getUtility(valb));135 assertEquals(BigDecimal.ZERO,136 utilset.getUtility(new DiscreteValue("unknownIssue")));137 138 }139 140 @Test141 public void testIsFitting() {142 ValueSet valueset = new DiscreteValueSet(Arrays.asList(vala, valb));143 144 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();145 valueUtils.put(vala, util);146 DiscreteValueSetUtilities utilset = new DiscreteValueSetUtilities(147 valueUtils);148 149 assertEquals(150 "The values in the set DiscreteValueSet[\"a\", \"b\"] do not match the values mapped to utilities [\"a\"]",151 utilset.isFitting(valueset));152 153 valueUtils.put(valb, utilb);154 utilset = new DiscreteValueSetUtilities(valueUtils);155 assertEquals(null, utilset.isFitting(valueset));156 157 valueUtils.put(new DiscreteValue("unknownIssue"), util1);158 utilset = new DiscreteValueSetUtilities(valueUtils);159 assertEquals(160 "The values in the set DiscreteValueSet[\"a\", \"b\"] do not match the values mapped to utilities [\"a\", \"b\", \"unknownIssue\"]",161 utilset.isFitting(valueset));162 163 }164 165 @Test166 public void testIsFittingWrongType() {167 ValueSet valueset = new NumberValueSet(BigDecimal.ZERO, BigDecimal.ONE,168 new BigDecimal("0.3"));169 170 Map<DiscreteValue, BigDecimal> valueUtils = new HashMap<>();171 valueUtils.put(vala, util);172 valueUtils.put(valb, utilb);173 DiscreteValueSetUtilities utilset = new DiscreteValueSetUtilities(174 valueUtils);175 176 assertEquals(177 "The utilities are for a discrete valueset but the given values are numberValueSet[0,1,0.3]",178 utilset.isFitting(valueset));179 180 }181 74 } -
/profile/src/test/java/geniusweb/profile/utilityspace/NumberValueSetUtilTest.java
r3 r1 9 9 import org.junit.Test; 10 10 11 import geniusweb.issuevalue.DiscreteValue;12 import geniusweb.issuevalue.DiscreteValueSet;13 11 import geniusweb.issuevalue.NumberValue; 14 import geniusweb.issuevalue.NumberValueSet; 15 import geniusweb.issuevalue.ValueSet; 16 import tudelft.utilities.immutablelist.Range; 12 import geniusweb.profile.utilityspace.NumberValueSetUtilities; 17 13 import tudelft.utilities.junit.GeneralTests; 18 14 19 public class NumberValueSetUtilTest 20 extends GeneralTests<NumberValueSetUtilities> { 15 public class NumberValueSetUtilTest extends GeneralTests<NumberValueSetUtilities> { 21 16 22 17 private static final BigDecimal lowval1 = new BigDecimal("12.5"); … … 26 21 private static final BigDecimal highvalb = new BigDecimal("18.4"); 27 22 private static final BigDecimal highutil = new BigDecimal("0.9"); 28 private static final NumberValueSetUtilities valueset1 = new NumberValueSetUtilities( 29 lowval1, low1util, highval, highutil); 30 private static final NumberValueSetUtilities valueset1b = new NumberValueSetUtilities( 31 lowval1, low1util, highval, highutil); 32 private static final NumberValueSetUtilities valueset2 = new NumberValueSetUtilities( 33 lowval1, low1utilb, highval, highutil); 34 private static final NumberValueSetUtilities valueset3 = new NumberValueSetUtilities( 35 lowval1, low1util, highvalb, highutil); 36 private static final BigDecimal ZERO_1 = new BigDecimal("0.1"); 23 private static final NumberValueSetUtilities valueset1 = new NumberValueSetUtilities(lowval1, low1util, highval, 24 highutil); 25 private static final NumberValueSetUtilities valueset1b = new NumberValueSetUtilities(lowval1, low1util, highval, 26 highutil); 27 private static final NumberValueSetUtilities valueset2 = new NumberValueSetUtilities(lowval1, low1utilb, highval, 28 highutil); 29 private static final NumberValueSetUtilities valueset3 = new NumberValueSetUtilities(lowval1, low1util, highvalb, 30 highutil); 37 31 38 32 @Override 39 33 public List<List<NumberValueSetUtilities>> getGeneralTestData() { 40 return Arrays.asList(Arrays.asList(valueset1, valueset1b), 41 Arrays.asList(valueset2), Arrays.asList(valueset3)); 34 return Arrays.asList(Arrays.asList(valueset1, valueset1b), Arrays.asList(valueset2), Arrays.asList(valueset3)); 42 35 } 43 36 44 37 @Override 45 38 public List<String> getGeneralTestStrings() { 46 return Arrays.asList("NumberValUtility\\(12.5->0.5,18.5->0.9\\)", 47 "NumberValUtility\\(12.5->0.6,18.5->0.9\\)", 39 return Arrays.asList("NumberValUtility\\(12.5->0.5,18.5->0.9\\)", "NumberValUtility\\(12.5->0.6,18.5->0.9\\)", 48 40 "NumberValUtility\\(12.5->0.5,18.4->0.9\\)"); 49 41 } … … 57 49 public void utilAscentingTest() { 58 50 NumberValueSetUtilities utils = valueset1; 59 assertEquals(0, 60 low1util.compareTo(utils.getUtility(new NumberValue(lowval1)))); 51 assertEquals(0, low1util.compareTo(utils.getUtility(new NumberValue(lowval1)))); 61 52 } 62 53 63 54 @Test 64 55 public void utilDescendingTest() { 65 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 66 highutil, highval, low1util); 67 assertEquals(0, 68 highutil.compareTo(utils.getUtility(new NumberValue(lowval1)))); 56 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, highutil, highval, low1util); 57 assertEquals(0, highutil.compareTo(utils.getUtility(new NumberValue(lowval1)))); 69 58 } 70 59 71 60 @Test(expected = IllegalArgumentException.class) 72 61 public void reverserangetest() { 73 NumberValueSetUtilities utils = new NumberValueSetUtilities(highval, 74 low1util, highval, highutil); 75 } 76 77 @Test(expected = NullPointerException.class) 78 public void testNullHigh() { 79 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 80 low1util, null, highutil); 81 } 82 83 @Test(expected = NullPointerException.class) 84 public void testNullHighUtil() { 85 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 86 low1util, highval, null); 87 } 88 89 @Test(expected = NullPointerException.class) 90 public void testNullLow() { 91 NumberValueSetUtilities utils = new NumberValueSetUtilities(null, 92 low1util, highval, highutil); 93 } 94 95 @Test(expected = NullPointerException.class) 96 public void testNullLowUtil() { 97 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 98 null, highval, highutil); 99 } 100 101 @Test(expected = IllegalArgumentException.class) 102 public void testLowUtilNegative() { 103 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 104 new BigDecimal("-0.2"), highval, highutil); 105 } 106 107 @Test(expected = IllegalArgumentException.class) 108 public void testHighUtilNegative() { 109 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 110 low1util, highval, new BigDecimal("-0.000003")); 111 } 112 113 @Test 114 public void getUtilTest() { 115 NumberValueSetUtilities utils = new NumberValueSetUtilities(lowval1, 116 low1util, highval, highutil); 117 assertEquals(0, 118 highutil.compareTo(utils.getUtility(new NumberValue(highval)))); 119 assertEquals(0, 120 low1util.compareTo(utils.getUtility(new NumberValue(lowval1)))); 121 // linear interpolated , check center 122 BigDecimal middleutil = low1util.add(highutil) 123 .divide(new BigDecimal("2")); 124 NumberValue middleval = new NumberValue( 125 lowval1.add(highval).divide(new BigDecimal("2"))); 126 assertEquals(0, middleutil.compareTo(utils.getUtility(middleval))); 127 128 } 129 130 @Test 131 public void testIsNotFittingRange() { 132 ValueSet valueset = new NumberValueSet( 133 new Range(low1util, highutil, new BigDecimal("0.02"))); 134 ValueSetUtilities utilset = new NumberValueSetUtilities(lowval1, 135 low1util, highval, highutil); 136 assertEquals( 137 "the utilities are specified down to 12.5 but the valueset starts at 0.5", 138 utilset.isFitting(valueset)); 139 } 140 141 @Test 142 public void testTopOfRangeTooLarge() { 143 ValueSet valueset = new NumberValueSet( 144 new Range(lowval1, highval.subtract(ZERO_1), ZERO_1)); 145 ValueSetUtilities utilset = new NumberValueSetUtilities(lowval1, 146 low1util, highval, highutil); 147 assertEquals( 148 "the utilities are specified up to 18.5 but the valueset ends at 18.4", 149 utilset.isFitting(valueset)); 150 } 151 152 @Test 153 public void testIsFitting() { 154 ValueSet valueset = new NumberValueSet( 155 new Range(lowval1, highval, BigDecimal.ONE)); 156 ValueSetUtilities utilset = new NumberValueSetUtilities(lowval1, 157 low1util, highval, highutil); 158 assertEquals(null, utilset.isFitting(valueset)); 159 } 160 161 @Test 162 public void testIsFittingWrongType() { 163 DiscreteValue vala = new DiscreteValue("a"); 164 DiscreteValue valb = new DiscreteValue("b"); 165 ValueSet valueset = new DiscreteValueSet(Arrays.asList(vala, valb)); 166 167 NumberValueSetUtilities utilset = new NumberValueSetUtilities(lowval1, 168 low1util, highval, highutil); 169 assertEquals( 170 "The utilities are for a number valueset but the given values are DiscreteValueSet[\"a\", \"b\"]", 171 utilset.isFitting(valueset)); 172 62 NumberValueSetUtilities utils = new NumberValueSetUtilities(highval, highutil, lowval1, low1util); 173 63 } 174 64 -
/profileconnection/src/main/java/geniusweb/profileconnection/FileProfileConnector.java
r3 r1 10 10 11 11 import geniusweb.profile.Profile; 12 import geniusweb.profile.utilityspace.LinearAdditiveUtilitySpace; 12 13 13 14 /** … … 16 17 public class FileProfileConnector implements ProfileInterface { 17 18 private final static ObjectMapper jackson = new ObjectMapper(); 18 private final Profile profile;19 private final LinearAdditiveUtilitySpace profile; 19 20 20 21 /** … … 25 26 public FileProfileConnector(String filename) throws IOException { 26 27 Path path = new File(filename).toPath(); 27 String serialized = new String(Files.readAllBytes(path), StandardCharsets.UTF_8); 28 profile = jackson.readValue(serialized, Profile.class); 28 String serialized = new String(Files.readAllBytes(path), 29 StandardCharsets.UTF_8); 30 profile = (LinearAdditiveUtilitySpace) jackson.readValue(serialized, 31 Profile.class); 29 32 } 30 33 31 34 @Override 32 public Profile getProfile() {35 public LinearAdditiveUtilitySpace getProfile() { 33 36 return profile; 34 37 } -
/protocol/pom.xml
r3 r1 56 56 <groupId>tudelft.utilities</groupId> 57 57 <artifactId>immutablelist</artifactId> 58 <version>1.0. 1</version>58 <version>1.0.0</version> 59 59 </dependency> 60 60 <dependency> -
/simplerunner/src/test/java/geniusweb/simplerunner/SessionRunnerE2ETest.java
r3 r1 5 5 import java.nio.file.Files; 6 6 import java.nio.file.Paths; 7 import java.util.Arrays;8 import java.util.Collection;9 7 10 8 import org.junit.Before; 11 9 import org.junit.Test; 12 import org.junit.runner.RunWith;13 import org.junit.runners.Parameterized;14 import org.junit.runners.Parameterized.Parameters;15 10 16 11 import com.fasterxml.jackson.databind.ObjectMapper; 17 12 18 13 import geniusweb.protocol.session.SessionSettings; 14 import geniusweb.simplerunner.ClassPathConnectionFactory; 15 import geniusweb.simplerunner.NegoRunner; 19 16 import tudelft.utilities.logging.ReportToLogger; 20 17 import tudelft.utilities.logging.Reporter; … … 25 22 * this module. 26 23 */ 27 @RunWith(Parameterized.class)28 24 public class SessionRunnerE2ETest { 25 private static final String SESSION_SETTINGS = "src/test/resources/settings.json"; 29 26 private final ObjectMapper jackson = new ObjectMapper(); 30 27 private NegoRunner runner; 31 28 private Reporter logger = new ReportToLogger("test"); 32 private String filename;33 34 @Parameters35 public static Collection<Object[]> data() {36 return Arrays.asList(37 new Object[][] { { "src/test/resources/settings.json" }, { "src/test/resources/settings2.json" } });38 }39 40 public SessionRunnerE2ETest(String file) {41 this.filename = file;42 }43 29 44 30 @Before 45 31 public void before() throws IOException { 46 String serialized = new String(Files.readAllBytes(Paths.get(filename)), StandardCharsets.UTF_8); 47 SessionSettings settings = jackson.readValue(serialized, SessionSettings.class); 32 String serialized = new String( 33 Files.readAllBytes(Paths.get(SESSION_SETTINGS)), 34 StandardCharsets.UTF_8); 35 SessionSettings settings = jackson.readValue(serialized, 36 SessionSettings.class); 48 37 49 runner = new NegoRunner(settings, new ClassPathConnectionFactory(), logger); 38 runner = new NegoRunner(settings, new ClassPathConnectionFactory(), 39 logger); 50 40 51 41 } … … 62 52 @Test 63 53 public void runTestMainFunction() throws IOException { 64 NegoRunner.main(new String[] { filename});54 NegoRunner.main(new String[] { SESSION_SETTINGS }); 65 55 } 66 56 }
Note:
See TracChangeset
for help on using the changeset viewer.