d3: add additional type parameter to array functions

This commit is contained in:
Neil Stalker
2013-11-16 11:38:15 +00:00
parent afc46599bc
commit bb247ebabb
2 changed files with 45 additions and 4 deletions
+42 -1
View File
@@ -590,7 +590,7 @@ function bivariateAreaChart() {
});
x.domain(d3.extent(data, function (d) { return d.date; }));
y.domain([d3.min<any>(data, function (d) { return d.low; }), d3.max<any>(data, function (d) { return d.high; })]);
y.domain([d3.min(data, function (d) { return d.low; }), d3.max(data, function (d) { return d.high; })]);
svg.append("path")
.datum(data)
@@ -2424,3 +2424,44 @@ function svgDiagonalTest () {
d.target(function (d) { return {x: d.x, y: d.y}; });
d.target(function (d, i) { return {x: d.x * i, y: d.y * i}; });
}
// Tests for d3.extent
// Adopted from: https://github.com/mbostock/d3/blob/master/test/arrays/extent-test.js
function extentTest() {
var o = { valueOf: function () { return NaN; } };
d3.extent([1]);
d3.extent([5, 1, 2, 3, 4]);
d3.extent([20, 3]);
d3.extent([3, 20]);
d3.extent(["c", "a", "b"]);
d3.extent(["20", "3"]);
d3.extent(["3", "20"]);
d3.extent([NaN, 1, 2, 3, 4, 5]);
d3.extent([o, 1, 2, 3, 4, 5]);
d3.extent([1, 2, 3, 4, 5, NaN]);
d3.extent([1, 2, 3, 4, 5, o]);
d3.extent([10, null, 3, undefined, 5, NaN]);
d3.extent([-1, null, -3, undefined, -5, NaN]);
d3.extent([20, "3"]);
d3.extent(["20", 3]);
d3.extent([3, "20"]);
d3.extent(["3", 20]);
d3.extent([1], (d) => { return d; });
d3.extent([5, 1, 2, 3, 4], (d) => { return d; });
d3.extent([20, 3], (d) => { return d; });
d3.extent([3, 20], (d) => { return d; });
d3.extent(["c", "a", "b"], (d) => { return d; });
d3.extent(["20", "3"], (d) => { return d; });
d3.extent(["3", "20"], (d) => { return d; });
d3.extent([NaN, 1, 2, 3, 4, 5], (d) => { return d; });
d3.extent([o, 1, 2, 3, 4, 5], (d) => { return d; });
d3.extent([1, 2, 3, 4, 5, NaN], (d) => { return d; });
d3.extent([1, 2, 3, 4, 5, o], (d) => { return d; });
d3.extent([10, null, 3, undefined, 5, NaN], (d) => { return d; });
d3.extent([-1, null, -3, undefined, -5, NaN], (d) => { return d; });
d3.extent([20, "3"], (d) => { return d; });
d3.extent(["20", 3], (d) => { return d; });
d3.extent([3, "20"], (d) => { return d; });
d3.extent(["3", 20], (d) => { return d; });
}
Vendored
+3 -3
View File
@@ -88,21 +88,21 @@ declare module D3 {
* @param arr Array to search
* @param map Accsessor function
*/
min<T>(arr: T[], map?: (v: T) => number): number;
min<T, U>(arr: T[], map?: (v: T) => U): U;
/**
* Find the maximum value in an array
*
* @param arr Array to search
* @param map Accsessor function
*/
max<T>(arr: T[], map?: (v: T) => number): number;
max<T, U>(arr: T[], map?: (v: T) => U): U;
/**
* Find the minimum and maximum value in an array
*
* @param arr Array to search
* @param map Accsessor function
*/
extent<T>(arr: T[], map?: (v: T) => number): number[];
extent<T, U>(arr: T[], map?: (v: T) => U): U[];
/**
* Compute the sum of an array of numbers
*