Browse Source

Modify old formatter to match rocket's formatting style

tags/nilmdb-1.3.0
Jim Paris 11 years ago
parent
commit
0d372fb878
3 changed files with 15 additions and 9 deletions
  1. +6
    -2
      nilmdb/server/layout.pyx
  2. +1
    -1
      nilmdb/server/pyrocket.py
  3. +8
    -6
      tests/test_layout.py

+ 6
- 2
nilmdb/server/layout.pyx View File

@@ -43,9 +43,13 @@ class Layout:
self.parse = self.parse_uint16
self.format_str = "%.6f" + " %d" * self.count
self.format = self.format_generic
elif datatype == 'float32' or datatype == 'float64':
elif datatype == 'float32':
self.parse = self.parse_float64
self.format_str = "%.6f" + " %f" * self.count
self.format_str = "%.6f" + " %.6e" * self.count
self.format = self.format_generic
elif datatype == 'float64':
self.parse = self.parse_float64
self.format_str = "%.6f" + " %.16e" * self.count
self.format = self.format_generic
else:
raise KeyError("invalid type")


+ 1
- 1
nilmdb/server/pyrocket.py View File

@@ -2,7 +2,7 @@
# This interface translates between the binary format on disk
# and the ASCII format used when communicating with clients.

# This is slow!
# This is slow! Use the C version instead.

import struct
import layout as _layout


+ 8
- 6
tests/test_layout.py View File

@@ -151,10 +151,12 @@ class TestLayouts(object):
[ 1234567890.100000, 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8 ] ]
text = formatter.format(data)
eq_(text,
"1234567890.000000 1.100000 2.200000 3.300000 4.400000 " +
"5.500000 6.600000 7.700000 8.800000\n" +
"1234567890.100000 1.100000 2.200000 3.300000 4.400000 " +
"5.500000 6.600000 7.700000 8.800000\n")
"1234567890.000000 1.100000e+00 2.200000e+00 3.300000e+00 "
"4.400000e+00 5.500000e+00 6.600000e+00 7.700000e+00 "
"8.800000e+00\n" +
"1234567890.100000 1.100000e+00 2.200000e+00 3.300000e+00 "
"4.400000e+00 5.500000e+00 6.600000e+00 7.700000e+00 "
"8.800000e+00\n")

# try uint16_6 too
formatter = Formatter(name_raw)
@@ -208,7 +210,7 @@ class TestLayouts(object):
eq_(parser1.data, parser2.data)

def datagen():
return [ sprintf("%f", random.uniform(-1000,1000))
return [ sprintf("%.6e", random.uniform(-1000,1000))
for x in range(8) ]
do_roundtrip(name_prep, datagen)

@@ -256,7 +258,7 @@ class TestLayoutSpeed:

print ""
def datagen():
return [ sprintf("%f", random.uniform(-1000,1000))
return [ sprintf("%.6e", random.uniform(-1000,1000))
for x in range(10) ]
do_speedtest("float32_10", datagen)



Loading…
Cancel
Save