public void TestMiscData() { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(_reportFile)); //NO.OF ADVANCES: 114 //NO.OF DECLINES: 79 //NO.OF UNCHANGED: 42 //NO.OF TRADED ISSUES: 235 //NO.OF TRADES: 92,699 //ODDLOT VOLUME: 791,591 //ODDLOT VALUE: Php 267,667.16 //BLOCK SALE VOLUME: 248,879,170 //BLOCK SALE VALUE: Php 3,836,846,796.68 var expected = 0.0; var actual = 0.0; expected = 114; actual = pseDocument.NumAdvance; Assert.AreEqual(expected, actual, "Advances does not match."); expected = 79; actual = pseDocument.NumDeclines; Assert.AreEqual(expected, actual, "Declines does not match."); expected = 42; actual = pseDocument.NumUnchanged; Assert.AreEqual(expected, actual, "Unchanged does not match."); }
public void TestSectorStockCount() { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(_reportFile)); var finance = pseDocument.GetSector(PSEDocument.FINANCIAL); var expected = 0; var actual = 0; Assert.AreEqual(expected, actual, PSEDocument.FINANCIAL + " sector stock count fail."); var industrial = pseDocument.GetSector(PSEDocument.INDUSTRIAL); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.INDUSTRIAL + " sector stock count fail."); var property = pseDocument.GetSector(PSEDocument.PROPERTY); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.PROPERTY + " sector stock count fail."); var services = pseDocument.GetSector(PSEDocument.SERVICE); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.SERVICE + " sector stock count fail."); var mining = pseDocument.GetSector(PSEDocument.MINING_OIL); expected = 0; Assert.AreEqual(expected, actual, PSEDocument.MINING_OIL + " sector stock count fail."); var preferred = pseDocument.GetSector(PSEDocument.PREFERRED); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.PREFERRED + " sector stock count fail."); var warrants = pseDocument.GetSector(PSEDocument.WARRANT); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.WARRANT + " sector stock count fail."); var sme = pseDocument.GetSector(PSEDocument.SME); expected = 0; actual = 0; Assert.AreEqual(expected, actual, PSEDocument.SME + " sector stock count fail."); }
public void TestReaderFirstLine() { //PDFTextStripper stripper = new PDFTextStripper(); var pdfSharpService = new PdfTextSharpService(); var reader = new PSEReportReader2(); //string expected = "The Philippine Stock Exchange, Inc"; //string actual = reader.PSEReportString[0].Trim(); //Assert.AreEqual(expected, actual); }
public void TestUnsupportedReportFormat(string fileToConvert) { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); Assert.Throws( typeof(EUnsupportedReportFormat), new TestDelegate(() => { reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(fileToConvert)); }), "An exception wasn't thrown"); }
public void TestReaderFill_TradDate() { //PDFTextStripper stripper = new PDFTextStripper(); var pdfSharpService = new PdfTextSharpService(); var reader = new PSEReportReader2(); PSEDocument pd = new PSEDocument(); reader.Fill(pd, pdfSharpService.ExtractTextFromPdf(pdfDocPath)); DateTime expected = DateTime.Parse("05/05/2016"); DateTime actual = pd.TradeDate; Assert.AreEqual(expected, actual); }
public void TestMarketSummary_PSEi() { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(_reportFile)); //OPEN HIGH LOW CLOSE %CHANGE PT.CHANGE VOLUME VALUE, Php //PSEi 7,363.88 7,456.26 7,354.57 7,446.49 1.42 104.84 //All Shares 4,424.05 4,464.21 4,420.44 4,460.56 1.06 47.14 //GRAND TOTAL 1,949,153,231 11,941,051,832.83 var expected = 0.0; var actual = 0.0; //psei var psei = pseDocument.GetSector(PSEDocument.PSEI); expected = 7363.88; actual = psei.Open; Assert.AreEqual(expected, actual, "PSEi open does not match"); expected = 7456.26; actual = psei.High; Assert.AreEqual(expected, actual, "PSEi high does not match"); expected = 7354.57; actual = psei.Low; Assert.AreEqual(expected, actual, "PSEi low does not match"); expected = 7446.49; actual = psei.Close; Assert.AreEqual(expected, actual, "PSEi close does not match"); expected = 1949153231.0; actual = psei.Volume; Assert.AreEqual(expected, actual, "PSEi Volume does not match"); expected = 4076175042.08; actual = psei.NetForeignBuy; Assert.AreEqual(expected, actual, "PSEi NFB does not match"); //all shares }
public void TestMarketSummary_Financials() { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(_reportFile)); //OPEN HIGH LOW CLOSE %CHANGE PT.CHANGE VOLUME VALUE, Php //Financials 1,835.16 1,865.93 1,830.89 1,865.93 1.7 31.31 15,721,945 1,537,689,244.77 //GRAND TOTAL 1,949,153,231 11,941,051,832.83 var expected = 0.0; var actual = 0.0; //psei var psei = pseDocument.GetSector(PSEDocument.FINANCIAL); expected = 1835.16; actual = psei.Open; Assert.AreEqual(expected, actual, "FINANCIAL open does not match"); expected = 1865.93; actual = psei.High; Assert.AreEqual(expected, actual, "FINANCIAL high does not match"); expected = 1830.89; actual = psei.Low; Assert.AreEqual(expected, actual, "FINANCIAL low does not match"); expected = 1865.93; actual = psei.Close; Assert.AreEqual(expected, actual, "FINANCIAL close does not match"); expected = 15721945.0; actual = psei.Volume; Assert.AreEqual(expected, actual, "FINANCIAL Volume does not match"); expected = 1537689244.77; actual = psei.Value; Assert.AreEqual(expected, actual, "FINANCIAL Value does not match"); //all shares }
static void ConvertIt(string fileToConvert) { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(fileToConvert)); if (_outputFormat.Contains("csv")) { string[] csvParam = _outputFormat.Split(':'); string csvFormat = string.Empty; if (csvParam.Length == 2) { csvFormat = csvParam[1]; csvFormat = csvFormat.Replace("S", "{S}"); csvFormat = csvFormat.Replace("D", "{D}"); csvFormat = csvFormat.Replace("O", "{O}"); csvFormat = csvFormat.Replace("H", "{H}"); csvFormat = csvFormat.Replace("L", "{L}"); csvFormat = csvFormat.Replace("C", "{C}"); csvFormat = csvFormat.Replace("V", "{V}"); csvFormat = csvFormat.Replace("F", "{F}"); } else { csvFormat = "{S},{D},{O},{H},{L},{C},{V},{F}"; } var csvOutputSettings = new CSVOutputSettings(); csvOutputSettings.CSVFormat = csvFormat; csvOutputSettings.DateFormat = _dateFormat; csvOutputSettings.Delimiter = ","; csvOutputSettings.Filename = Path.GetFileName(fileToConvert).Replace("pdf", "csv"); csvOutputSettings.OutputDirectory = _outputPath; csvOutputSettings.UseSectorValueAsVolume = true; csvOutputSettings.SectorVolumeDivider = 1000; pseDocument.ToCSV(csvOutputSettings); } }
static void ConvertIt(string fileToConvert) { IPdfService pdfService = new PdfTextSharpService(); var pseDocument = new PSEDocument(); IPSEReportReader reader = new PSEReportReader2(); reader.Fill(pseDocument, pdfService.ExtractTextFromPdf(fileToConvert)); if (_outputFormat.Contains("csv")) { string[] csvParam = _outputFormat.Split(':'); string csvFormat = string.Empty; if (csvParam.Length == 2) { csvFormat = csvParam[1]; csvFormat = csvFormat.Replace("S", "{S}"); csvFormat = csvFormat.Replace("D", "{D}"); csvFormat = csvFormat.Replace("O", "{O}"); csvFormat = csvFormat.Replace("H", "{H}"); csvFormat = csvFormat.Replace("L", "{L}"); csvFormat = csvFormat.Replace("C", "{C}"); csvFormat = csvFormat.Replace("V", "{V}"); csvFormat = csvFormat.Replace("F", "{F}"); } else { csvFormat = "{S},{D},{O},{H},{L},{C},{V},{F}"; } var csvOutputSettings = new CSVOutputSettings(); csvOutputSettings.CSVFormat = csvFormat; csvOutputSettings.DateFormat = _dateFormat; csvOutputSettings.Delimiter = ","; csvOutputSettings.Filename = Path.GetFileName(fileToConvert).Replace("pdf", "csv"); csvOutputSettings.OutputDirectory = _outputPath; csvOutputSettings.UseSectorValueAsVolume = true; csvOutputSettings.SectorVolumeDivider = 1000; pseDocument.ToCSV(csvOutputSettings); } else if ((HostOS.determineHostEnviroment() == HostOS.HostEnviroment.Windows) && (_outputFormat.Contains("ami"))) { IAmibrokerService amiService = new AmibrokerService(); if (!amiService.IsAmibrokerInstalled()) { throw new Exception("Error: Amibroker is not installed on this machine."); } string[] amiParam = _outputFormat.Split(':'); if (amiParam.Length < 2) { throw new Exception("Error: Unspecified Amibroker database folder."); } string amiDatabaseFolder = _outputFormat.Replace("ami:", string.Empty); var amiOutputSettings = new AmiOutputSettings(); amiOutputSettings.DatabaseDirectory = amiDatabaseFolder; amiOutputSettings.SectorVolumeDivider = 1000; amiOutputSettings.UseSectorValueAsVolume = true; pseDocument.ToAmibroker(amiOutputSettings); } }
public void TestReader_SectorSummary() { //PDFTextStripper stripper = new PDFTextStripper(); IPdfService pdfService = new PdfTextSharpService(); var reader = new PSEReportReader2(); var pd = new PSEDocument(); reader.Fill(pd, pdfService.ExtractTextFromPdf(pdfDocPath)); // psei SectorItem psei = pd.GetSector(PSEDocument.PSEI); ulong expected = 3150242905; ulong actual = psei.Volume; Assert.AreEqual(expected, actual, "PSEi volume not equal"); double expected_value = 5634576802.26; double actual_value = pd.GetSector(PSEDocument.PSEI).Value; Assert.AreEqual(expected_value, actual_value, "PSEi value not equal"); expected_value = 7007.63; actual_value = psei.Open; Assert.AreEqual(expected_value, actual_value, "PSEi open not equal"); expected_value = 7011.28; actual_value = psei.High; Assert.AreEqual(expected_value, actual_value, "PSEi high not equal"); expected_value = 6986.86; actual_value = psei.Low; Assert.AreEqual(expected_value, actual_value, "PSEi low not equal"); expected_value = 6999.75; actual_value = psei.Close; Assert.AreEqual(expected_value, actual_value, "PSEi close not equal"); // financial SectorItem financial = pd.GetSector(PSEDocument.FINANCIAL); expected = 8105540; actual = financial.Volume; Assert.AreEqual(expected, actual, "Financial volume not equal"); expected_value = 755542372.19; actual_value = financial.Value; Assert.AreEqual(expected, actual, "Financial value not equal"); //913.01 935.52 909.34 935.52 2.47 22.51 24,780,801 882,690,827.9 expected_value = 1585.35; actual_value = financial.Open; Assert.AreEqual(expected_value, actual_value, "Financial open not equal"); expected_value = 1585.39; actual_value = financial.High; Assert.AreEqual(expected_value, actual_value, "Financial high not equal"); expected_value = 1577.85; actual_value = financial.Low; Assert.AreEqual(expected_value, actual_value, "Financial low not equal"); expected_value = 1583.44; actual_value = financial.Close; Assert.AreEqual(expected_value, actual_value); // mining SectorItem mining = pd.GetSector(PSEDocument.MINING_OIL); expected = 2528326978; actual = mining.Volume; Assert.AreEqual(expected, actual, "Mining volume not equal"); expected_value = 143087427.64; actual_value = mining.Value; Assert.AreEqual(expected, actual, "Mining value not equal"); //11,644.77 12,468.64 11,644.77 12,387.7 7.97 914.68 3,832,444,034 977,394,265.25 expected_value = 10885.19; actual_value = mining.Open; Assert.AreEqual(expected_value, actual_value); expected_value = 10886.63; actual_value = mining.High; Assert.AreEqual(expected_value, actual_value); expected_value = 10700.58; actual_value = mining.Low; Assert.AreEqual(expected_value, actual_value); expected_value = 10740.09; actual_value = mining.Close; Assert.AreEqual(expected_value, actual_value); SectorItem pse = pd.GetSector(PSEDocument.PSEI); expected_value = -616052104.21; actual_value = pse.NetForeignBuy; Assert.AreEqual(expected_value, actual_value); }
public void TestReader_ReportBody() { //PDFTextStripper stripper = new PDFTextStripper(); var pdfSharpService = new PdfTextSharpService(); var reader = new PSEReportReader2(); PSEDocument pd = new PSEDocument(); reader.Fill(pd, pdfSharpService.ExtractTextFromPdf(pdfDocPath)); //Bid Ask Open High Low Close Volume Value NFB/S //METROBANK MBT 78.75 78.8 78.95 79.1 78.55 78.8 2,050,170 161,601,172 7,609,520 StockItem stock = pd.GetStock("MBT"); double expected = 78.75; double actual = stock.Bid; Assert.AreEqual(expected, actual); expected = 78.95; actual = stock.Open; Assert.AreEqual(expected, actual); expected = 2050170; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 161601172; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 7609520; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //PSBANK PSB 98.55 102.9 102.9 102.9 102.9 102.9 50 5,145 - stock = pd.GetStock("PSB"); expected = 102.9; actual = stock.High; Assert.AreEqual(expected, actual); actual = stock.Volume; expected = 50; Assert.AreEqual(expected, actual); actual = stock.Value; expected = 5145; Assert.AreEqual(expected, actual); actual = stock.NetForeignBuy; expected = 0; Assert.AreEqual(expected, actual); //MANULIFE MFC 580 610 - - - - - - - stock = pd.GetStock("MFC"); expected = 0; actual = stock.Close; Assert.AreEqual(expected, actual); expected = 0; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 0; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //ENERGY DEVT EDC 5.65 5.66 5.62 5.7 5.6 5.65 5,854,000 32,973,299 (19,410,534) stock = pd.GetStock("EDC"); expected = 5.66; actual = stock.Ask; Assert.AreEqual(expected, actual); expected = 5.6; actual = stock.Low; Assert.AreEqual(expected, actual); expected = 5854000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 32973299; actual = stock.Value; Assert.AreEqual(expected, actual); expected = -19410534; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); ////COSMOS CBC - - - - - - - - - //stock = pd.GetStock("CBC"); //expected = 0; //actual = stock.High; //Assert.AreEqual(expected, actual); //actual = stock.Volume; //Assert.AreEqual(expected, actual); //actual = stock.Value; //Assert.AreEqual(expected, actual); //actual = stock.NetForeignBuy; //Assert.AreEqual(expected, actual); //VULCAN INDL VUL 1.26 1.27 1.25 1.3 1.25 1.27 369,000 463,800 - stock = pd.GetStock("VUL"); expected = 1.27; actual = stock.Close; Assert.AreEqual(expected, actual); expected = 369000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 463800; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //ANSCOR ANS 5.92 6 6 6 5.97 5.97 3,000 17,970 - stock = pd.GetStock("ANS"); expected = 5.92; actual = stock.Bid; Assert.AreEqual(expected, actual); expected = 6; actual = stock.Open; Assert.AreEqual(expected, actual); expected = 3000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 17970; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //SEAFRONT RES SPM 2.13 2.34 - - - - - - - stock = pd.GetStock("SPM"); expected = 2.34; actual = stock.Ask; Assert.AreEqual(expected, actual); expected = 0; actual = stock.Volume; Assert.AreEqual(expected, actual); actual = stock.Value; Assert.AreEqual(expected, actual); actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //SINOPHIL SINO 0.305 0.31 0.31 0.31 0.305 0.305 1,190,000 366,450 - //stock = pd.GetStock("SINO"); //expected = 0.31; //actual = stock.High; //Assert.AreEqual(expected, actual); //expected = 0.305; //actual = stock.Close; //Assert.AreEqual(expected, actual); //expected = 1190000; //actual = stock.Volume; //Assert.AreEqual(expected, actual); //expected = 366450; //actual = stock.Value; //Assert.AreEqual(expected, actual); //expected = 0; //actual = stock.NetForeignBuy; //Assert.AreEqual(expected, actual); //AYALA LAND ALI 33.8 33.85 33.7 34 33.65 33.8 11,833,600 400,085,500 (62,456,645) stock = pd.GetStock("ALI"); expected = 33.8; actual = stock.Close; Assert.AreEqual(expected, actual); expected = 11833600; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 400085500; actual = stock.Value; Assert.AreEqual(expected, actual); expected = -62456645; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //MARSTEEL B MCB - - - - - - - - - //stock = pd.GetStock("MCB"); //expected = 0; //actual = stock.Bid; //Assert.AreEqual(expected, actual); //actual = stock.Open; //Assert.AreEqual(expected, actual); //actual = stock.Close; //Assert.AreEqual(expected, actual); //actual = stock.Volume; //Assert.AreEqual(expected, actual); //actual = stock.Value; //Assert.AreEqual(expected, actual); //actual = stock.NetForeignBuy; //Assert.AreEqual(expected, actual); //SM DEVT SMDC 9.35 9.4 8.64 9.8 8.64 9.35 3,641,200 33,750,420 633,735 //stock = pd.GetStock("SMDC"); //expected = 9.35; //actual = stock.Bid; //Assert.AreEqual(expected, actual); //expected = 8.64; //actual = stock.Low; //Assert.AreEqual(expected, actual); //expected = 3641200; //actual = stock.Volume; //Assert.AreEqual(expected, actual); //expected = 33750420; //actual = stock.Value; //Assert.AreEqual(expected, actual); //expected = 633735; //actual = stock.NetForeignBuy; //Assert.AreEqual(expected, actual); //GMA NETWORK GMA7 6.75 6.78 6.75 6.78 6.71 6.78 74,300 501,102 - stock = pd.GetStock("GMA7"); expected = 6.71; actual = stock.Low; Assert.AreEqual(expected, actual); expected = 74300; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 501102; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //DIGITEL DGTL 1.51 1.52 1.53 1.54 1.51 1.52 36,056,000 54,884,680 (686,960) //stock = pd.GetStock("DGTL"); //expected = 1.53; //actual = stock.Open; //Assert.AreEqual(expected, actual); //expected = 36056000; //actual = stock.Volume; //Assert.AreEqual(expected, actual); //expected = 54884680; //actual = stock.Value; //Assert.AreEqual(expected, actual); //expected = -686960; //actual = stock.NetForeignBuy; //Assert.AreEqual(expected, actual); //WATERFRONT WPI 0.33 0.34 0.33 0.33 0.33 0.33 430,000 141,900 - stock = pd.GetStock("WPI"); expected = 0.33; actual = stock.Close; Assert.AreEqual(expected, actual); expected = 430000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 141900; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //GEOGRACE GEO 0.28 0.29 0.28 0.285 0.28 0.285 450,000 126,050 - stock = pd.GetStock("GEO"); expected = 0.285; actual = stock.High; Assert.AreEqual(expected, actual); expected = 450000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 126050; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //SEMIRARA MINING SCC 126.4 126.5 127 127 126.1 126.5 240,020 30,357,793 (10,789,654) stock = pd.GetStock("SCC"); expected = 126.5; actual = stock.Ask; Assert.AreEqual(expected, actual); expected = 240020; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 30357793; actual = stock.Value; Assert.AreEqual(expected, actual); expected = -10789654; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); //PHILODRILL OV 0.012 0.013 0.012 0.012 0.012 0.012 13,200,000 158,400 - stock = pd.GetStock("OV"); expected = 0.012; actual = stock.Close; Assert.AreEqual(expected, actual); expected = 13200000; actual = stock.Volume; Assert.AreEqual(expected, actual); expected = 158400; actual = stock.Value; Assert.AreEqual(expected, actual); expected = 0; actual = stock.NetForeignBuy; Assert.AreEqual(expected, actual); }