text: /* global loadDateFixture */
  describe('dc.colorMixin', function () {
      function colorTest (chart, domain, test) {
          chart.colorDomain(domain);
          return (test || domain).map(chart.getColor);
      }
  
      function identity (d) { return d; }
  
      describe('with ordinal domain' , function () {
          var chart, domain;
  
          beforeEach(function () {
              chart = dc.colorMixin({});
              chart.colorAccessor(identity);
              domain = ['a','b','c','d','e'];
          });
  
          it('default', function () {
              expect(colorTest(chart,domain)).toEqual(['#3182bd','#6baed6','#9ecae1','#c6dbef','#e6550d']);
          });
  
          it('custom', function () {
              chart.colors(d3.scale.category10());
              expect(colorTest(chart,domain)).toEqual(['#1f77b4','#ff7f0e','#2ca02c','#d62728','#9467bd']);
          });
  
          it('ordinal', function () {
              chart.ordinalColors(['red','green','blue']);
              expect(colorTest(chart,domain)).toEqual(['red','green','blue','red','green']);
          });
  
          it('linear', function () {
              // GIGO: mapping ordinal domain to linear scale is nonsensical
              // actually it gets scaled to NaN and then d3 corrects it
              chart.linearColors(['#FF0000','#00FF00']);
              expect(colorTest(chart,domain)).toEqual(['#000000', '#000000', '#000000', '#000000', '#000000']);
          });
      });
      describe('with numeric domain' , function () {
          var chart, domain, test;
  
          beforeEach(function () {
              chart = dc.colorChart({});
              chart.colorAccessor(identity);
              domain = [1,100];
              test = [0,1,50,100,101,1];
          });
  
          it('default', function () {
              expect(colorTest(chart,domain,test)).toEqual(['#9ecae1','#3182bd','#c6dbef','#6baed6','#e6550d','#3182bd']);
          });
  
          it('custom', function () {
              chart.colors(d3.scale.category10());
              expect(colorTest(chart,domain,test)).toEqual(['#2ca02c', '#1f77b4', '#d62728', '#ff7f0e', '#9467bd', '#1f77b4']);
          });
  
          it('ordinal', function () {
              chart.ordinalColors(['red','green','blue']);
              expect(colorTest(chart,domain,test)).toEqual(['blue', 'red', 'red', 'green', 'green', 'red']);
          });
  
          it('linear', function () {
              chart.linearColors(['#4575b4','#ffffbf']);
              expect(colorTest(chart,domain,test)).toEqual(['#4773b3', '#4575b4', '#4dc6c1', '#ffffbf', '#ffffc0', '#4575b4']);
          });
      });
      describe('calculateColorDomain' , function () {
          var chart;
  
          beforeEach(function () {
              var data = crossfilter(loadDateFixture());
              var valueDimension = data.dimension(function (d) {
                  return d.value;
              });
              var valueGroup = valueDimension.group();
              chart = dc.colorChart(dc.baseChart({}))
                  .colorAccessor(function (d) {return d.value;})
                  .group(valueGroup);
          });
  
          it('check domain', function () {
              chart.calculateColorDomain();
              expect(chart.colorDomain()).toEqual([1,3]);
          });
      });
  });
  
  