Code coverage report for lib/mobility.js

Statements: 87.88% (29 / 33)      Branches: 80% (8 / 10)      Functions: 100% (8 / 8)      Lines: 87.88% (29 / 33)      Ignored: none     

All files » lib/ » mobility.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  1   5     3       1 1 1     1 44389 44389   1   26427   490546   490546 1887       24540     1 1 1   1                 4502         4502     4502 709 149   560   3793   1 1 4353    
"use strict";
Object.defineProperties(exports, {
  Mobility: {get: function() {
      return Mobility;
    }},
  quadrants: {get: function() {
      return quadrants;
    }},
  __esModule: {value: true}
});
var PAWN = require('./brands').PAWN;
var Point = require('./point').Point;
var $__2 = require('./util'),
    squareName = $__2.squareName,
    squareCoords = $__2.squareCoords;
var Mobility = function Mobility(m, n) {
  this.m = m;
  this.n = n;
};
($traceurRuntime.createClass)(Mobility, {
  test: function(position, src, dest) {
    for (var $__4 = this.adjacentPoints(position, src)[$traceurRuntime.toProperty(Symbol.iterator)](),
        $__5; !($__5 = $__4.next()).done; ) {
      var adj = $__5.value;
      {
        if (dest.equal(adj)) {
          return true;
        }
      }
    }
    return false;
  },
  adjacentPoints: $traceurRuntime.initGeneratorFunction(function $__8(position, coords) {
    return $traceurRuntime.createGeneratorInstance(function($ctx) {
      while (true)
        switch ($ctx.state) {
          case 0:
            throw new Error("subclass must override Mobility#adjacentPoints");
            $ctx.state = -2;
            break;
          default:
            return $ctx.end();
        }
    }, $__8, this);
  })
}, {isLegal: function($__6) {
    var $__7 = $traceurRuntime.assertObject($__6),
        position = $__7.position,
        piece = $__7.piece,
        target = $__7.target,
        capturePiece = $__7.capturePiece;
    Iif (position.activeColor !== piece.color) {
      return false;
    }
    if (capturePiece != null) {
      if (piece.color === capturePiece.color) {
        return false;
      }
      return legally('canCapture', position, piece, target);
    }
    return legally('canMove', position, piece, target);
  }});
var quadrants = [new Point(1, 1), new Point(1, -1), new Point(-1, 1), new Point(-1, -1)];
function legally(method, position, piece, target) {
  return piece[$traceurRuntime.toProperty(method)](position, position.pieceCoords(piece), target);
}