import “../arrays/bisect”; import “scale”;

d3.scale.threshold = function() {

return d3_scale_threshold([.5], [0, 1]);

};

function d3_scale_threshold(domain, range) {

function scale(x) {
  if (x <= x) return range[d3.bisect(domain, x)];
}

scale.domain = function(_) {
  if (!arguments.length) return domain;
  domain = _;
  return scale;
};

scale.range = function(_) {
  if (!arguments.length) return range;
  range = _;
  return scale;
};

scale.invertExtent = function(y) {
  y = range.indexOf(y);
  return [domain[y - 1], domain[y]];
};

scale.copy = function() {
  return d3_scale_threshold(domain, range);
};

return scale;

};