8{
   11      1., 3., 5., 7., 9., 11., 13., 15., 17., 19., 21., 23., 25., 27., 29.,
   12      31., 33., 35., 37., 39., 41., 43., 45., 47., 49., 51., 53., 55., 57.,
   13      59., 61., 63., 65., 67., 69., 71., 73., 75., 77., 79., 81., 83., 85.,
   14      87., 89., 91., 93., 95., 97., 99., 101., 103., 105., 107., 109., 111.,
   15      113., 115., 117., 119., 121., 123., 125., 127., 129., 131., 133., 135.,
   16      137., 139., 141., 143., 145., 147., 149., 151., 153., 155., 157., 159.,
   17      161.),
   18    "[[[[1,3,5],[7,9,11],[13,15,17]],[[19,21,23],[25,27,29],[31,33,35]],[[37,"
   19    "39,"
   20    "41],[43,45,47],[49,51,53]]],[[[55,57,59],[61,63,65],[67,69,71]],[[73,75,"
   21    "77]"
   22    ",[79,81,83],[85,87,89]],[[91,93,95],[97,99,101],[103,105,107]]],[[[109,"
   23    "111,"
   24    "113],[115,117,119],[121,123,125]],[[127,129,131],[133,135,137],[139,141,"
   25    "143]],[[145,147,149],[151,153,155],[157,159,161]]]]",
   26    "operator<<(T4<3,3,3,3>)");
   27 
   28  
   30  std::stringstream ss(
   31    "[[[1,3,5][7,9,11][13,15,17]][[19,21,23][25,27,29][31,33,35]]"
   32    "[[37,39,41][43,45,47][49,51,53]]][[[55,57,59][61,63,65][67,69,71]]"
   33    "[[73,75,77][79,81,83][85,87,89]][[91,93,95][97,99,101][103,105,107]]]"
   34    "[[[109,111,113][115,117,119][121,123,125]][[127,129,131][133,135,137]["
   35    "139,"
   36    "141,143]]"
   37    "[[145,147,149][151,153,155][157,159,161]]]");
   38  
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57}
void test_ostream(const T &t, const std::string &expected, const std::string &test_name)