- 
                Notifications
    You must be signed in to change notification settings 
- Fork 112
Description
This bug appears to be data dependent. Randomly generated arrays of similar size and scale do not reproduce the issue. However, with the specific x below, the last value from move_sum is negative, whereas the manual sum is correct and non-negative.
The bug can be reproduced as follows-
`
x = {pd.Timestamp('2012-11-19 00:00:00+0000', tz='UTC'): 10159130690.591076,
pd.Timestamp('2012-11-20 00:00:00+0000', tz='UTC'): 208563206854.16187,
pd.Timestamp('2012-11-21 00:00:00+0000', tz='UTC'): 8801833488.979036,
pd.Timestamp('2012-11-22 00:00:00+0000', tz='UTC'): 244717864.7026832,
pd.Timestamp('2012-11-23 00:00:00+0000', tz='UTC'): 459054363.10637057,
pd.Timestamp('2012-11-26 00:00:00+0000', tz='UTC'): 535407573.7889291,
pd.Timestamp('2012-11-27 00:00:00+0000', tz='UTC'): 437277505.99658906,
pd.Timestamp('2012-11-28 00:00:00+0000', tz='UTC'): 119524750.60599034,
pd.Timestamp('2012-11-29 00:00:00+0000', tz='UTC'): 91232522.28033501,
pd.Timestamp('2012-11-30 00:00:00+0000', tz='UTC'): 2597866.5156119256,
pd.Timestamp('2012-12-03 00:00:00+0000', tz='UTC'): 38774.76718785961,
pd.Timestamp('2012-12-04 00:00:00+0000', tz='UTC'): 159.51803857734944,
pd.Timestamp('2012-12-05 00:00:00+0000', tz='UTC'): 27574.811934885733,
pd.Timestamp('2012-12-06 00:00:00+0000', tz='UTC'): 23701.3375937435,
pd.Timestamp('2012-12-07 00:00:00+0000', tz='UTC'): 290120.78265325056,
pd.Timestamp('2012-12-10 00:00:00+0000', tz='UTC'): 249648.94360765012,
pd.Timestamp('2012-12-11 00:00:00+0000', tz='UTC'): 76154.46772141315,
pd.Timestamp('2012-12-12 00:00:00+0000', tz='UTC'): 167765.81683717348,
pd.Timestamp('2012-12-13 00:00:00+0000', tz='UTC'): 15185.839675646106,
pd.Timestamp('2012-12-14 00:00:00+0000', tz='UTC'): 21556.831073052945,
pd.Timestamp('2012-12-17 00:00:00+0000', tz='UTC'): 583968.8335365744,
pd.Timestamp('2012-12-18 00:00:00+0000', tz='UTC'): 284141.10573579173,
pd.Timestamp('2012-12-19 00:00:00+0000', tz='UTC'): 2022241.708314586,
pd.Timestamp('2012-12-20 00:00:00+0000', tz='UTC'): 17488629.045562714,
pd.Timestamp('2012-12-21 00:00:00+0000', tz='UTC'): 5820717.767573807,
pd.Timestamp('2012-12-24 00:00:00+0000', tz='UTC'): 14483435.220350875,
pd.Timestamp('2012-12-25 00:00:00+0000', tz='UTC'): 2991870.2137771794,
pd.Timestamp('2012-12-26 00:00:00+0000', tz='UTC'): 11472225.725887705,
pd.Timestamp('2012-12-27 00:00:00+0000', tz='UTC'): 36668839.68839945,
pd.Timestamp('2012-12-28 00:00:00+0000', tz='UTC'): 10277460.231806552,
pd.Timestamp('2012-12-31 00:00:00+0000', tz='UTC'): 32319835.312930837,
pd.Timestamp('2013-01-01 00:00:00+0000', tz='UTC'): 120582884.47425833,
pd.Timestamp('2013-01-02 00:00:00+0000', tz='UTC'): 50888563.58101089,
pd.Timestamp('2013-01-03 00:00:00+0000', tz='UTC'): 1106427841.492419,
pd.Timestamp('2013-01-04 00:00:00+0000', tz='UTC'): 13074558704.072012,
pd.Timestamp('2013-01-07 00:00:00+0000', tz='UTC'): 287532193.49833494,
pd.Timestamp('2013-01-08 00:00:00+0000', tz='UTC'): 458142782.99338347,
pd.Timestamp('2013-01-09 00:00:00+0000', tz='UTC'): 23049492923.289246,
pd.Timestamp('2013-01-10 00:00:00+0000', tz='UTC'): 134848519444.13933,
pd.Timestamp('2013-01-11 00:00:00+0000', tz='UTC'): 1977872367.407818,
pd.Timestamp('2013-01-14 00:00:00+0000', tz='UTC'): 1977872367.407818,
pd.Timestamp('2013-01-15 00:00:00+0000', tz='UTC'): 34506066529.69787,
pd.Timestamp('2013-01-16 00:00:00+0000', tz='UTC'): 34506066529.69787,
pd.Timestamp('2013-01-17 00:00:00+0000', tz='UTC'): 140727414208.8539,
pd.Timestamp('2013-01-18 00:00:00+0000', tz='UTC'): 157662557842.167,
pd.Timestamp('2013-01-21 00:00:00+0000', tz='UTC'): 198833464890.59058,
pd.Timestamp('2013-01-22 00:00:00+0000', tz='UTC'): 185328283341.73334,
pd.Timestamp('2013-01-23 00:00:00+0000', tz='UTC'): 403861596950.57806,
pd.Timestamp('2013-01-24 00:00:00+0000', tz='UTC'): 72539457352.72775,
pd.Timestamp('2013-01-25 00:00:00+0000', tz='UTC'): 566787865.4653835,
pd.Timestamp('2013-01-28 00:00:00+0000', tz='UTC'): 566787865.4653835,
pd.Timestamp('2013-01-29 00:00:00+0000', tz='UTC'): 22506587.805888813,
pd.Timestamp('2013-01-30 00:00:00+0000', tz='UTC'): 45249888.9916041,
pd.Timestamp('2013-01-31 00:00:00+0000', tz='UTC'): 45249888.9916041,
pd.Timestamp('2013-02-01 00:00:00+0000', tz='UTC'): 11000872.784129445,
pd.Timestamp('2013-02-04 00:00:00+0000', tz='UTC'): 637834.3838263062,
pd.Timestamp('2013-02-05 00:00:00+0000', tz='UTC'): 7371247.835509511,
pd.Timestamp('2013-02-06 00:00:00+0000', tz='UTC'): 2235754.3745735493,
pd.Timestamp('2013-02-07 00:00:00+0000', tz='UTC'): 26091174.384930238,
pd.Timestamp('2013-02-08 00:00:00+0000', tz='UTC'): 100797222.04980229,
pd.Timestamp('2013-02-11 00:00:00+0000', tz='UTC'): 262615337.44640064,
pd.Timestamp('2013-02-12 00:00:00+0000', tz='UTC'): 1435330024.9133852,
pd.Timestamp('2013-02-13 00:00:00+0000', tz='UTC'): 55768552288.77392,
pd.Timestamp('2013-02-14 00:00:00+0000', tz='UTC'): 2452702427.227238,
pd.Timestamp('2013-02-15 00:00:00+0000', tz='UTC'): 11667789.364311183,
pd.Timestamp('2013-02-18 00:00:00+0000', tz='UTC'): 169583.8151987856,
pd.Timestamp('2013-02-19 00:00:00+0000', tz='UTC'): 228575.74919256225,
pd.Timestamp('2013-02-20 00:00:00+0000', tz='UTC'): 6234708.820904038,
pd.Timestamp('2013-02-21 00:00:00+0000', tz='UTC'): 8362374.511740562,
pd.Timestamp('2013-02-22 00:00:00+0000', tz='UTC'): 2418362113.705913,
pd.Timestamp('2013-02-25 00:00:00+0000', tz='UTC'): 1614561440703.432,
pd.Timestamp('2013-02-26 00:00:00+0000', tz='UTC'): 136736659932.92627,
pd.Timestamp('2013-02-27 00:00:00+0000', tz='UTC'): 138178583333.57047,
pd.Timestamp('2013-02-28 00:00:00+0000', tz='UTC'): 1700176105029.2705,
pd.Timestamp('2013-03-01 00:00:00+0000', tz='UTC'): 1566647851120.416,
pd.Timestamp('2013-03-04 00:00:00+0000', tz='UTC'): 9886916869.378078,
pd.Timestamp('2013-03-05 00:00:00+0000', tz='UTC'): 329309652435.0663,
pd.Timestamp('2013-03-06 00:00:00+0000', tz='UTC'): 1948151778444.3818,
pd.Timestamp('2013-03-07 00:00:00+0000', tz='UTC'): 343394098911.2119,
pd.Timestamp('2013-03-08 00:00:00+0000', tz='UTC'): 16166763912052.754,
pd.Timestamp('2013-03-11 00:00:00+0000', tz='UTC'): 2367827714330.4644,
pd.Timestamp('2013-03-12 00:00:00+0000', tz='UTC'): 554505541451904.25,
pd.Timestamp('2013-03-13 00:00:00+0000', tz='UTC'): 723445203242211.6,
pd.Timestamp('2013-03-14 00:00:00+0000', tz='UTC'): 1059611729654365.2,
pd.Timestamp('2013-03-15 00:00:00+0000', tz='UTC'): 5.022226418455223e+16,
pd.Timestamp('2013-03-18 00:00:00+0000', tz='UTC'): 93302970265911.89,
pd.Timestamp('2013-03-19 00:00:00+0000', tz='UTC'): 1368850234837663.0,
pd.Timestamp('2013-03-20 00:00:00+0000', tz='UTC'): 1944566957198446.5,
pd.Timestamp('2013-03-21 00:00:00+0000', tz='UTC'): 8644619928338417.0,
pd.Timestamp('2013-03-22 00:00:00+0000', tz='UTC'): 7394865758364100.0,
pd.Timestamp('2013-03-25 00:00:00+0000', tz='UTC'): 395717587773065.25,
pd.Timestamp('2013-03-26 00:00:00+0000', tz='UTC'): 395717587773065.25,
pd.Timestamp('2013-03-27 00:00:00+0000', tz='UTC'): 2413350907854782.0,
pd.Timestamp('2013-03-28 00:00:00+0000', tz='UTC'): 5.391141092978919e+16,
pd.Timestamp('2013-03-29 00:00:00+0000', tz='UTC'): 7.489804287474619e+16,
pd.Timestamp('2013-04-01 00:00:00+0000', tz='UTC'): 2.4041796825985485e+17,
pd.Timestamp('2013-04-02 00:00:00+0000', tz='UTC'): 7.249490049464544e+17,
pd.Timestamp('2013-04-03 00:00:00+0000', tz='UTC'): 3.066998170577683e+17,
pd.Timestamp('2013-04-04 00:00:00+0000', tz='UTC'): 9.07113529713402e+16,
pd.Timestamp('2013-04-05 00:00:00+0000', tz='UTC'): 2.2328678577933978e+18,
pd.Timestamp('2013-04-08 00:00:00+0000', tz='UTC'): 9.896987893104466e+17,
pd.Timestamp('2013-04-09 00:00:00+0000', tz='UTC'): 3.2757734875218776e+19,
pd.Timestamp('2013-04-10 00:00:00+0000', tz='UTC'): 4.406905304525436e+17,
pd.Timestamp('2013-04-11 00:00:00+0000', tz='UTC'): 3.755412440227369e+16,
pd.Timestamp('2013-04-12 00:00:00+0000', tz='UTC'): 1.3445425667400117e+17,
pd.Timestamp('2013-04-15 00:00:00+0000', tz='UTC'): 4.168020499607188e+18,
pd.Timestamp('2013-04-16 00:00:00+0000', tz='UTC'): 3.6528382843026284e+18,
pd.Timestamp('2013-04-17 00:00:00+0000', tz='UTC'): 2.2237856657165718e+17,
pd.Timestamp('2013-04-18 00:00:00+0000', tz='UTC'): 9.132793557914714e+17,
pd.Timestamp('2013-04-19 00:00:00+0000', tz='UTC'): 4.062778339948141e+17,
pd.Timestamp('2013-04-22 00:00:00+0000', tz='UTC'): 6.723797600650705e+17,
pd.Timestamp('2013-04-23 00:00:00+0000', tz='UTC'): 2.4454677643855345e+18,
pd.Timestamp('2013-04-24 00:00:00+0000', tz='UTC'): 1.0899495708655544e+19,
pd.Timestamp('2013-04-25 00:00:00+0000', tz='UTC'): 1.9905910114939572e+19,
pd.Timestamp('2013-04-26 00:00:00+0000', tz='UTC'): 3.3178535949444858e+19,
pd.Timestamp('2013-04-29 00:00:00+0000', tz='UTC'): 8.6424803736372e+17,
pd.Timestamp('2013-04-30 00:00:00+0000', tz='UTC'): 3.8529058342859616e+17,
pd.Timestamp('2013-05-01 00:00:00+0000', tz='UTC'): 3.8529058342859616e+17,
pd.Timestamp('2013-05-02 00:00:00+0000', tz='UTC'): 3.5367975301603364e+16,
pd.Timestamp('2013-05-03 00:00:00+0000', tz='UTC'): 1235649004004207.0,
pd.Timestamp('2013-05-06 00:00:00+0000', tz='UTC'): 62154744902682.86,
pd.Timestamp('2013-05-07 00:00:00+0000', tz='UTC'): 1675271812297.9233,
pd.Timestamp('2013-05-08 00:00:00+0000', tz='UTC'): 4509953481268.818,
pd.Timestamp('2013-05-09 00:00:00+0000', tz='UTC'): 399810925910.97943,
pd.Timestamp('2013-05-10 00:00:00+0000', tz='UTC'): 10284629748844.406,
pd.Timestamp('2013-05-13 00:00:00+0000', tz='UTC'): 20256702872557.258,
pd.Timestamp('2013-05-14 00:00:00+0000', tz='UTC'): 2814933642345.735,
pd.Timestamp('2013-05-15 00:00:00+0000', tz='UTC'): 342569652892.41364,
pd.Timestamp('2013-05-16 00:00:00+0000', tz='UTC'): 9497840679973.707,
pd.Timestamp('2013-05-17 00:00:00+0000', tz='UTC'): 4396658354876.6895,
pd.Timestamp('2013-05-20 00:00:00+0000', tz='UTC'): 159690169935074.88,
pd.Timestamp('2013-05-21 00:00:00+0000', tz='UTC'): 489688850942440.5,
pd.Timestamp('2013-05-22 00:00:00+0000', tz='UTC'): 10657771064904.914,
pd.Timestamp('2013-05-23 00:00:00+0000', tz='UTC'): 46648724723966.67,
pd.Timestamp('2013-05-24 00:00:00+0000', tz='UTC'): 1591927008447157.8,
pd.Timestamp('2013-05-27 00:00:00+0000', tz='UTC'): 6314159013297256.0,
pd.Timestamp('2013-05-28 00:00:00+0000', tz='UTC'): 1998898944207535.5,
pd.Timestamp('2013-05-29 00:00:00+0000', tz='UTC'): 8919624192372848.0,
pd.Timestamp('2013-05-30 00:00:00+0000', tz='UTC'): 4661637037308042.0,
pd.Timestamp('2013-05-31 00:00:00+0000', tz='UTC'): 465073941103401.3,
pd.Timestamp('2013-06-03 00:00:00+0000', tz='UTC'): 53807505611863.45,
pd.Timestamp('2013-06-04 00:00:00+0000', tz='UTC'): 182040911829352.8,
pd.Timestamp('2013-06-05 00:00:00+0000', tz='UTC'): 594192132878870.0,
pd.Timestamp('2013-06-06 00:00:00+0000', tz='UTC'): 110522511300328.98,
pd.Timestamp('2013-06-07 00:00:00+0000', tz='UTC'): 25677443750226.695,
pd.Timestamp('2013-06-10 00:00:00+0000', tz='UTC'): 6000605255857.863,
pd.Timestamp('2013-06-11 00:00:00+0000', tz='UTC'): 146901876852.24734,
pd.Timestamp('2013-06-12 00:00:00+0000', tz='UTC'): 5873439195704.581,
pd.Timestamp('2013-06-13 00:00:00+0000', tz='UTC'): 8430090424213.506,
pd.Timestamp('2013-06-14 00:00:00+0000', tz='UTC'): 7932050876.833666,
pd.Timestamp('2013-06-17 00:00:00+0000', tz='UTC'): 17449774829.953594,
pd.Timestamp('2013-06-18 00:00:00+0000', tz='UTC'): 44991491304.9359,
pd.Timestamp('2013-06-19 00:00:00+0000', tz='UTC'): 20188041226.3485,
pd.Timestamp('2013-06-20 00:00:00+0000', tz='UTC'): 754226846.0014826,
pd.Timestamp('2013-06-21 00:00:00+0000', tz='UTC'): 425700664.72990674,
pd.Timestamp('2013-06-24 00:00:00+0000', tz='UTC'): 20424075635.060432,
pd.Timestamp('2013-06-25 00:00:00+0000', tz='UTC'): 20424075635.060432,
pd.Timestamp('2013-06-26 00:00:00+0000', tz='UTC'): 59946347513.50477,
pd.Timestamp('2013-06-27 00:00:00+0000', tz='UTC'): 13196669035.47075,
pd.Timestamp('2013-06-28 00:00:00+0000', tz='UTC'): 8336040824.274624,
pd.Timestamp('2013-07-01 00:00:00+0000', tz='UTC'): 74467621.74968399,
pd.Timestamp('2013-07-02 00:00:00+0000', tz='UTC'): 80897480.64914316,
pd.Timestamp('2013-07-03 00:00:00+0000', tz='UTC'): 261300616.36720023,
pd.Timestamp('2013-07-04 00:00:00+0000', tz='UTC'): 16562571.790707529,
pd.Timestamp('2013-07-05 00:00:00+0000', tz='UTC'): 12513930.440773308,
pd.Timestamp('2013-07-08 00:00:00+0000', tz='UTC'): 15044127.67162059,
pd.Timestamp('2013-07-09 00:00:00+0000', tz='UTC'): 6324413.681679954,
pd.Timestamp('2013-07-10 00:00:00+0000', tz='UTC'): 2215552.7310622726,
pd.Timestamp('2013-07-11 00:00:00+0000', tz='UTC'): 17921369.573671315,
pd.Timestamp('2013-07-12 00:00:00+0000', tz='UTC'): 221836919.85821965,
pd.Timestamp('2013-07-15 00:00:00+0000', tz='UTC'): 468725505.7011359,
pd.Timestamp('2013-07-16 00:00:00+0000', tz='UTC'): 55753483.74822676,
pd.Timestamp('2013-07-17 00:00:00+0000', tz='UTC'): 494282351.35419476,
pd.Timestamp('2013-07-18 00:00:00+0000', tz='UTC'): 349888543.7634412,
pd.Timestamp('2013-07-19 00:00:00+0000', tz='UTC'): 7210651811.363362,
pd.Timestamp('2013-07-22 00:00:00+0000', tz='UTC'): 2041891331.7417338,
pd.Timestamp('2013-07-23 00:00:00+0000', tz='UTC'): 24196119.214458175,
pd.Timestamp('2013-07-24 00:00:00+0000', tz='UTC'): 127576368.01313865,
pd.Timestamp('2013-07-25 00:00:00+0000', tz='UTC'): 194044691.96838593,
pd.Timestamp('2013-07-26 00:00:00+0000', tz='UTC'): 1365586032.4362524,
pd.Timestamp('2013-07-29 00:00:00+0000', tz='UTC'): 5251227209.986688,
pd.Timestamp('2013-07-30 00:00:00+0000', tz='UTC'): 16328296468.937159,
pd.Timestamp('2013-07-31 00:00:00+0000', tz='UTC'): 1203107045774.593,
pd.Timestamp('2013-08-01 00:00:00+0000', tz='UTC'): 25115692574.730217,
pd.Timestamp('2013-08-02 00:00:00+0000', tz='UTC'): 47012788583.231415,
pd.Timestamp('2013-08-05 00:00:00+0000', tz='UTC'): 25583741842.551647,
pd.Timestamp('2013-08-06 00:00:00+0000', tz='UTC'): 60299164842.61891,
pd.Timestamp('2013-08-07 00:00:00+0000', tz='UTC'): 306335413993.3469,
pd.Timestamp('2013-08-08 00:00:00+0000', tz='UTC'): 66305843959.21901,
pd.Timestamp('2013-08-09 00:00:00+0000', tz='UTC'): 358602252543.7605,
pd.Timestamp('2013-08-12 00:00:00+0000', tz='UTC'): 196024293276.32858,
pd.Timestamp('2013-08-13 00:00:00+0000', tz='UTC'): 39147313195.10732,
pd.Timestamp('2013-08-14 00:00:00+0000', tz='UTC'): 39147313195.10732,
pd.Timestamp('2013-08-15 00:00:00+0000', tz='UTC'): 5894303289.268628,
pd.Timestamp('2013-08-16 00:00:00+0000', tz='UTC'): 1161499157.8805747,
pd.Timestamp('2013-08-19 00:00:00+0000', tz='UTC'): 125577867.82889245,
pd.Timestamp('2013-08-20 00:00:00+0000', tz='UTC'): 134185372.14103256,
pd.Timestamp('2013-08-21 00:00:00+0000', tz='UTC'): 991705567.9357164,
pd.Timestamp('2013-08-22 00:00:00+0000', tz='UTC'): 47071278.95557049,
pd.Timestamp('2013-08-23 00:00:00+0000', tz='UTC'): 161174521.46056306,
pd.Timestamp('2013-08-26 00:00:00+0000', tz='UTC'): 257451370.59772027,
pd.Timestamp('2013-08-27 00:00:00+0000', tz='UTC'): 20564489.981475215,
pd.Timestamp('2013-08-28 00:00:00+0000', tz='UTC'): 14283331.119588908,
pd.Timestamp('2013-08-29 00:00:00+0000', tz='UTC'): 82660.62916281143,
pd.Timestamp('2013-08-30 00:00:00+0000', tz='UTC'): 599026.8321924219,
pd.Timestamp('2013-09-02 00:00:00+0000', tz='UTC'): 6604447.852497886,
pd.Timestamp('2013-09-03 00:00:00+0000', tz='UTC'): 69932.67863821499,
pd.Timestamp('2013-09-04 00:00:00+0000', tz='UTC'): 148446.41460924404,
pd.Timestamp('2013-09-05 00:00:00+0000', tz='UTC'): 85450.43488700525,
pd.Timestamp('2013-09-06 00:00:00+0000', tz='UTC'): 3643244.266653599,
pd.Timestamp('2013-09-09 00:00:00+0000', tz='UTC'): 29911.34642143601,
pd.Timestamp('2013-09-10 00:00:00+0000', tz='UTC'): 1535.9129425648296,
pd.Timestamp('2013-09-11 00:00:00+0000', tz='UTC'): 35.93723098090559,
pd.Timestamp('2013-09-12 00:00:00+0000', tz='UTC'): 88.29821119157737,
pd.Timestamp('2013-09-13 00:00:00+0000', tz='UTC'): 77.8247832404168,
pd.Timestamp('2013-09-16 00:00:00+0000', tz='UTC'): 482.28746672528206,
pd.Timestamp('2013-09-17 00:00:00+0000', tz='UTC'): 482.28746672528206,
pd.Timestamp('2013-09-18 00:00:00+0000', tz='UTC'): 321.58961463068243,
pd.Timestamp('2013-09-19 00:00:00+0000', tz='UTC'): 1087.928750610075,
pd.Timestamp('2013-09-20 00:00:00+0000', tz='UTC'): 448.6535757537833,
pd.Timestamp('2013-09-23 00:00:00+0000', tz='UTC'): 3276.8619432870864,
pd.Timestamp('2013-09-24 00:00:00+0000', tz='UTC'): 60609.141626563505,
pd.Timestamp('2013-09-25 00:00:00+0000', tz='UTC'): 991078.7446648572,
pd.Timestamp('2013-09-26 00:00:00+0000', tz='UTC'): 991078.7446648572,
pd.Timestamp('2013-09-27 00:00:00+0000', tz='UTC'): 276903.4482965741,
pd.Timestamp('2013-09-30 00:00:00+0000', tz='UTC'): 20240.98574328243,
pd.Timestamp('2013-10-01 00:00:00+0000', tz='UTC'): 20240.98574328243,
pd.Timestamp('2013-10-02 00:00:00+0000', tz='UTC'): 5220401.269878493,
pd.Timestamp('2013-10-03 00:00:00+0000', tz='UTC'): 5806796.98426868,
pd.Timestamp('2013-10-04 00:00:00+0000', tz='UTC'): 5806796.98426868,
pd.Timestamp('2013-10-07 00:00:00+0000', tz='UTC'): 342665.5440640266,
pd.Timestamp('2013-10-08 00:00:00+0000', tz='UTC'): 2150193.355673629,
pd.Timestamp('2013-10-09 00:00:00+0000', tz='UTC'): 285299.5717143778,
pd.Timestamp('2013-10-10 00:00:00+0000', tz='UTC'): 10409.430569208876,
pd.Timestamp('2013-10-11 00:00:00+0000', tz='UTC'): 179725.76632338602,
pd.Timestamp('2013-10-14 00:00:00+0000', tz='UTC'): 51278.231630897164,
pd.Timestamp('2013-10-15 00:00:00+0000', tz='UTC'): 65813.14059263607,
pd.Timestamp('2013-10-16 00:00:00+0000', tz='UTC'): 308112.8525836081,
pd.Timestamp('2013-10-17 00:00:00+0000', tz='UTC'): 94802.92650999979,
pd.Timestamp('2013-10-18 00:00:00+0000', tz='UTC'): 4438386.26056898,
pd.Timestamp('2013-10-21 00:00:00+0000', tz='UTC'): 361869.34943407925,
pd.Timestamp('2013-10-22 00:00:00+0000', tz='UTC'): 24495779.219941728,
pd.Timestamp('2013-10-23 00:00:00+0000', tz='UTC'): 128392000.24837515,
pd.Timestamp('2013-10-24 00:00:00+0000', tz='UTC'): 358248631.2745406,
pd.Timestamp('2013-10-25 00:00:00+0000', tz='UTC'): 1792668.0965597434,
pd.Timestamp('2013-10-28 00:00:00+0000', tz='UTC'): 282679.35067024,
pd.Timestamp('2013-10-29 00:00:00+0000', tz='UTC'): 36345.60808927131,
pd.Timestamp('2013-10-30 00:00:00+0000', tz='UTC'): 4272999.452845639,
pd.Timestamp('2013-10-31 00:00:00+0000', tz='UTC'): 1663841.9615697784,
pd.Timestamp('2013-11-01 00:00:00+0000', tz='UTC'): 29547.119869345934,
pd.Timestamp('2013-11-04 00:00:00+0000', tz='UTC'): 9364.545551938118,
pd.Timestamp('2013-11-05 00:00:00+0000', tz='UTC'): 43.78211816786223,
pd.Timestamp('2013-11-06 00:00:00+0000', tz='UTC'): 116.15480282867202,
pd.Timestamp('2013-11-07 00:00:00+0000', tz='UTC'): 1181.180819419642,
pd.Timestamp('2013-11-08 00:00:00+0000', tz='UTC'): 560.652876704705,
pd.Timestamp('2013-11-11 00:00:00+0000', tz='UTC'): 3525.5387388996473,
pd.Timestamp('2013-11-12 00:00:00+0000', tz='UTC'): 2602.4531122949415,
pd.Timestamp('2013-11-13 00:00:00+0000', tz='UTC'): 5208.273618657392,
pd.Timestamp('2013-11-14 00:00:00+0000', tz='UTC'): 4038.028710158829,
pd.Timestamp('2013-11-15 00:00:00+0000', tz='UTC'): 5954.394442009106,
pd.Timestamp('2013-11-18 00:00:00+0000', tz='UTC'): 5629.126094975381,
pd.Timestamp('2013-11-19 00:00:00+0000', tz='UTC'): 229.77363625770997,
pd.Timestamp('2013-11-20 00:00:00+0000', tz='UTC'): 1161.8437306999112,
pd.Timestamp('2013-11-21 00:00:00+0000', tz='UTC'): 631.0388281723632,
pd.Timestamp('2013-11-22 00:00:00+0000', tz='UTC'): 1449.356378608606,
pd.Timestamp('2013-11-25 00:00:00+0000', tz='UTC'): 7.826720768981343,
pd.Timestamp('2013-11-26 00:00:00+0000', tz='UTC'): 3.2368852313596226,
pd.Timestamp('2013-11-27 00:00:00+0000', tz='UTC'): 0.24893810261069635,
pd.Timestamp('2013-11-28 00:00:00+0000', tz='UTC'): 0.48909124477738364,
pd.Timestamp('2013-11-29 00:00:00+0000', tz='UTC'): 0.02227179816380893,
pd.Timestamp('2013-12-02 00:00:00+0000', tz='UTC'): 0.003620372167190611,
pd.Timestamp('2013-12-03 00:00:00+0000', tz='UTC'): 0.023343385333663386,
pd.Timestamp('2013-12-04 00:00:00+0000', tz='UTC'): 0.03647709290621996,
pd.Timestamp('2013-12-05 00:00:00+0000', tz='UTC'): 0.03435461640608303,
pd.Timestamp('2013-12-06 00:00:00+0000', tz='UTC'): 0.010042009662640084,
pd.Timestamp('2013-12-09 00:00:00+0000', tz='UTC'): 5.364992728597493e-05,
pd.Timestamp('2013-12-10 00:00:00+0000', tz='UTC'): 0.00017916229906007148,
pd.Timestamp('2013-12-11 00:00:00+0000', tz='UTC'): 4.330964758721731e-05,
pd.Timestamp('2013-12-12 00:00:00+0000', tz='UTC'): 7.719353890669193e-05,
pd.Timestamp('2013-12-13 00:00:00+0000', tz='UTC'): 7.522343177613291e-05,
pd.Timestamp('2013-12-16 00:00:00+0000', tz='UTC'): 1.082095005787901e-05,
pd.Timestamp('2013-12-17 00:00:00+0000', tz='UTC'): 2.8770414719278803e-05,
pd.Timestamp('2013-12-18 00:00:00+0000', tz='UTC'): 0.0001556856497242038,
pd.Timestamp('2013-12-19 00:00:00+0000', tz='UTC'): 0.0014298380806934022,
pd.Timestamp('2013-12-20 00:00:00+0000', tz='UTC'): 8.922360888599483e-05,
pd.Timestamp('2013-12-23 00:00:00+0000', tz='UTC'): 5.80264511330834e-05,
pd.Timestamp('2013-12-24 00:00:00+0000', tz='UTC'): 0.0001661825189040416,
pd.Timestamp('2013-12-25 00:00:00+0000', tz='UTC'): 0.0011745413825178617,
pd.Timestamp('2013-12-26 00:00:00+0000', tz='UTC'): 0.0005511634129517272,
pd.Timestamp('2013-12-27 00:00:00+0000', tz='UTC'): 0.00024867239704049924,
pd.Timestamp('2013-12-30 00:00:00+0000', tz='UTC'): 0.00011302143450339545,
pd.Timestamp('2013-12-31 00:00:00+0000', tz='UTC'): 5.770266465866493e-06,
pd.Timestamp('2014-01-01 00:00:00+0000', tz='UTC'): 3.4987736684445185e-05,
pd.Timestamp('2014-01-02 00:00:00+0000', tz='UTC'): 1.6734993630518907e-05,
pd.Timestamp('2014-01-03 00:00:00+0000', tz='UTC'): 1.551745810344591e-05,
pd.Timestamp('2014-01-06 00:00:00+0000', tz='UTC'): 3.5823010594635597e-06,
pd.Timestamp('2014-01-07 00:00:00+0000', tz='UTC'): 7.970949041105262e-07,
pd.Timestamp('2014-01-08 00:00:00+0000', tz='UTC'): 2.3003161079160606e-05,
pd.Timestamp('2014-01-09 00:00:00+0000', tz='UTC'): 5.7237332678950164e-05,
pd.Timestamp('2014-01-10 00:00:00+0000', tz='UTC'): 0.00021429941858926505,
pd.Timestamp('2014-01-13 00:00:00+0000', tz='UTC'): 0.007270851364696771,
pd.Timestamp('2014-01-14 00:00:00+0000', tz='UTC'): 0.00015229247765091098,
pd.Timestamp('2014-01-15 00:00:00+0000', tz='UTC'): 0.0005370039937288391,
pd.Timestamp('2014-01-16 00:00:00+0000', tz='UTC'): 0.01205982247239514,
pd.Timestamp('2014-01-17 00:00:00+0000', tz='UTC'): 0.005590458975375583,
pd.Timestamp('2014-01-20 00:00:00+0000', tz='UTC'): 0.0010707768163818424,
pd.Timestamp('2014-01-21 00:00:00+0000', tz='UTC'): 0.0010940803996152089,
pd.Timestamp('2014-01-22 00:00:00+0000', tz='UTC'): 0.0013486216716534513,
pd.Timestamp('2014-01-23 00:00:00+0000', tz='UTC'): 0.010951643363991428,
pd.Timestamp('2014-01-24 00:00:00+0000', tz='UTC'): 4.760363197984182,
pd.Timestamp('2014-01-27 00:00:00+0000', tz='UTC'): 230.3825457129643,
pd.Timestamp('2014-01-28 00:00:00+0000', tz='UTC'): 392.91343393508504,
pd.Timestamp('2014-01-29 00:00:00+0000', tz='UTC'): 19.223131929078072,
pd.Timestamp('2014-01-30 00:00:00+0000', tz='UTC'): 19.10767852673361,
pd.Timestamp('2014-01-31 00:00:00+0000', tz='UTC'): 0.030893894938032854,
pd.Timestamp('2014-02-03 00:00:00+0000', tz='UTC'): 0.005225386115323042,
pd.Timestamp('2014-02-04 00:00:00+0000', tz='UTC'): 0.002232986093065263,
pd.Timestamp('2014-02-05 00:00:00+0000', tz='UTC'): 0.0018435847178566854,
pd.Timestamp('2014-02-06 00:00:00+0000', tz='UTC'): 0.00027139447123028125,
pd.Timestamp('2014-02-07 00:00:00+0000', tz='UTC'): 7.53968046967954e-05,
pd.Timestamp('2014-02-10 00:00:00+0000', tz='UTC'): 4.371356512023161e-06,
pd.Timestamp('2014-02-11 00:00:00+0000', tz='UTC'): 1.0446255008430903e-06,
pd.Timestamp('2014-02-12 00:00:00+0000', tz='UTC'): 7.318058678445822e-07,
pd.Timestamp('2014-02-13 00:00:00+0000', tz='UTC'): 9.107035195492293e-08,
pd.Timestamp('2014-02-14 00:00:00+0000', tz='UTC'): 4.137311373893344e-08,
pd.Timestamp('2014-02-17 00:00:00+0000', tz='UTC'): 9.901483954759511e-09,
pd.Timestamp('2014-02-18 00:00:00+0000', tz='UTC'): 7.057085058510528e-10,
pd.Timestamp('2014-02-19 00:00:00+0000', tz='UTC'): 7.057085058510528e-10,
pd.Timestamp('2014-02-20 00:00:00+0000', tz='UTC'): 7.057085058510528e-10,
pd.Timestamp('2014-02-21 00:00:00+0000', tz='UTC'): 2.914470871988281e-11,
pd.Timestamp('2014-02-24 00:00:00+0000', tz='UTC'): 1.01442924842699e-11,
pd.Timestamp('2014-02-25 00:00:00+0000', tz='UTC'): 1.1361030893053152e-12,
pd.Timestamp('2014-02-26 00:00:00+0000', tz='UTC'): 1.1466457737286904e-13,
pd.Timestamp('2014-02-27 00:00:00+0000', tz='UTC'): 4.7044940165904486e-14,
pd.Timestamp('2014-02-28 00:00:00+0000', tz='UTC'): 1.6459688474150388e-11,
pd.Timestamp('2014-03-03 00:00:00+0000', tz='UTC'): 2.567448127534254e-12,
pd.Timestamp('2014-03-04 00:00:00+0000', tz='UTC'): 3.761199005613762e-12,
pd.Timestamp('2014-03-05 00:00:00+0000', tz='UTC'): 1.0821808520968138e-10,
pd.Timestamp('2014-03-06 00:00:00+0000', tz='UTC'): 1.5062821298095577e-09,
pd.Timestamp('2014-03-07 00:00:00+0000', tz='UTC'): 7.259225104297054e-10,
pd.Timestamp('2014-03-10 00:00:00+0000', tz='UTC'): 1.712478116969718e-09,
pd.Timestamp('2014-03-11 00:00:00+0000', tz='UTC'): 9.852522636148987e-11,
pd.Timestamp('2014-03-12 00:00:00+0000', tz='UTC'): 9.852522636148987e-11,
pd.Timestamp('2014-03-13 00:00:00+0000', tz='UTC'): 1.2094171927447478e-10,
pd.Timestamp('2014-03-14 00:00:00+0000', tz='UTC'): 5.952923566673947e-12,
pd.Timestamp('2014-03-17 00:00:00+0000', tz='UTC'): 1.0558190877591203e-12,
pd.Timestamp('2014-03-18 00:00:00+0000', tz='UTC'): 4.477870645346641e-13,
pd.Timestamp('2014-03-19 00:00:00+0000', tz='UTC'): 3.65662002551669e-12,
pd.Timestamp('2014-03-20 00:00:00+0000', tz='UTC'): 3.333873646888609e-14,
pd.Timestamp('2014-03-21 00:00:00+0000', tz='UTC'): 3.83393139637087e-14}
x = pd.Series(x)
print(x[x >= 0].all())
True
print(x.max())
3.3178535949444858e+19
bn.move_sum returns negative value (shouldn't happen)
last_move_sum = bn.move_sum(x.values, window=100, min_count=20)[-1]
expected = x.iloc[-100:].sum()
print("bn.move_sum result:", last_move_sum)
bn.move_sum result: -2595.7239120573686
print("Expected sum:      ", expected)
Expected sum:       42374.547808623385
assert expected >= 0
assert last_move_sum >= 0, "move_sum returned negative value on non-negative input"
Traceback (most recent call last):
Cell In[170], line 1
assert last_move_sum >= 0, "move_sum returned negative value on non-negative input"
AssertionError: move_sum returned negative value on non-negative input
import platform
import sys
import numpy
import pandas
import bottleneck
import pip
print("Python:", sys.version)
print("Platform:", platform.platform())
print("NumPy:", numpy.version)
print("Pandas:", pandas.version)
print("Bottleneck:", bottleneck.version)
print("Pip:", pip.version)
Python: 3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]
Platform: Windows-11-10.0.26100-SP0
NumPy: 2.0.2
Pandas: 2.2.3
Bottleneck: 1.4.2
Pip: 23.2.1
`
The expectation is that last_move_sum = expected. But it's actually negative. Max value in is of the order of 1e19, so it's not a floating point overflow issue. I also tried applying bn.move_sum on x.values..astype(np.float64), but it didn't help.