Added tests to lint and cleaned existing

master
John Kiernander 2014-01-22 00:01:41 +00:00
parent 2e3a06aeb3
commit 87082533b5
71 changed files with 4574 additions and 2710 deletions

View File

@ -56,6 +56,7 @@ module.exports = function(grunt) {
jslint: {
files: [
'Gruntfile.js',
'test/**/*.spec.js',
'dist/<%= pkg.name %>.v<%= pkg.version %>.js'
],
directives: {
@ -64,7 +65,9 @@ module.exports = function(grunt) {
predef: [
'd3',
'module',
'console'
'console',
'jasmine',
'dimple'
]
}
},

4263
dist/dimple.v1.1.4.js vendored Normal file

File diff suppressed because it is too large Load Diff

2
dist/dimple.v1.1.4.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
// This is the simple vertical grouped stacked 100% bar example
var svg = dimple.newSvg("#chartContainer", 590, 400);

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
// Create the svg and set the dimensions

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
// Create the svg and set the dimensions

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
var data = [

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer" style="height: 100%">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
// In version 1.1.0 it's possible to initialise any size parameter with a
// % value as well as pixels

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
// This code should support any data in this structure changing the data here

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -3,7 +3,7 @@
<!----------------------------------------------------------------->
<div id="chartContainer">
<script src="/lib/d3.v3.min.js"></script>
<script src="/dist/dimple.v1.1.2.js"></script>
<script src="/dist/dimple.v1.1.4.js"></script>
<script type="text/javascript">
var svg = dimple.newSvg("#chartContainer", 590, 400);
d3.tsv("/data/example_data.tsv", function (data) {

View File

@ -1,244 +0,0 @@
/**
* QUnit v1.11.0 - A JavaScript Unit Testing Framework
*
* http://qunitjs.com
*
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
/** Font Family and Sizes */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
}
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
#qunit-tests { font-size: smaller; }
/** Resets */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
margin: 0;
padding: 0;
}
/** Header */
#qunit-header {
padding: 0.5em 0 0.5em 1em;
color: #8699a4;
background-color: #0d3349;
font-size: 1.5em;
line-height: 1em;
font-weight: normal;
border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
}
#qunit-header a {
text-decoration: none;
color: #c2ccd1;
}
#qunit-header a:hover,
#qunit-header a:focus {
color: #fff;
}
#qunit-testrunner-toolbar label {
display: inline-block;
padding: 0 .5em 0 .1em;
}
#qunit-banner {
height: 5px;
}
#qunit-testrunner-toolbar {
padding: 0.5em 0 0.5em 2em;
color: #5E740B;
background-color: #eee;
overflow: hidden;
}
#qunit-userAgent {
padding: 0.5em 0 0.5em 2.5em;
background-color: #2b81af;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
}
#qunit-modulefilter-container {
float: right;
}
/** Tests: Pass/Fail */
#qunit-tests {
list-style-position: inside;
}
#qunit-tests li {
padding: 0.4em 0.5em 0.4em 2.5em;
border-bottom: 1px solid #fff;
list-style-position: inside;
}
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
display: none;
}
#qunit-tests li strong {
cursor: pointer;
}
#qunit-tests li a {
padding: 0.5em;
color: #c2ccd1;
text-decoration: none;
}
#qunit-tests li a:hover,
#qunit-tests li a:focus {
color: #000;
}
#qunit-tests li .runtime {
float: right;
font-size: smaller;
}
.qunit-assert-list {
margin-top: 0.5em;
padding: 0.5em;
background-color: #fff;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.qunit-collapsed {
display: none;
}
#qunit-tests table {
border-collapse: collapse;
margin-top: .2em;
}
#qunit-tests th {
text-align: right;
vertical-align: top;
padding: 0 .5em 0 0;
}
#qunit-tests td {
vertical-align: top;
}
#qunit-tests pre {
margin: 0;
white-space: pre-wrap;
word-wrap: break-word;
}
#qunit-tests del {
background-color: #e0f2be;
color: #374e0c;
text-decoration: none;
}
#qunit-tests ins {
background-color: #ffcaca;
color: #500;
text-decoration: none;
}
/*** Test Counts */
#qunit-tests b.counts { color: black; }
#qunit-tests b.passed { color: #5E740B; }
#qunit-tests b.failed { color: #710909; }
#qunit-tests li li {
padding: 5px;
background-color: #fff;
border-bottom: none;
list-style-position: inside;
}
/*** Passing Styles */
#qunit-tests li li.pass {
color: #3c510c;
background-color: #fff;
border-left: 10px solid #C6E746;
}
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
#qunit-tests .pass .test-name { color: #366097; }
#qunit-tests .pass .test-actual,
#qunit-tests .pass .test-expected { color: #999999; }
#qunit-banner.qunit-pass { background-color: #C6E746; }
/*** Failing Styles */
#qunit-tests li li.fail {
color: #710909;
background-color: #fff;
border-left: 10px solid #EE5757;
white-space: pre;
}
#qunit-tests > li:last-child {
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
}
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
#qunit-tests .fail .test-name,
#qunit-tests .fail .module-name { color: #000000; }
#qunit-tests .fail .test-actual { color: #EE5757; }
#qunit-tests .fail .test-expected { color: green; }
#qunit-banner.qunit-fail { background-color: #EE5757; }
/** Result */
#qunit-testresult {
padding: 0.5em 0.5em 0.5em 2.5em;
color: #2b81af;
background-color: #D2E0E6;
border-bottom: 1px solid white;
}
#qunit-testresult .module-name {
font-weight: bold;
}
/** Fixture */
#qunit-fixture {
position: absolute;
top: -10000px;
left: -10000px;
width: 1000px;
height: 1000px;
}

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "dimple",
"version": "1.1.3",
"version": "1.1.4",
"private": true,
"licenses": [
{

View File

@ -4,7 +4,7 @@
// Create the stub object
var dimple = {
version: "1.1.2",
version: "1.1.4",
plot: {},
aggregateMethod: {}
};

View File

@ -1,77 +1,113 @@
describe("_getOrderedList", function() {
var data;
var getResults
/*global expect, describe, it, beforeEach */
(function () {
"use strict";
beforeEach(function() {
data = [
{ "Int": 1, "Float":234, "Text":"XFBGR", "Date":"12/5/99", "Group":"A"},
{ "Int": 2, "Float":54.35, "Text":"YTREB", "Date":"1/1/00", "Group":"A"},
{ "Int": 3, "Float":-453, "Text":"XGFDY", "Date":"2 February 2007", "Group":"B"},
{ "Int": 4, "Float":5436546, "Text":"XGFDE", "Date":"2000-03-01", "Group":"B"},
{ "Int": 5, "Float":4323, "Text":"YTREB", "Date":"10/10/2000", "Group":"C"},
{ "Int": 6, "Float":0, "Text":"GFDHN", "Date":"11/10/2000", "Group":"C"},
{ "Int": 7, "Float":-453, "Text":"TRET", "Date":"10/9/2000", "Group":"D"},
{ "Int": 1, "Float":5436546, "Text":"GFDGFDHG", "Date":"10/10/2000", "Group":"E"}
];
describe("_getOrderedList", function() {
var data,
getResults;
getResults = function(data, field, levelDefinitions) {
var ordered = dimple._getOrderedList(data, field, levelDefinitions);
var retString = "";
ordered.forEach(function (d, i) {
retString += (i > 0 ? ", " : "") + d;
});
return retString;
}
beforeEach(function() {
data = [
{ "Int": 1, "Float": 234, "Text": "XFBGR", "Date": "12/5/99", "Group": "A"},
{ "Int": 2, "Float": 54.35, "Text": "YTREB", "Date": "1/1/00", "Group": "A"},
{ "Int": 3, "Float": -453, "Text": "XGFDY", "Date": "2 February 2007", "Group": "B"},
{ "Int": 4, "Float": 5436546, "Text": "XGFDE", "Date": "2000-03-01", "Group": "B"},
{ "Int": 5, "Float": 4323, "Text": "YTREB", "Date": "10/10/2000", "Group": "C"},
{ "Int": 6, "Float": 0, "Text": "GFDHN", "Date": "11/10/2000", "Group": "C"},
{ "Int": 7, "Float": -453, "Text": "TRET", "Date": "10/9/2000", "Group": "D"},
{ "Int": 1, "Float": 5436546, "Text": "GFDGFDHG", "Date": "10/10/2000", "Group": "E"}
];
getResults = function(data, field, levelDefinitions) {
var ordered = dimple._getOrderedList(data, field, levelDefinitions),
retString = "";
ordered.forEach(function (d, i) {
retString += (i > 0 ? ", " : "") + d;
});
return retString;
};
});
it("Implicitly orders by a single dimension", function() {
expect(getResults(data, "Int"))
.toEqual("1, 2, 3, 4, 5, 6, 7");
expect(getResults(data, "Float"))
.toEqual("-453, 0, 54.35, 234, 4323, 5436546");
expect(getResults(data, "Text"))
.toEqual("GFDGFDHG, GFDHN, TRET, XFBGR, XGFDE, XGFDY, YTREB");
expect(getResults(data, "Date"))
.toEqual("12/5/99, 1/1/00, 2000-03-01, 10/9/2000, 10/10/2000, 11/10/2000, 2 February 2007");
});
it("Explicitly orders by a single dimension", function() {
expect(getResults(data, "Int", { ordering : "Int" }))
.toEqual("1, 2, 3, 4, 5, 6, 7");
expect(getResults(data, "Float", { ordering : "Float" }))
.toEqual("-453, 0, 54.35, 234, 4323, 5436546");
expect(getResults(data, "Text", { ordering : "Text" }))
.toEqual("GFDGFDHG, GFDHN, TRET, XFBGR, XGFDE, XGFDY, YTREB");
expect(getResults(data, "Date", { ordering : "Date" }))
.toEqual("12/5/99, 1/1/00, 2000-03-01, 10/9/2000, 10/10/2000, 11/10/2000, 2 February 2007");
});
it("Orders descending by a single dimension", function() {
expect(getResults(data, "Int", { ordering : "Int", desc : true }))
.toEqual("7, 6, 5, 4, 3, 2, 1");
expect(getResults(data, "Float", { ordering : "Float", desc : true }))
.toEqual("5436546, 4323, 234, 54.35, 0, -453");
expect(getResults(data, "Text", { ordering : "Text", desc : true }))
.toEqual("YTREB, XGFDY, XGFDE, XFBGR, TRET, GFDHN, GFDGFDHG");
expect(getResults(data, "Date", { ordering : "Date", desc : true }))
.toEqual("2 February 2007, 11/10/2000, 10/10/2000, 10/9/2000, 2000-03-01, 1/1/00, 12/5/99");
});
it("Orders by a passed array", function() {
expect(getResults(data, "Int", { ordering : [3, 7, 4, 5, 2, 1, 6] }))
.toEqual("3, 7, 4, 5, 2, 1, 6");
expect(getResults(data, "Int", { ordering : [3, 7, 4, 5, 2, 1, 6], desc : true }))
.toEqual("6, 1, 2, 5, 4, 7, 3");
expect(getResults(data, "Int", { ordering : [3, 7, 4] }))
.toEqual("3, 7, 4, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : [3, 7, 4], desc : true }))
.toEqual("4, 7, 3, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4", "5", "2", "1", "6"] }))
.toEqual("3, 7, 4, 5, 2, 1, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4", "5", "2", "1", "6"], desc : true }))
.toEqual("6, 1, 2, 5, 4, 7, 3");
expect(getResults(data, "Int", { ordering : ["3", "7", "4"] }))
.toEqual("3, 7, 4, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4"], desc : true }))
.toEqual("4, 7, 3, 1, 2, 5, 6");
});
it("Orders by a custom function", function() {
expect(getResults(data, "Text", { ordering : function (a, b) { return a.Text.length - b.Text.length; }}))
.toEqual("TRET, GFDHN, XFBGR, XGFDE, XGFDY, YTREB, GFDGFDHG");
expect(getResults(data, "Text", { ordering : function (a, b) { return a.Text.length - b.Text.length; }, desc : true }))
.toEqual("GFDGFDHG, GFDHN, XFBGR, XGFDE, XGFDY, YTREB, TRET");
});
it("Orders by a second category", function() {
expect(getResults(data, "Int", { ordering : "Text" }))
.toEqual("6, 7, 1, 4, 3, 2, 5");
expect(getResults(data, "Int", { ordering : "Text", desc : true }))
.toEqual("2, 5, 3, 4, 1, 7, 6");
expect(getResults(data, "Group", { ordering : "Float" }))
.toEqual("D, A, C, B, E");
expect(getResults(data, "Group", { ordering : "Float", desc : true }))
.toEqual("E, B, C, A, D");
});
it("Orders by a third category", function() {
expect(getResults(data, "Int", [{ ordering : "Group" }, { ordering : "Float" }]))
.toEqual("2, 1, 3, 4, 6, 5, 7");
expect(getResults(data, "Int", [{ ordering : "Group", desc : true}, { ordering : "Float" }]))
.toEqual("7, 6, 5, 3, 4, 2, 1");
expect(getResults(data, "Int", [{ ordering : "Group"}, { ordering : "Float", desc : true }]))
.toEqual("1, 2, 4, 3, 5, 6, 7");
expect(getResults(data, "Int", [{ ordering : "Group", desc : true}, { ordering : "Float", desc : true }]))
.toEqual("7, 5, 6, 4, 3, 1, 2");
});
});
it("Implicit Single Dimension Ordering", function() {
expect(getResults(data, "Int")).toEqual( "1, 2, 3, 4, 5, 6, 7");
expect(getResults(data, "Float")).toEqual( "-453, 0, 54.35, 234, 4323, 5436546");
expect(getResults(data, "Text")).toEqual( "GFDGFDHG, GFDHN, TRET, XFBGR, XGFDE, XGFDY, YTREB");
expect(getResults(data, "Date")).toEqual( "12/5/99, 1/1/00, 2000-03-01, 10/9/2000, 10/10/2000, 11/10/2000, 2 February 2007");
});
it("Explicit Single Dimension Ordering", function() {
expect(getResults(data, "Int", { ordering : "Int" })).toEqual( "1, 2, 3, 4, 5, 6, 7");
expect(getResults(data, "Float", { ordering : "Float" })).toEqual( "-453, 0, 54.35, 234, 4323, 5436546");
expect(getResults(data, "Text", { ordering : "Text" })).toEqual( "GFDGFDHG, GFDHN, TRET, XFBGR, XGFDE, XGFDY, YTREB");
expect(getResults(data, "Date", { ordering : "Date" })).toEqual( "12/5/99, 1/1/00, 2000-03-01, 10/9/2000, 10/10/2000, 11/10/2000, 2 February 2007");
});
it("Descending Single Dimension Ordering", function() {
expect(getResults(data, "Int", { ordering : "Int", desc : true })).toEqual( "7, 6, 5, 4, 3, 2, 1");
expect(getResults(data, "Float", { ordering : "Float", desc : true })).toEqual( "5436546, 4323, 234, 54.35, 0, -453");
expect(getResults(data, "Text", { ordering : "Text", desc : true })).toEqual( "YTREB, XGFDY, XGFDE, XFBGR, TRET, GFDHN, GFDGFDHG");
expect(getResults(data, "Date", { ordering : "Date", desc : true })).toEqual( "2 February 2007, 11/10/2000, 10/10/2000, 10/9/2000, 2000-03-01, 1/1/00, 12/5/99");
});
it("List Ordering", function() {
expect(getResults(data, "Int", { ordering : [3, 7, 4, 5, 2, 1, 6] })).toEqual( "3, 7, 4, 5, 2, 1, 6");
expect(getResults(data, "Int", { ordering : [3, 7, 4, 5, 2, 1, 6], desc : true })).toEqual( "6, 1, 2, 5, 4, 7, 3");
expect(getResults(data, "Int", { ordering : [3, 7, 4] })).toEqual( "3, 7, 4, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : [3, 7, 4], desc : true })).toEqual( "4, 7, 3, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4", "5", "2", "1", "6"] })).toEqual( "3, 7, 4, 5, 2, 1, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4", "5", "2", "1", "6"], desc : true })).toEqual( "6, 1, 2, 5, 4, 7, 3");
expect(getResults(data, "Int", { ordering : ["3", "7", "4"] })).toEqual( "3, 7, 4, 1, 2, 5, 6");
expect(getResults(data, "Int", { ordering : ["3", "7", "4"], desc : true })).toEqual( "4, 7, 3, 1, 2, 5, 6");
});
it("Functional Ordering", function() {
expect(getResults(data, "Text", { ordering : function (a, b) { return a.Text.length - b.Text.length; } })).toEqual( "TRET, GFDHN, XFBGR, XGFDE, XGFDY, YTREB, GFDGFDHG");
expect(getResults(data, "Text", { ordering : function (a, b) { return a.Text.length - b.Text.length; }, desc : true })).toEqual( "GFDGFDHG, GFDHN, XFBGR, XGFDE, XGFDY, YTREB, TRET");
});
it("Secondary Category Ordering", function() {
expect(getResults(data, "Int", { ordering : "Text" })).toEqual( "6, 7, 1, 4, 3, 2, 5");
expect(getResults(data, "Int", { ordering : "Text", desc : true } )).toEqual( "2, 5, 3, 4, 1, 7, 6");
expect(getResults(data, "Group", { ordering : "Float" } )).toEqual( "D, A, C, B, E");
expect(getResults(data, "Group", { ordering : "Float", desc : true } )).toEqual( "E, B, C, A, D");
});
it("Tertiary Category Ordering", function() {
expect(getResults(data, "Int", [{ ordering : "Group" }, { ordering : "Float" }])).toEqual( "2, 1, 3, 4, 6, 5, 7");
expect(getResults(data, "Int", [{ ordering : "Group", desc : true}, { ordering : "Float" }])).toEqual( "7, 6, 5, 3, 4, 2, 1");
expect(getResults(data, "Int", [{ ordering : "Group"}, { ordering : "Float", desc : true }])).toEqual( "1, 2, 4, 3, 5, 6, 7");
expect(getResults(data, "Int", [{ ordering : "Group", desc : true}, { ordering : "Float", desc : true }])).toEqual( "7, 5, 6, 4, 3, 1, 2");
});
});
}());

