Beispiel #1
0
        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");
            }
        }
Beispiel #2
0
        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");
        }
Beispiel #3
0
        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());
        }