public void TestArrayStatus() { //Ordered Accelerometers 1,2,3,...,n (ch1,ch2,ch3 gvalues) var testdata = new double[] { -0.01, 0.65, 0.07, -0.02, 0.77, 0.01, 0, 0.34, 0.04, -0.02, 0.3, 0.03, 0.01, 0.31, 0.05, -0.04, 0.33, 0.05, 0.03, 0.37, 0.06, 0.02, 0.38, 0.04, 0.05, 0.31, 0.06, 0.02, 0.32, 0.05, 0.02, 0.34, 0.01, 0, 0.35, 0.04, 0, 0.34, 0.05, 0.05, 0.34, 0.04, 0.01, 0.34, 0.02, -0.02, 0.37, 0.03, -0.01, 0.34, 0.03, -0.01, 0.38, 0.05, 0.01, 0.35, 0.05, -0.01, 0.35, 0.03, 0.06, -1.03, 0.01, 0, -1.03, 0.04, 0.02, -1, -0.01, 0, -1, -0.07, 0.01, -0.98, -0.05, 0.03, -1, -0.07, 0, -1.02, -0.02, 0.01, -1.03, -0.04, 0, -1, -0.02, 0.02, -1.03, -0.03, 0.03, -1, -0.04, 0.05, -1, 0, -0.01, -1, -0.04, 0.01, -0.99, -0.03, -0.25, -1.18, -0.31, -0.03, -0.99, -0.07, 0.03, -1.01, -0.01, 0.02, -1.01, -0.03, 0.04, -1.02, -0.01, -0.06, -1, -0.07, 0.03, 0.33, 0.04, -0.04, -1.05, -0.03 }; int RESULT = 0; //gvalue = ((value - zero) / gain); //value = (gvalue * gain) + zero //go through all channels and manually update to test data foreach (KeyValuePair <int, Accelerometer> a in Accelerometer.accrs) { int n; double d, bdata; for (int i = 0; i < 3; i++) { n = (a.Value.number - 1) * 3 + i; //acc num 1 based -> -1 d = testdata[n]; //tracknumber 0 based bdata = d * a.Value.channels[i].gain + a.Value.channels[i].zero; a.Value.channels[i].value = (int)Math.Round(bdata, 0); } } string str = Accelerometer.toHTML(); int status = Accelerometer.ArrayStatus(); Assert.IsTrue(status == RESULT); }