View File

@ -1,125 +1,86 @@
describe("_rollUp", function() {
var data;
var getResults
/*global expect, describe, it, beforeEach */
(function () {
"use strict";
beforeEach(function() {
data = [
{ "Field 1":"a", "Field 2":"x", "Field 3":"s", "Field 4":13 },
{ "Field 1":"a", "Field 2":"y", "Field 3":"s", "Field 4":14 },
{ "Field 1":"a", "Field 2":"z", "Field 3":"t", "Field 4":15 }
];
describe("_rollUp", function() {
var data,
getResults;
// Flatten the ordered resultset for easy comparison
getResults = function(data, fields) {
var rolledUp = dimple._rollUp(data, fields, ["Field 1", "Field 2", "Field 3", "Field 4"]),
retString = "";
rolledUp.forEach(function (d, i) {
var addField = function (field) {
retString += "'" + field + "':"
if (d[field] instanceof Array) {
retString += "['" + d[field].join("','") + "']"
} else {
retString += "'" + d[field] + "'";
}
};
retString += (i > 0 ? "," : "") + "{";
addField("Field 1");
retString += ",";
addField("Field 2");
retString += ",";
addField("Field 3");
retString += ",";
addField("Field 4");
retString += "}"
});
return retString;
}
beforeEach(function() {
data = [
{ "Field 1": "a", "Field 2": "x", "Field 3": "s", "Field 4": 13 },
{ "Field 1": "a", "Field 2": "y", "Field 3": "s", "Field 4": 14 },
{ "Field 1": "a", "Field 2": "z", "Field 3": "t", "Field 4": 15 }
];
});
it("Single Dimension Squash", function() {
expect(getResults(data, "Field 1")).toEqual(
"{'Field 1':'a','Field 2':['x','y','z'],'Field 3':['s','s','t'],'Field 4':['13','14','15']}"
);
expect(getResults(data, "Field 2")).toEqual(
"{'Field 1':['a'],'Field 2':'x','Field 3':['s'],'Field 4':['13']}," +
"{'Field 1':['a'],'Field 2':'y','Field 3':['s'],'Field 4':['14']}," +
"{'Field 1':['a'],'Field 2':'z','Field 3':['t'],'Field 4':['15']}"
);
expect(getResults(data, "Field 3")).toEqual(
"{'Field 1':['a','a'],'Field 2':['x','y'],'Field 3':'s','Field 4':['13','14']}," +
"{'Field 1':['a'],'Field 2':['z'],'Field 3':'t','Field 4':['15']}"
);
expect(getResults(data, "Field 4"
)).toEqual(
"{'Field 1':['a'],'Field 2':['x'],'Field 3':['s'],'Field 4':'13'}," +
"{'Field 1':['a'],'Field 2':['y'],'Field 3':['s'],'Field 4':'14'}," +
"{'Field 1':['a'],'Field 2':['z'],'Field 3':['t'],'Field 4':'15'}"
);
// Flatten the ordered resultset for easy comparison
getResults = function(data, fields) {
var rolledUp = dimple._rollUp(data, fields, ["Field 1", "Field 2", "Field 3", "Field 4"]),
retString = "";
rolledUp.forEach(function (d, i) {
var addField = function (field) {
retString += "'" + field + "':";
if (d[field] instanceof Array) {
retString += "['" + d[field].join("','") + "']";
} else {
retString += "'" + d[field] + "'";
}
};
retString += (i > 0 ? "," : "") + "{";
addField("Field 1");
retString += ",";
addField("Field 2");
retString += ",";
addField("Field 3");
retString += ",";
addField("Field 4");
retString += "}";
});
return retString;
};
});
it("Rolls up grouped by a single field", function() {
expect(getResults(data, "Field 1"))
.toEqual("{'Field 1':'a','Field 2':['x','y','z'],'Field 3':['s','s','t'],'Field 4':['13','14','15']}");
expect(getResults(data, "Field 2"))
.toEqual("{'Field 1':['a'],'Field 2':'x','Field 3':['s'],'Field 4':['13']},{'Field 1':['a'],'Field 2':'y','Field 3':['s'],'Field 4':['14']},{'Field 1':['a'],'Field 2':'z','Field 3':['t'],'Field 4':['15']}");
expect(getResults(data, "Field 3"))
.toEqual("{'Field 1':['a','a'],'Field 2':['x','y'],'Field 3':'s','Field 4':['13','14']},{'Field 1':['a'],'Field 2':['z'],'Field 3':'t','Field 4':['15']}");
expect(getResults(data, "Field 4"))
.toEqual("{'Field 1':['a'],'Field 2':['x'],'Field 3':['s'],'Field 4':'13'},{'Field 1':['a'],'Field 2':['y'],'Field 3':['s'],'Field 4':'14'},{'Field 1':['a'],'Field 2':['z'],'Field 3':['t'],'Field 4':'15'}");
});
it("Rolls up grouped by two fields", function() {
expect(getResults(data, ["Field 1", "Field 2"]))
.toEqual("{'Field 1':'a','Field 2':'x','Field 3':['s'],'Field 4':['13']},{'Field 1':'a','Field 2':'y','Field 3':['s'],'Field 4':['14']},{'Field 1':'a','Field 2':'z','Field 3':['t'],'Field 4':['15']}");
expect(getResults(data, ["Field 1", "Field 3"]))
.toEqual("{'Field 1':'a','Field 2':['x','y'],'Field 3':'s','Field 4':['13','14']},{'Field 1':'a','Field 2':['z'],'Field 3':'t','Field 4':['15']}");
expect(getResults(data, ["Field 1", "Field 4"]))
.toEqual("{'Field 1':'a','Field 2':['x'],'Field 3':['s'],'Field 4':'13'},{'Field 1':'a','Field 2':['y'],'Field 3':['s'],'Field 4':'14'},{'Field 1':'a','Field 2':['z'],'Field 3':['t'],'Field 4':'15'}");
expect(getResults(data, ["Field 2", "Field 3"]))
.toEqual("{'Field 1':['a'],'Field 2':'x','Field 3':'s','Field 4':['13']},{'Field 1':['a'],'Field 2':'y','Field 3':'s','Field 4':['14']},{'Field 1':['a'],'Field 2':'z','Field 3':'t','Field 4':['15']}");
expect(getResults(data, ["Field 2", "Field 4"]))
.toEqual("{'Field 1':['a'],'Field 2':'x','Field 3':['s'],'Field 4':'13'},{'Field 1':['a'],'Field 2':'y','Field 3':['s'],'Field 4':'14'},{'Field 1':['a'],'Field 2':'z','Field 3':['t'],'Field 4':'15'}");
expect(getResults(data, ["Field 3", "Field 4"]))
.toEqual("{'Field 1':['a'],'Field 2':['x'],'Field 3':'s','Field 4':'13'},{'Field 1':['a'],'Field 2':['y'],'Field 3':'s','Field 4':'14'},{'Field 1':['a'],'Field 2':['z'],'Field 3':'t','Field 4':'15'}");
});
it("Rolls up grouped by three fields", function() {
expect(getResults(data, ["Field 1", "Field 2", "Field 3"]))
.toEqual("{'Field 1':'a','Field 2':'x','Field 3':'s','Field 4':['13']},{'Field 1':'a','Field 2':'y','Field 3':'s','Field 4':['14']},{'Field 1':'a','Field 2':'z','Field 3':'t','Field 4':['15']}");
expect(getResults(data, ["Field 1", "Field 2", "Field 4"]))
.toEqual("{'Field 1':'a','Field 2':'x','Field 3':['s'],'Field 4':'13'},{'Field 1':'a','Field 2':'y','Field 3':['s'],'Field 4':'14'},{'Field 1':'a','Field 2':'z','Field 3':['t'],'Field 4':'15'}");
expect(getResults(data, ["Field 1", "Field 3", "Field 4"]))
.toEqual("{'Field 1':'a','Field 2':['x'],'Field 3':'s','Field 4':'13'},{'Field 1':'a','Field 2':['y'],'Field 3':'s','Field 4':'14'},{'Field 1':'a','Field 2':['z'],'Field 3':'t','Field 4':'15'}");
expect(getResults(data, ["Field 2", "Field 3", "Field 4"]))
.toEqual("{'Field 1':['a'],'Field 2':'x','Field 3':'s','Field 4':'13'},{'Field 1':['a'],'Field 2':'y','Field 3':'s','Field 4':'14'},{'Field 1':['a'],'Field 2':'z','Field 3':'t','Field 4':'15'}");
});
it("Rolls up grouped by all fields", function() {
expect(getResults(data, ["Field 1", "Field 2", "Field 3", "Field 4"]))
.toEqual("{'Field 1':'a','Field 2':'x','Field 3':'s','Field 4':'13'},{'Field 1':'a','Field 2':'y','Field 3':'s','Field 4':'14'},{'Field 1':'a','Field 2':'z','Field 3':'t','Field 4':'15'}");
});
});
it("Double Dimension Squash", function() {
expect(getResults(data, ["Field 1", "Field 2"])).toEqual(
"{'Field 1':'a','Field 2':'x','Field 3':['s'],'Field 4':['13']}," +
"{'Field 1':'a','Field 2':'y','Field 3':['s'],'Field 4':['14']}," +
"{'Field 1':'a','Field 2':'z','Field 3':['t'],'Field 4':['15']}"
);
expect(getResults(data, ["Field 1", "Field 3"])).toEqual(
"{'Field 1':'a','Field 2':['x','y'],'Field 3':'s','Field 4':['13','14']}," +
"{'Field 1':'a','Field 2':['z'],'Field 3':'t','Field 4':['15']}"
);
expect(getResults(data, ["Field 1", "Field 4"])).toEqual(
"{'Field 1':'a','Field 2':['x'],'Field 3':['s'],'Field 4':'13'}," +
"{'Field 1':'a','Field 2':['y'],'Field 3':['s'],'Field 4':'14'}," +
"{'Field 1':'a','Field 2':['z'],'Field 3':['t'],'Field 4':'15'}"
);
expect(getResults(data, ["Field 2", "Field 3"])).toEqual(
"{'Field 1':['a'],'Field 2':'x','Field 3':'s','Field 4':['13']}," +
"{'Field 1':['a'],'Field 2':'y','Field 3':'s','Field 4':['14']}," +
"{'Field 1':['a'],'Field 2':'z','Field 3':'t','Field 4':['15']}"
);
expect(getResults(data, ["Field 2", "Field 4"])).toEqual(
"{'Field 1':['a'],'Field 2':'x','Field 3':['s'],'Field 4':'13'}," +
"{'Field 1':['a'],'Field 2':'y','Field 3':['s'],'Field 4':'14'}," +
"{'Field 1':['a'],'Field 2':'z','Field 3':['t'],'Field 4':'15'}"
);
expect(getResults(data, ["Field 3", "Field 4"])).toEqual(
"{'Field 1':['a'],'Field 2':['x'],'Field 3':'s','Field 4':'13'}," +
"{'Field 1':['a'],'Field 2':['y'],'Field 3':'s','Field 4':'14'}," +
"{'Field 1':['a'],'Field 2':['z'],'Field 3':'t','Field 4':'15'}"
);
});
it("Triple Dimension Squash", function() {
expect(getResults(data, ["Field 1", "Field 2", "Field 3"])).toEqual(
"{'Field 1':'a','Field 2':'x','Field 3':'s','Field 4':['13']}," +
"{'Field 1':'a','Field 2':'y','Field 3':'s','Field 4':['14']}," +
"{'Field 1':'a','Field 2':'z','Field 3':'t','Field 4':['15']}"
);
expect(getResults(data, ["Field 1", "Field 2", "Field 4"])).toEqual(
"{'Field 1':'a','Field 2':'x','Field 3':['s'],'Field 4':'13'}," +
"{'Field 1':'a','Field 2':'y','Field 3':['s'],'Field 4':'14'}," +
"{'Field 1':'a','Field 2':'z','Field 3':['t'],'Field 4':'15'}"
);
expect(getResults(data, ["Field 1", "Field 3", "Field 4"])).toEqual(
"{'Field 1':'a','Field 2':['x'],'Field 3':'s','Field 4':'13'}," +
"{'Field 1':'a','Field 2':['y'],'Field 3':'s','Field 4':'14'}," +
"{'Field 1':'a','Field 2':['z'],'Field 3':'t','Field 4':'15'}"
);
expect(getResults(data, ["Field 2", "Field 3", "Field 4"])).toEqual(
"{'Field 1':['a'],'Field 2':'x','Field 3':'s','Field 4':'13'}," +
"{'Field 1':['a'],'Field 2':'y','Field 3':'s','Field 4':'14'}," +
"{'Field 1':['a'],'Field 2':'z','Field 3':'t','Field 4':'15'}"
);
});
it("Full Dimension Squash", function() {
expect(getResults(data, ["Field 1", "Field 2", "Field 3", "Field 4"])).toEqual(
"{'Field 1':'a','Field 2':'x','Field 3':'s','Field 4':'13'}," +
"{'Field 1':'a','Field 2':'y','Field 3':'s','Field 4':'14'}," +
"{'Field 1':'a','Field 2':'z','Field 3':'t','Field 4':'15'}"
);
});
});
/*
*/
}());

View File

@ -1,61 +1,56 @@
describe("newSvg", function() {
var getResults;
/*global expect, describe, it, beforeEach */
(function () {
"use strict";
beforeEach(function() {
getResults = function(selector, width, height) {
var retString = "";
return retString;
};
describe("newSvg", function() {
d3.select("body").append("div").attr("id", "itDiv");
beforeEach(function() {
d3.select("body").append("div").attr("id", "itDiv");
});
it("should add by tag", function() {
var svg;
dimple.newSvg("body", 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("BODY");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
expect(svg.length).toEqual(0);
});
it("should add by id", function() {
var svg;
dimple.newSvg("#itDiv", 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("DIV");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
});
it("should add by default parameter", function() {
var svg;
dimple.newSvg(null, 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("BODY");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
});
it("should check selection exceptions", function() {
var svg,
random = function() {
dimple.newSvg("random string", 200, 100);
};
expect(random).toThrow("The 'random string' selector did not match any elements. Please prefix with '#' to select by id or '.' to select by class");
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(0);
});
});
it("should add by tag", function() {
var svg;
dimple.newSvg("body", 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("BODY");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
expect(svg.length).toEqual(0);
});
it("should add by id", function() {
var svg;
dimple.newSvg("#itDiv", 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("DIV");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
});
it("should add by default parameter", function() {
var svg;
dimple.newSvg(null, 200, 100);
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(1);
expect(document.getElementsByTagName("svg")[0].parentNode.tagName).toEqual("BODY");
expect(d3.select(svg[0]).attr("width")).toEqual("200");
expect(d3.select(svg[0]).attr("height")).toEqual("100");
d3.select(svg[0]).remove();
});
it("should check selection exceptions", function() {
var svg;
var random = function() {
dimple.newSvg("random string", 200, 100);
};
expect(random).toThrow("The 'random string' selector did not match any elements. Please prefix with '#' to select by id or '.' to select by class");
svg = document.getElementsByTagName("svg");
expect(svg.length).toEqual(0);
});
});
/*
*/
}());