use crate::cubie::Corner::{self, *};
use crate::cubie::Edge::{self, *};
use crate::facelet::Color;
use crate::moves::Move::{self, *};
pub const ALL_CORNERS: [Corner; 8] = [URF, UFL, ULB, UBR, DFR, DLF, DBL, DRB];
pub const ALL_EDGES: [Edge; 12] = [UR, UF, UL, UB, DR, DF, DL, DB, FR, FL, BL, BR];
pub const ALL_COLORS: [Color; 6] = [Color::U, Color::R, Color::F, Color::D, Color::L, Color::B];
pub const ALL_MOVES: [Move; 18] = [
U, U2, U3, R, R2, R3, F, F2, F3, D, D2, D3, L, L2, L3, B, B2, B3,
];
pub const SOLVED: u16 = 0;
pub const N_PERM_4: usize = 24;
pub const N_CHOOSE_8_4: usize = 70;
pub const N_SYM: usize = 48;
pub const N_MOVE: usize = 18;
pub const N_TWIST: usize = 2187;
pub const N_SYM_D4H: usize = 16;
pub const N_UD_EDGES: usize = 40320;
pub const N_FLIP: usize = 2048;
pub const N_SLICE_SORTED: usize = 11880;
pub const N_SLICE: usize = N_SLICE_SORTED / N_PERM_4;
pub const N_FLIPSLICE_CLASS: usize = 64430;
pub const N_CORNERS: usize = 40320;
pub const N_CORNERS_CLASS: usize = 2768;
pub const N_U_EDGES_PHASE2: usize = 1680;