source: profile/src/test/java/geniusweb/profile/DefaultPartialOrderingTest.java@ 52

Last change on this file since 52 was 52, checked in by ruud, 14 months ago

Fixed small issues in domaineditor.

File size: 3.9 KB
Line 
1package geniusweb.profile;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5import static org.junit.Assert.assertTrue;
6
7import java.io.IOException;
8import java.util.Arrays;
9import java.util.Collections;
10import java.util.HashMap;
11import java.util.HashSet;
12import java.util.List;
13import java.util.Map;
14import java.util.Set;
15
16import org.junit.Before;
17import org.junit.Test;
18
19import com.fasterxml.jackson.core.JsonProcessingException;
20import com.fasterxml.jackson.databind.ObjectMapper;
21
22import geniusweb.issuevalue.Bid;
23import geniusweb.issuevalue.DiscreteValue;
24import geniusweb.issuevalue.DiscreteValueSet;
25import geniusweb.issuevalue.Domain;
26import geniusweb.issuevalue.ValueSet;
27import tudelft.utilities.junit.GeneralTests;
28
29public class DefaultPartialOrderingTest extends GeneralTests<DefaultPartialOrdering> {
30
31 private final String serialized = "{\"DefaultPartialOrdering\":{" + "\"name\":\"ordering1\","
32 + "\"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]]}}";
36
37 // we need real (not mock) values otherwise serializer crashes..
38 private String issue1 = "iss1";
39 private DefaultPartialOrdering ordering1, ordering1b, ordering2, ordering3, ordering4, ordering5;
40
41 private Bid bid1, bid2, bid3;
42
43 @Before
44 public void before() {
45 Map<String, ValueSet> issues = new HashMap<>();
46 DiscreteValue val1 = new DiscreteValue("1");
47 DiscreteValue val2 = new DiscreteValue("2");
48 DiscreteValue val3 = new DiscreteValue("3");
49 issues.put(issue1, new DiscreteValueSet(new HashSet<>(Arrays.asList(val1, val2, val3))));
50 Domain domain1 = new Domain("dom1", issues);
51 Domain domain2 = new Domain("dom2", issues);
52 bid1 = new Bid(Collections.singletonMap(issue1, val1));
53 bid2 = new Bid(Collections.singletonMap(issue1, val2));
54 bid3 = new Bid(Collections.singletonMap(issue1, val3));
55
56 Map<Bid, Set<Bid>> map1 = new HashMap<>();
57 map1.put(bid1, new HashSet<Bid>(Arrays.asList(bid2)));
58 map1.put(bid3, new HashSet<Bid>(Arrays.asList(bid2)));
59
60 Map<Bid, Set<Bid>> map2 = new HashMap<>();
61 map2.put(bid1, new HashSet<Bid>(Arrays.asList(bid2)));
62 map2.put(bid3, new HashSet<Bid>(Arrays.asList(bid1)));
63
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);
70
71 }
72
73 @Override
74 public List<List<DefaultPartialOrdering>> getGeneralTestData() {
75 return Arrays.asList(Arrays.asList(ordering1, ordering1b), Arrays.asList(ordering2), Arrays.asList(ordering3),
76 Arrays.asList(ordering4), Arrays.asList(ordering5));
77 }
78
79 @Override
80 public List<String> getGeneralTestStrings() {
81 return Arrays.asList("DefaultPartialOrdering.*", "DefaultPartialOrdering.*", "DefaultPartialOrdering.*",
82 "DefaultPartialOrdering.*", "DefaultPartialOrdering.*");
83 }
84
85 @Test
86 public void testSerialize() throws JsonProcessingException {
87 ObjectMapper jackson = new ObjectMapper();
88 assertEquals(serialized, jackson.writeValueAsString(ordering1));
89 System.out.println(serialized);
90 }
91
92 @Test
93 public void testDeserialize() throws IOException {
94 ObjectMapper jackson = new ObjectMapper();
95 assertEquals(ordering1, jackson.readValue(serialized, Profile.class));
96 }
97
98 @Test
99 public void testIsBetter() {
100 assertTrue(ordering1.isPreferredOrEqual(bid1, bid2));
101 assertFalse(ordering1.isPreferredOrEqual(bid1, bid3));
102 assertFalse(ordering1.isPreferredOrEqual(bid2, bid3));
103 }
104
105}
Note: See TracBrowser for help on using the repository browser.