public void TestCheckNanPreserve() { byte[] formulaByte = new byte[29]; formulaByte[4] = (byte)0x0F; formulaByte[6] = (byte)0x02; formulaByte[8] = (byte)0x07; formulaByte[12] = (byte)0xFF; formulaByte[13] = (byte)0xFF; formulaByte[18] = (byte)0xE0; formulaByte[19] = (byte)0xFC; formulaByte[20] = (byte)0x07; formulaByte[22] = (byte)0x1E; formulaByte[23] = (byte)0x01; formulaByte[25] = (byte)0x1E; formulaByte[28] = (byte)0x06; FormulaRecord record = new FormulaRecord(TestcaseRecordInputStream.Create(FormulaRecord.sid, formulaByte)); Assert.AreEqual(0, record.Row, "Row"); Assert.AreEqual(0, record.Column, "Column"); Assert.AreEqual(record.CachedResultType,NPOI.SS.UserModel.CellType.ERROR); byte[] output = record.Serialize(); Assert.AreEqual(33, output.Length, "Output size"); //includes sid+recordlength for (int i = 5; i < 13; i++) { Assert.AreEqual(formulaByte[i], output[i + 4], "FormulaByte NaN doesn't match"); } }
public void TestExpFormula() { byte[] formulaByte = new byte[27]; formulaByte[4] = (byte)0x0F; formulaByte[14] = (byte)0x08; formulaByte[18] = (byte)0xE0; formulaByte[19] = (byte)0xFD; formulaByte[20] = (byte)0x05; formulaByte[22] = (byte)0x01; FormulaRecord record = new FormulaRecord(TestcaseRecordInputStream.Create(FormulaRecord.sid, formulaByte)); Assert.AreEqual(0, record.Row, "Row"); Assert.AreEqual(0, record.Column, "Column"); byte[] output = record.Serialize(); Assert.AreEqual(31, output.Length, "Output size"); //includes sid+recordlength Assert.AreEqual(1, output[26], "OffSet 22"); }
public void TestReSerialize() { FormulaRecord formulaRecord = new FormulaRecord(); formulaRecord.Row = (/*setter*/1); formulaRecord.Column = (/*setter*/(short)1); formulaRecord.ParsedExpression = (/*setter*/new Ptg[] { new RefPtg("B$5"), }); formulaRecord.Value = (/*setter*/3.3); byte[] ser = formulaRecord.Serialize(); Assert.AreEqual(31, ser.Length); RecordInputStream in1 = TestcaseRecordInputStream.Create(ser); FormulaRecord fr2 = new FormulaRecord(in1); Assert.AreEqual(3.3, fr2.Value, 0.0); Ptg[] ptgs = fr2.ParsedExpression; Assert.AreEqual(1, ptgs.Length); RefPtg rp = (RefPtg)ptgs[0]; Assert.AreEqual("B$5", rp.ToFormulaString()); }