format unit properly in the case of nested arrays
The unit is shown at the end of nested arrays. Change-Id: I235bc40e61161e09a7b00cd1e186d8d8c1769d89 Reviewed-on: https://forge.frm2.tum.de/review/c/secop/frappy/+/30734 Tested-by: Jenkins Automated Tests <pedersen+jenkins@frm2.tum.de> Reviewed-by: Markus Zolliker <markus.zolliker@psi.ch>
This commit is contained in:
parent
dd6ee398f2
commit
39f0180f40
@ -844,9 +844,16 @@ class ArrayOf(DataType):
|
||||
return self(value)
|
||||
|
||||
def format_value(self, value, unit=None):
|
||||
innerunit = ''
|
||||
if unit is None:
|
||||
unit = self.unit or self.members.unit
|
||||
res = '[%s]' % (', '.join([self.members.format_value(elem, '') for elem in value]))
|
||||
members = self.members
|
||||
while isinstance(members, ArrayOf):
|
||||
members = members.members
|
||||
if members.unit:
|
||||
unit = members.unit
|
||||
else:
|
||||
innerunit = None
|
||||
res = '[%s]' % (', '.join([self.members.format_value(elem, innerunit) for elem in value]))
|
||||
if unit:
|
||||
return ' '.join([res, unit])
|
||||
return res
|
||||
|
@ -420,6 +420,9 @@ def test_ArrayOf():
|
||||
dt = ArrayOf(EnumType('myenum', single=0), 5)
|
||||
copytest(dt)
|
||||
|
||||
dt = ArrayOf(ArrayOf(FloatRange(unit='m')))
|
||||
assert dt.format_value([[0, 1], [2, 3]]) == '[[0, 1], [2, 3]] m'
|
||||
|
||||
|
||||
def test_TupleOf():
|
||||
# test constructor catching illegal arguments
|
||||
|
Loading…
x
Reference in New Issue
Block a user