Merge pull request #779 from nasa/precision-778b

[Data Formats] Format numeric values with full precision
This commit is contained in:
Andrew Henry 2016-03-23 12:15:26 -07:00
commit 3e4a3aeb9b
4 changed files with 17 additions and 9 deletions

View File

@ -26,6 +26,8 @@ define(
function () { function () {
'use strict'; 'use strict';
var DIGITS = 3;
/** /**
* Wraps a `TelemetryFormatter` to provide formats for domain and * Wraps a `TelemetryFormatter` to provide formats for domain and
* range values; provides a single place to track domain/range * range values; provides a single place to track domain/range
@ -63,6 +65,10 @@ define(
}; };
PlotTelemetryFormatter.prototype.formatRangeValue = function (value) { PlotTelemetryFormatter.prototype.formatRangeValue = function (value) {
if (typeof value === 'number') {
return value.toFixed(DIGITS);
}
return this.telemetryFormatter return this.telemetryFormatter
.formatRangeValue(value, this.rangeFormat); .formatRangeValue(value, this.rangeFormat);
}; };

View File

@ -55,14 +55,17 @@ define(
.toHaveBeenCalledWith(12321, domainFormat); .toHaveBeenCalledWith(12321, domainFormat);
}); });
it("includes format in formatRangeValue calls", function () { it("includes format in formatRangeValue calls for strings", function () {
mockFormatter.formatRangeValue.andReturn("formatted!"); mockFormatter.formatRangeValue.andReturn("formatted!");
expect(formatter.formatRangeValue(12321)) expect(formatter.formatRangeValue('foo'))
.toEqual("formatted!"); .toEqual("formatted!");
expect(mockFormatter.formatRangeValue) expect(mockFormatter.formatRangeValue)
.toHaveBeenCalledWith(12321, rangeFormat); .toHaveBeenCalledWith('foo', rangeFormat);
}); });
it("formats numeric values with three fixed digits", function () {
expect(formatter.formatRangeValue(10)).toEqual("10.000");
});
}); });
}); });

View File

@ -26,10 +26,6 @@ define(
function () { function () {
"use strict"; "use strict";
// Date format to use for domain values; in particular,
// use day-of-year instead of month/day
var VALUE_FORMAT_DIGITS = 3;
/** /**
* The TelemetryFormatter is responsible for formatting (as text * The TelemetryFormatter is responsible for formatting (as text
* for display) values along either the domain (usually time) or * for display) values along either the domain (usually time) or
@ -73,7 +69,7 @@ define(
* value, suitable for display. * value, suitable for display.
*/ */
TelemetryFormatter.prototype.formatRangeValue = function (v, key) { TelemetryFormatter.prototype.formatRangeValue = function (v, key) {
return isNaN(v) ? String(v) : v.toFixed(VALUE_FORMAT_DIGITS); return String(v);
}; };
return TelemetryFormatter; return TelemetryFormatter;

View File

@ -59,7 +59,10 @@ define(
}); });
it("formats ranges as values", function () { it("formats ranges as values", function () {
expect(formatter.formatRangeValue(10)).toEqual("10.000"); var value = 3.14159265352979323846264338, // not pi
formatted = formatter.formatRangeValue(value);
// Make sure we don't lose information by formatting
expect(parseFloat(formatted)).toEqual(value);
}); });
}); });
} }