I don't know if this is the only cause of your troubles, but ...
A test like arc_data.radius == radius1 or arc_data.center == distx3V1 will often fail.
You should never compare floating point numbers using "==".
To test that two floating-point numbers a and b are equal, you should write a test like
if( System.Math.Abs(a-b) ) < tolerance, where tolerance is some small number, like 0.000001.