There is a lot going on here with lots of similarly named variables, making this test pretty hard to follow.  Maybe there other variable names or comments that would help.  Maybe breaking this into multiple tests would help.