anchor.diff:  
   norm_44_test_() -> [norm_tup(4,4,false,false) || _ <- lists:seq(0,19)].
   
  +norm_44p_test_() -> [norm_tup(4,4,false,true) || _ <- lists:seq(0,19)].
  +
   norm_54_test_() -> [norm_tup(5,4,false,false) || _ <- lists:seq(0,5)].
   
  +norm_54p_test_() -> [norm_tup(5,4,false,true) || _ <- lists:seq(0,5)].
  +
   norm_76g_test_() -> [norm_tup(7,6,true,false) || _ <- lists:seq(0,5)].
   
  +norm_76gp_test_() -> [norm_tup(7,6,true,true) || _ <- lists:seq(0,5)].
   
   map_move_test(W, H, G, P, Board) -> 
       % can we get back the original board by looking up elements in the normalized board?
  
positive.code: 
  map_move_tup(W, H, G, P) -> map_move_test(W, H, G, P, egambo_tictac:shuffle(lists:seq($A,$A+W*H-1))).
  
  map_move_44_test_() -> [map_move_tup(4, 4, false, false) || _ <- lists:seq(0,19)].
  
  map_move_54_test_() -> [map_move_tup(5, 4, false, false) || _ <- lists:seq(0,5)].
  
  map_move_76g_test_() -> [map_move_tup(7, 6, true, false) || _ <- lists:seq(0,5)].
  
  
  unmap_move_test(W, H, G, P, Board) -> 
      % can we get the normalized board by looking up elements in the original board?
  
negative.code:         , list_to_binary([gen_render_ty(W, H, S) || S <- ty_symmetries(H)])
          ])).
  
  transx(W, _H, TX, Board) when TX==0;TX==W -> Board;  
  transx(W, H, TX, Board) -> apply(?SYM_MODULE(W, H), tx_sym(TX), [Board]). 
  
  transy(_W, H, TY, Board) when TY==0;TY==H -> Board;
  transy(W, H, TY, Board) -> apply(?SYM_MODULE(W, H), ty_sym(TY), [Board]).
  
  map(W, H, Board, Sym) when is_atom(Sym) -> 
      apply(?SYM_MODULE(W, H), Sym, [Board]);
  map(W, H, Board, {S,TX,TY}) when is_atom(S) -> 
      apply(?SYM_MODULE(W, H), S, [transy(W, H, TY, transx(W, H, TX, Board))]). 
  
  unmap(_, _, NBoard, ide) -> NBoard;
  unmap(W, H, NBoard, S) when S==hor;S==ver;S==pnt;S==bck;S==fwd -> map(W, H, NBoard, S);
  unmap(W, H, NBoard, {S,0,0}) -> unmap(W, H, NBoard, S);
  unmap(W, H, NBoard, lft) -> map(W, H, NBoard, rgt);
  unmap(W, H, NBoard, rgt) -> map(W, H, NBoard, lft);
  unmap(W, H, NBoard, {S,TX,TY}) -> transx(W, H, W-TX, transy(W, H, H-TY, unmap(W, H, NBoard, S))).
  
  t_off(Dim) -> lists:seq(0,Dim-1).
  
  