+from wvtest import *
+from genhtml import *
+
+@wvtest
+def Dimension_and_DimValue():
+ d = Dimension('kern', 'Kernel')
+ d.addValue('2.6.31')
+ d.addValue('2.6.30')
+ l=[]
+ for v in d:
+ WVPASSEQ(v.__class__, DimValue)
+ l.append(v.value)
+ lsorted = ['2.6.30', '2.6.31']
+ WVPASSEQ(l, lsorted)
+ WVPASSEQ(v.htmlLabel(), '2.6.31')
+ WVPASSEQ(d['2.6.31'].value, '2.6.31')
+
+@wvtest
+def Two_Dimensions_in_Tests():
+ t = Tests(None, DimensionTest(), DimensionKern())
+ WVPASSEQ([(a.__class__.__name__, b.__class__.__name__) for a, b in t.iterDimensionPairs()],
+ [('DimensionTest', 'DimensionKern'), ('DimensionKern', 'DimensionTest')])
+@wvtest
+def Three_Dimensions_in_Tests():
+ dt = DimensionTest()
+ dk = DimensionKern()
+ dd = Dimension('tmp', "Tmp")
+ t = Tests(None, dt, dk, dd)
+ pairs = [(a.__class__.__name__, b.__class__.__name__) for a, b in t.iterDimensionPairs()]
+ WVPASSEQ(pairs[0], ('DimensionTest', 'DimensionKern'))
+ WVPASSEQ(pairs[1], ('DimensionKern', 'DimensionTest'))
+ WVPASSEQ(pairs[2], ('DimensionTest', 'Dimension'))
+ WVPASSEQ(pairs[3], ('Dimension', 'DimensionTest'))
+ WVPASSEQ(pairs[4], ('DimensionKern', 'Dimension'))
+ WVPASSEQ(pairs[5], ('Dimension', 'DimensionKern'))
+ WVPASSEQ(len(pairs), 6)
+ WVEXCEPT(KeyError, t.addTest, None, [1, 2])
+ WVEXCEPT(KeyError, t.addTest, None, [1, 2, 3, 4])
+
+ class MyTest(Test):
+ pass
+
+ t.addTest(MyTest, [1, 'a', 'A']);
+
+ WVPASSEQ(dt.keys(), [1])
+ WVPASSEQ(dk.keys(), ['a'])
+ WVPASSEQ(dd.keys(), ['A'])
+
+ v1 = dt[1]
+ v2 = dk['a']
+ v3 = dd['A']
+
+ WVPASSEQ(t.getTest((v1, v2, v3)), MyTest)
+ WVPASSEQ(t.getTest((v1, v3, v2)), MyTest)
+ WVPASSEQ(t.getTest((v3, v2, v1)), MyTest)
+ WVEXCEPT(KeyError, t.getTest, (v1, v1, v1))
+ WVEXCEPT(KeyError, t.getTest, (v1, v2))
+ WVEXCEPT(TypeError, t.getTest, v1)
+
+ WVPASSEQ([d.__class__.__name__ for d in t.iterRemainingDimensions([dt])], ['DimensionKern', 'Dimension'])
+ WVPASSEQ([d.__class__.__name__ for d in t.iterRemainingDimensions([dt, dd])], ['DimensionKern'])
+
+ WVPASSEQ(str([v for v in iterDimValues([dt, dk])]), str([[1,'a']]))
+ dt.addValue(2)
+ dk.addValue('b')
+ WVPASSEQ(str([v for v in iterDimValues([dt, dk])]), str([[1, 'a'], [2, 'a'], [1, 'b'], [2, 'b']]))