toolkit/javascript/d3/test/csv/parse-test.js
changeset 47 c0b4a8b5a012
equal deleted inserted replaced
46:efd9c589177a 47:c0b4a8b5a012
       
     1 require("../env");
       
     2 require("../../d3");
       
     3 require("../../d3.csv");
       
     4 
       
     5 var vows = require("vows"),
       
     6     assert = require("assert");
       
     7 
       
     8 var suite = vows.describe("d3.csv.parse");
       
     9 
       
    10 suite.addBatch({
       
    11   "parse": {
       
    12     topic: function() {
       
    13       return d3.csv.parse;
       
    14     },
       
    15     "returns an array of objects": function(parse) {
       
    16       assert.deepEqual(parse("a,b,c\n1,2,3\n"), [{a: "1", b: "2", c: "3"}]);
       
    17     },
       
    18     "does not strip whitespace": function(parse) {
       
    19       assert.deepEqual(parse("a,b,c\n 1, 2,3\n"), [{a: " 1", b: " 2", c: "3"}]);
       
    20     },
       
    21     "parses quoted values": function(parse) {
       
    22       assert.deepEqual(parse("a,b,c\n\"1\",2,3"), [{a: "1", b: "2", c: "3"}]);
       
    23       assert.deepEqual(parse("a,b,c\n\"1\",2,3\n"), [{a: "1", b: "2", c: "3"}]);
       
    24     },
       
    25     "parses quoted values with quotes": function(parse) {
       
    26       assert.deepEqual(parse("a\n\"\"\"hello\"\"\""), [{a: "\"hello\""}]);
       
    27     },
       
    28     "parses quoted values with newlines": function(parse) {
       
    29       assert.deepEqual(parse("a\n\"new\nline\""), [{a: "new\nline"}]);
       
    30       assert.deepEqual(parse("a\n\"new\rline\""), [{a: "new\rline"}]);
       
    31       assert.deepEqual(parse("a\n\"new\r\nline\""), [{a: "new\r\nline"}]);
       
    32     },
       
    33     "parses unix newlines": function(parse) {
       
    34       assert.deepEqual(parse("a,b,c\n1,2,3\n4,5,\"6\"\n7,8,9"), [
       
    35         {a: "1", b: "2", c: "3"},
       
    36         {a: "4", b: "5", c: "6"},
       
    37         {a: "7", b: "8", c: "9"}
       
    38       ]);
       
    39     },
       
    40     "parses mac newlines": function(parse) {
       
    41       assert.deepEqual(parse("a,b,c\r1,2,3\r4,5,\"6\"\r7,8,9"), [
       
    42         {a: "1", b: "2", c: "3"},
       
    43         {a: "4", b: "5", c: "6"},
       
    44         {a: "7", b: "8", c: "9"}
       
    45       ]);
       
    46     },
       
    47     "parses dos newlines": function(parse) {
       
    48       assert.deepEqual(parse("a,b,c\r\n1,2,3\r\n4,5,\"6\"\r\n7,8,9"), [
       
    49         {a: "1", b: "2", c: "3"},
       
    50         {a: "4", b: "5", c: "6"},
       
    51         {a: "7", b: "8", c: "9"}
       
    52       ]);
       
    53     }
       
    54   },
       
    55   "parseRows": {
       
    56     topic: function() {
       
    57       return d3.csv.parseRows;
       
    58     },
       
    59     "returns an array of arrays": function(parse) {
       
    60       assert.deepEqual(parse("a,b,c\n"), [["a", "b", "c"]]);
       
    61     },
       
    62     "parses quoted values": function(parse) {
       
    63       assert.deepEqual(parse("\"1\",2,3\n"), [["1", "2", "3"]]);
       
    64       assert.deepEqual(parse("\"hello\""), [["hello"]]);
       
    65     },
       
    66     "parses quoted values with quotes": function(parse) {
       
    67       assert.deepEqual(parse("\"\"\"hello\"\"\""), [["\"hello\""]]);
       
    68     },
       
    69     "parses quoted values with newlines": function(parse) {
       
    70       assert.deepEqual(parse("\"new\nline\""), [["new\nline"]]);
       
    71       assert.deepEqual(parse("\"new\rline\""), [["new\rline"]]);
       
    72       assert.deepEqual(parse("\"new\r\nline\""), [["new\r\nline"]]);
       
    73     },
       
    74     "parses unix newlines": function(parse) {
       
    75       assert.deepEqual(parse("a,b,c\n1,2,3\n4,5,\"6\"\n7,8,9"), [
       
    76         ["a", "b", "c"],
       
    77         ["1", "2", "3"],
       
    78         ["4", "5", "6"],
       
    79         ["7", "8", "9"]
       
    80       ]);
       
    81     },
       
    82     "parses mac newlines": function(parse) {
       
    83       assert.deepEqual(parse("a,b,c\r1,2,3\r4,5,\"6\"\r7,8,9"), [
       
    84         ["a", "b", "c"],
       
    85         ["1", "2", "3"],
       
    86         ["4", "5", "6"],
       
    87         ["7", "8", "9"]
       
    88       ]);
       
    89     },
       
    90     "parses dos newlines": function(parse) {
       
    91       assert.deepEqual(parse("a,b,c\r\n1,2,3\r\n4,5,\"6\"\r\n7,8,9"), [
       
    92         ["a", "b", "c"],
       
    93         ["1", "2", "3"],
       
    94         ["4", "5", "6"],
       
    95         ["7", "8", "9"]
       
    96       ]);
       
    97     }
       
    98   }
       
    99 });
       
   100 
       
   101 suite.export(module);