public static void SetDefaultSplitSelection(this SubBlockSelector sbs, MatrixShape shape, bool upper, bool islocal = true) { switch (shape) { case MatrixShape.diagonal: case MatrixShape.full: sbs.DefaultCellSplit(upper, islocal); break; case MatrixShape.diagonal_var: case MatrixShape.full_var: sbs.DefaultSpeciesSplit(upper); if (!islocal) { sbs.AllExternalCellsSelection(); } break; case MatrixShape.diagonal_spec: case MatrixShape.full_spec: sbs.DefaultVarSplit(upper); if (!islocal) { sbs.AllExternalCellsSelection(); } break; case MatrixShape.diagonal_var_spec: case MatrixShape.full_var_spec: sbs.DefaultCellSplit(upper, islocal); break; default: throw new NotSupportedException(String.Format("{0} is not supported by this test", shape)); } }