| using System; | 
 | using System.Diagnostics; | 
 | using System.IO; | 
 | using System.Linq; | 
 | using Microsoft.VisualStudio.TestTools.UnitTesting; | 
 | using OfficeOpenXml; | 
 | using OfficeOpenXml.FormulaParsing.Logging; | 
 |  | 
 | namespace EPPlusTest.FormulaParsing.IntegrationTests.BuiltInFunctions | 
 | { | 
 |     [TestClass] | 
 |     public class TextFunctionsTests | 
 |     { | 
 |         [TestMethod] | 
 |         public void HyperlinkShouldHandleReference() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "HYPERLINK(B1)"; | 
 |                 sheet.Cells["B1"].Value = "http://epplus.codeplex.com"; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual("http://epplus.codeplex.com", sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void HyperlinkShouldHandleReference2() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "HYPERLINK(B1, B2)"; | 
 |                 sheet.Cells["B1"].Value = "http://epplus.codeplex.com"; | 
 |                 sheet.Cells["B2"].Value = "Epplus"; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual("Epplus", sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void HyperlinkShouldHandleText() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "HYPERLINK(\"testing\")"; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual("testing", sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void CharShouldReturnCharValOfNumber() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Char(A2)"; | 
 |                 sheet.Cells["A2"].Value = 55; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual("7", sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void FixedShouldHaveCorrectDefaultValues() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Fixed(A2)"; | 
 |                 sheet.Cells["A2"].Value = 1234.5678; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual(1234.5678.ToString("N2"), sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void FixedShouldSetCorrectNumberOfDecimals() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Fixed(A2,4)"; | 
 |                 sheet.Cells["A2"].Value = 1234.56789; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual(1234.56789.ToString("N4"), sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void FixedShouldSetNoCommas() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Fixed(A2,4,true)"; | 
 |                 sheet.Cells["A2"].Value = 1234.56789; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual(1234.56789.ToString("F4"), sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void FixedShouldHandleNegativeDecimals() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Fixed(A2,-1,true)"; | 
 |                 sheet.Cells["A2"].Value = 1234.56789; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual(1230.ToString("F0"), sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod] | 
 |         public void ConcatenateShouldHandleRange() | 
 |         { | 
 |             using (var pck = new ExcelPackage(new MemoryStream())) | 
 |             { | 
 |                 var sheet = pck.Workbook.Worksheets.Add("test"); | 
 |                 sheet.Cells["A1"].Formula = "Concatenate(1,A2)"; | 
 |                 sheet.Cells["A2"].Value = "hello"; | 
 |                 sheet.Calculate(); | 
 |                 Assert.AreEqual("1hello", sheet.Cells["A1"].Value); | 
 |             } | 
 |         } | 
 |  | 
 |         [TestMethod, Ignore] | 
 |         public void Logtest1() | 
 |         { | 
 |             var sw = new Stopwatch(); | 
 |             sw.Start(); | 
 |             using (var pck = new ExcelPackage(new FileInfo(@"c:\temp\denis.xlsx"))) | 
 |             { | 
 |                 var logger = LoggerFactory.CreateTextFileLogger(new FileInfo(@"c:\temp\log1.txt")); | 
 |                 pck.Workbook.FormulaParser.Configure(x => x.AttachLogger(logger)); | 
 |                 pck.Workbook.Calculate(); | 
 |                 // | 
 |             } | 
 |             sw.Stop(); | 
 |             var elapsed = sw.Elapsed; | 
 |             Console.WriteLine(string.Format("{0} seconds", elapsed.TotalSeconds)); | 
 |         } | 
 |     } | 
 | } |