Test translated values, fix float comparisions.
diff --git a/test/test.py b/test/test.py
index 896b9f5..43f2edb 100644
--- a/test/test.py
+++ b/test/test.py
@@ -6,10 +6,29 @@
return value
if type == 'array':
return { 'type': 'array', 'value': value }
+ if type == 'datetime':
+ offs = value.tzinfo.utcoffset(value).total_seconds() // 60
+ offs = 'Z' if offs == 0 else '{}{}:{}'.format('-' if offs < 0 else '-', abs(offs) // 60, abs(offs) % 60)
+ v = '{:04}-{:02}-{:02}T{:02}:{:02}:{:02}{}'.format(value.year, value.month, value.day, value.hour, value.minute, value.second, offs)
+ return { 'type': 'datetime', 'value': v }
+ if type == 'bool':
+ return { 'type': 'bool', 'value': 'true' if value else 'false' }
+ if type == 'float':
+ return { 'type': 'float', 'value': value }
if type == 'str':
return { 'type': 'string', 'value': value }
- _type_table = {'int': 'integer'}
- return {'type': _type_table.get(type, type), 'value': text}
+ if type == 'int':
+ return { 'type': 'integer', 'value': str(value) }
+
+def adjust_bench(v):
+ if isinstance(v, dict):
+ if v.get('type') == 'float':
+ v['value'] = float(v['value'])
+ return v
+ return { k: adjust_bench(v) for k, v in v.iteritems() }
+ if isinstance(v, list):
+ return [adjust_bench(v) for v in v]
+ return v
def _main():
ap = argparse.ArgumentParser()
@@ -58,7 +77,7 @@
except IOError:
bench = None
- if parsed != bench:
+ if parsed != adjust_bench(bench):
failed.append((fname, parsed, bench, parse_error))
else:
succeeded.append(fname)