• Jump To … +
    data.js dentaku.normal.js env.js evaluator.js fileio.js list.js monad.js monad_transformer.js pair.js parser.js pprinter.js string.js turing.js chap01.spec.js chap02.spec.js chap03.spec.js chap04.spec.js chap05.spec.js chap06.spec.js chap07.spec.js chap08.spec.js data.spec.js dentaku.normal.spec.js evaluator.spec.js interpreter.spec.js list.spec.js monad.spec.js monad_transformer.spec.js pair.spec.js parser.spec.js pprinter.spec.js string.spec.js
  • pprinter.spec.js

  • ¶
    "use strict";
    
    var expect = require('expect.js');
    var Data = require('../lib/data.js');
    var Pair = require('../lib/pair.js');
    var List = require('../lib/list.js');
    var PP = require('../lib/pprinter.js');
    
    describe('PrettyPrinter', () => {
      it("print", (next) => {
        var pair = Pair.cons(1,2);
        expect(
          PP.print(pair)
        ).to.eql(
          "(1,2)"
        );
        expect(
          PP.print(List.cons(1, List.cons(2,List.empty())))
        ).to.eql(
          "[1,2,nil]"
        );
        expect(
          PP.print(List.cons("a", List.cons("b",List.empty())))
        ).to.eql(
          "[a,b,nil]"
        );
        expect(
          PP.print(List.empty())
        ).to.eql(
          "[]"
        );
        expect(
          PP.print(List.cons(Pair.cons(1,2), List.empty()))
        ).to.eql(
          "[(1,2),nil]"
        );
        next();
      });
    });