1 | from decimal import Decimal
|
---|
2 | import unittest
|
---|
3 |
|
---|
4 | from pyson.ObjectMapper import ObjectMapper
|
---|
5 |
|
---|
6 | from geniusweb.issuevalue.DiscreteValue import DiscreteValue
|
---|
7 | from geniusweb.profile.utilityspace.DiscreteValueSetUtilities import DiscreteValueSetUtilities
|
---|
8 | from geniusweb.profile.utilityspace.ValueSetUtilities import ValueSetUtilities
|
---|
9 |
|
---|
10 |
|
---|
11 | class DiscreteValSetUtilsTest(unittest.TestCase):
|
---|
12 | pyson=ObjectMapper()
|
---|
13 | N0=Decimal("0")
|
---|
14 | N1=Decimal("1")
|
---|
15 | N05=Decimal("0.5")
|
---|
16 | N07=Decimal("0.7")
|
---|
17 | high=DiscreteValue("high")
|
---|
18 | low=DiscreteValue("low")
|
---|
19 | medium=DiscreteValue("medium")
|
---|
20 |
|
---|
21 | carreerutils = DiscreteValueSetUtilities({high:N1,low:N0,medium:N05})
|
---|
22 | carreerutils1 = DiscreteValueSetUtilities({high:N1,low:N0,medium:N05})
|
---|
23 | carreerutils2 = DiscreteValueSetUtilities({high:N1,low:N0,medium:N07})
|
---|
24 |
|
---|
25 | carreerjson = {"DiscreteValueSetUtilities":{ "valueUtilities":{ "high":1, "medium":0.5, "low":0}}}
|
---|
26 | def testGetUtility(self):
|
---|
27 | self.assertEqual(self.N05, self.carreerutils.getUtility(self.medium))
|
---|
28 | self.assertEqual(self.N0, self.carreerutils.getUtility(DiscreteValue("nonexisting")))
|
---|
29 |
|
---|
30 | def testSerialize(self):
|
---|
31 | print(self.pyson.toJson(self.carreerutils))
|
---|
32 | self.assertEqual(self.carreerjson, self.pyson.toJson(self.carreerutils))
|
---|
33 |
|
---|
34 | def testDeserialize(self):
|
---|
35 | self.assertEqual(self.carreerutils, self.pyson.parse(self.carreerjson, ValueSetUtilities))
|
---|
36 |
|
---|
37 |
|
---|
38 | def testRepr(self):
|
---|
39 | self.assertEqual("DiscreteValueSetUtilities{high: Decimal('1'), low: Decimal('0'), medium: Decimal('0.5')}", repr(self.carreerutils))
|
---|
40 |
|
---|
41 | def testEqual(self):
|
---|
42 | self.assertEqual(self.carreerutils, self.carreerutils1)
|
---|
43 | self.assertNotEqual(self.carreerutils, self.carreerutils2)
|
---|
44 | self.assertEqual(hash(self.carreerutils), hash(self.carreerutils1))
|
---|
45 | self.assertNotEqual(hash(self.carreerutils), hash(self.carreerutils2))
|
---|
46 | |
---|