All files / domain CubeNotation.res.mjs

100% Statements 57/57
100% Branches 50/50
100% Functions 7/7
100% Lines 57/57

Press n or j to go to the next uncovered block, b, p or k for the previous block.

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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148        7x   1x   1x   1x   1x   1x   1x   1x         6x   1x   1x   1x   1x   1x   1x         21x   7x   2x   3x   2x     6x   2x   2x   2x     8x   3x   3x   2x           10x   1x   1x   1x   1x   1x   1x   1x   1x   1x   1x         26x   4x   1x   2x   8x   1x   2x   4x   1x   3x         3x 18x   3x   3x   3x   3x   3x   3x                            
// Generated by ReScript, PLEASE EDIT WITH CARE
 
 
function faceFromString(value) {
  switch (value) {
    case "B" :
      return "B";
    case "D" :
      return "D";
    case "F" :
      return "F";
    case "L" :
      return "L";
    case "R" :
      return "R";
    case "U" :
      return "U";
    default:
      return;
  }
}
 
function faceToString(value) {
  switch (value) {
    case "U" :
      return "U";
    case "R" :
      return "R";
    case "F" :
      return "F";
    case "D" :
      return "D";
    case "L" :
      return "L";
    case "B" :
      return "B";
  }
}
 
function token(axis, turn) {
  switch (axis) {
    case "x" :
      switch (turn) {
        case "" :
          return "x";
        case "'" :
          return "x'";
        case "2" :
          return "x2";
      }
    case "y" :
      switch (turn) {
        case "" :
          return "y";
        case "'" :
          return "y'";
        case "2" :
          return "y2";
      }
    case "z" :
      switch (turn) {
        case "" :
          return "z";
        case "'" :
          return "z'";
        case "2" :
          return "z2";
      }
  }
}
 
function regripFromString(value) {
  switch (value) {
    case "x" :
      return "x";
    case "x'" :
      return "x'";
    case "x2" :
      return "x2";
    case "y" :
      return "y";
    case "y'" :
      return "y'";
    case "y2" :
      return "y2";
    case "z" :
      return "z";
    case "z'" :
      return "z'";
    case "z2" :
      return "z2";
    default:
      return;
  }
}
 
function faceOrderForTurn(token) {
  switch (token) {
    case "x" :
      return "FRDBLU";
    case "x'" :
      return "BRUFLD";
    case "x2" :
      return "DRBULF";
    case "y" :
      return "UBRDFL";
    case "y'" :
      return "UFLDBR";
    case "y2" :
      return "ULBDRF";
    case "z" :
      return "LUFRDB";
    case "z'" :
      return "RDFLUB";
    case "z2" :
      return "DLFURB";
  }
}
 
function permuteFaceOrder(order, permutation) {
  return permutation.split("").map(face => {
    switch (face) {
      case "D" :
        return order.substring(3, 4);
      case "F" :
        return order.substring(2, 3);
      case "L" :
        return order.substring(4, 5);
      case "R" :
        return order.substring(1, 2);
      case "U" :
        return order.substring(0, 1);
      default:
        return order.substring(5, 6);
    }
  }).join("");
}
 
export {
  faceFromString,
  faceToString,
  token,
  regripFromString,
  faceOrderForTurn,
  permuteFaceOrder,
}
/* No side effect */