As far as i know not all wavelets are length preserving
In[15]:= test = RandomReal[{0, -10}, 128];
In[16]:= dwd = DiscreteWaveletTransform[test, Automatic, 4];
dwd["Wavelet"]
dwd["Dimensions"]
Out[17]= HaarWavelet[]
Out[18]= {{0} -> {64}, {1} -> {64}, {0, 0} -> {32}, {0,
1} -> {32}, {0, 0, 0} -> {16}, {0, 0, 1} -> {16}, {0, 0, 0,
0} -> {8}, {0, 0, 0, 1} -> {8}}
In[19]:= dwd = DiscreteWaveletTransform[test, MeyerWavelet[], 4];
dwd["Wavelet"]
dwd["Dimensions"]
Out[20]= MeyerWavelet[3, 10]
Out[21]= {{0} -> {74}, {1} -> {74}, {0, 0} -> {47}, {0,
1} -> {47}, {0, 0, 0} -> {33}, {0, 0, 1} -> {33}, {0, 0, 0,
0} -> {26}, {0, 0, 0, 1} -> {26}}
In[22]:= dwd = DiscreteWaveletTransform[test, MeyerWavelet[3, 1], 4];
dwd["Wavelet"]
dwd["Dimensions"]
Out[23]= MeyerWavelet[3, 1]
Out[24]= {{0} -> {65}, {1} -> {65}, {0, 0} -> {33}, {0,
1} -> {33}, {0, 0, 0} -> {17}, {0, 0, 1} -> {17}, {0, 0, 0,
0} -> {9}, {0, 0, 0, 1} -> {9}}
In[28]:= dwd = DiscreteWaveletTransform[test, CoifletWavelet[], 4];
dwd["Wavelet"]
dwd["Dimensions"]
Out[29]= CoifletWavelet[2]
Out[30]= {{0} -> {69}, {1} -> {69}, {0, 0} -> {40}, {0,
1} -> {40}, {0, 0, 0} -> {25}, {0, 0, 1} -> {25}, {0, 0, 0,
0} -> {18}, {0, 0, 0, 1} -> {18}}
If I remember correctly this is due to that most wavelets assume infinite signals and use padding to prevent edge effects. Most wavelets therefore also need to be defined outside your signal range.
EDIT:
Mathematica also has StationaryWaveletTransform that is similar to DiscreteWaveletTransform without the subsampling
In[49]:= dwd = StationaryWaveletTransform[test, MeyerWavelet[], 4];
dwd["Wavelet"]
dwd["Dimensions"]
Out[50]= MeyerWavelet[3, 10]
Out[51]= {{0} -> {128}, {1} -> {128}, {0, 0} -> {128}, {0,
1} -> {128}, {0, 0, 0} -> {128}, {0, 0, 1} -> {128}, {0, 0, 0,
0} -> {128}, {0, 0, 0, 1} -> {128}}