Code coverage report for lib/eptarget.js

Statements: 84.85% (28 / 33)      Branches: 64.29% (9 / 14)      Functions: 75% (9 / 12)      Lines: 84.85% (28 / 33)      Ignored: none     

All files » lib/ » eptarget.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76  1   4     1       1 1 1     1 266   1 1         1       266     2433 1736   697 697 257   440     5670 5668           2 2 2 2               23     1 1 1                      
"use strict";
Object.defineProperties(exports, {
  EnPassantTarget: {get: function() {
      return EnPassantTarget;
    }},
  NullEnPassantTarget: {get: function() {
      return NullEnPassantTarget;
    }},
  __esModule: {value: true}
});
var PAWN = require('./brands').PAWN;
var Point = require('./point').Point;
var $__2 = require('./util'),
    squareCoords = $__2.squareCoords,
    squareName = $__2.squareName;
var EnPassantTarget = function EnPassantTarget() {
  $traceurRuntime.defaultSuperCall(this, $EnPassantTarget.prototype, arguments);
};
var $EnPassantTarget = EnPassantTarget;
($traceurRuntime.createClass)(EnPassantTarget, {
  offset: function() {
    return new Point(0, this.y === 3 ? -1 : 1);
  },
  toString: function() {
    return squareName(this);
  }
}, {
  fromPoint: function(point) {
    return new $EnPassantTarget(point.x, point.y);
  },
  analyze: function(position, piece, target) {
    if (piece.brand !== PAWN) {
      return new NullEnPassantTarget();
    }
    var thrust = $traceurRuntime.assertObject(target.difference(position.pieceCoords(piece))).y;
    if (Math.abs(thrust) === 2) {
      return $EnPassantTarget.fromPoint(new Point(0, -piece.reach).sum(target));
    }
    return new NullEnPassantTarget();
  },
  capturablePiece: function(position, capturer, target) {
    if (capturer.brand !== PAWN || !target.equal(position.enPassantTarget)) {
      return {
        capturePiece: position.pieceByCoords(target),
        captureTarget: target,
        isEnPassant: false
      };
    }
    var captureTarget = target.sum(new Point(0, -capturer.reach));
    var capturePiece = position.pieceByCoords(captureTarget);
    Eif (capturePiece != null) {
      return {
        capturePiece: capturePiece,
        captureTarget: captureTarget,
        isEnPassant: true
      };
    }
  },
  null: function() {
    return new NullEnPassantTarget();
  }
}, Point);
var NullEnPassantTarget = function NullEnPassantTarget() {};
var $NullEnPassantTarget = NullEnPassantTarget;
($traceurRuntime.createClass)(NullEnPassantTarget, {
  equal: function(other) {
    if (other instanceof $NullEnPassantTarget) {
      return true;
    }
    return false;
  },
  toString: function() {
    return '-';
  }
}, {}, EnPassantTarget);