more build system c# version fixes

This commit is contained in:
Plaisted 2021-02-06 15:31:58 -06:00
parent 44ee6d394f
commit 92f9af613f

View File

@ -758,71 +758,80 @@
var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf");
var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf");
using var docOne = PdfDocument.Open(one);
using var docTwo = PdfDocument.Open(two); using (var docOne = PdfDocument.Open(one))
var builder = new PdfDocumentBuilder(); using (var docTwo = PdfDocument.Open(two))
builder.AddPage(docOne, 1); {
builder.AddPage(docTwo, 1); var builder = new PdfDocumentBuilder();
var result = builder.Build(); builder.AddPage(docOne, 1);
PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape", false); builder.AddPage(docTwo, 1);
var result = builder.Build();
PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "I am a simple pdf.", "Write something inInkscape", false);
}
} }
[Fact] [Fact]
public void CanMerge2SimpleDocuments_Builder() public void CanMerge2SimpleDocuments_Builder()
{ {
var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf"); var one = IntegrationHelpers.GetDocumentPath("Single Page Simple - from inkscape.pdf");
var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf"); var two = IntegrationHelpers.GetDocumentPath("Single Page Simple - from open office.pdf");
using var docOne = PdfDocument.Open(one); using (var docOne = PdfDocument.Open(one))
using var docTwo = PdfDocument.Open(two); using (var docTwo = PdfDocument.Open(two))
var builder = new PdfDocumentBuilder(); using (var builder = new PdfDocumentBuilder())
builder.AddPage(docOne, 1); {
builder.AddPage(docTwo, 1);
var result = builder.Build(); builder.AddPage(docOne, 1);
PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "Write something inInkscape", "I am a simple pdf.", false); builder.AddPage(docTwo, 1);
var result = builder.Build();
PdfMergerTests.CanMerge2SimpleDocumentsAssertions(new MemoryStream(result), "Write something inInkscape", "I am a simple pdf.", false);
}
} }
[Fact] [Fact]
public void CanDedupObjectsFromSameDoc_Builder() public void CanDedupObjectsFromSameDoc_Builder()
{ {
var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf");
using var doc = PdfDocument.Open(one); using (var doc = PdfDocument.Open(one))
{
using var builder = new PdfDocumentBuilder(); var builder = new PdfDocumentBuilder();
builder.AddPage(doc, 1); builder.AddPage(doc, 1);
builder.AddPage(doc, 1); builder.AddPage(doc, 1);
var result = builder.Build(); var result = builder.Build();
using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff))
{ {
Assert.Equal(2, document.NumberOfPages); Assert.Equal(2, document.NumberOfPages);
Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29,
"Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use
} }
}
} }
[Fact] [Fact]
public void CanDedupObjectsFromDifferentDoc_HashBuilder() public void CanDedupObjectsFromDifferentDoc_HashBuilder()
{ {
var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf"); var one = IntegrationHelpers.GetDocumentPath("Multiple Page - from Mortality Statistics.pdf");
using (var doc = PdfDocument.Open(one))
using var doc = PdfDocument.Open(one); using (var doc2 = PdfDocument.Open(one))
using var doc2 = PdfDocument.Open(one); using (var builder = new PdfDocumentBuilder(new MemoryStream(), true, PdfWriterType.ObjectInMemoryDedup))
{
using var builder = new PdfDocumentBuilder(new MemoryStream(), true, PdfWriterType.ObjectInMemoryDedup); builder.AddPage(doc, 1);
builder.AddPage(doc, 1); builder.AddPage(doc2, 1);
builder.AddPage(doc2, 1);
var result = builder.Build();
var result = builder.Build();
using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff))
using (var document = PdfDocument.Open(result, ParsingOptions.LenientParsingOff)) {
{ Assert.Equal(2, document.NumberOfPages);
Assert.Equal(2, document.NumberOfPages); Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29,
Assert.True(document.Structure.CrossReferenceTable.ObjectOffsets.Count <= 29, "Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use
"Expected object count to be lower than 30"); // 45 objects with duplicates, 29 with correct re-use }
} }
} }
[InlineData("Single Page Simple - from google drive.pdf")] [InlineData("Single Page Simple - from google drive.pdf")]
@ -834,22 +843,25 @@
{ {
var docPath = IntegrationHelpers.GetDocumentPath(name); var docPath = IntegrationHelpers.GetDocumentPath(name);
using var doc = PdfDocument.Open(docPath, ParsingOptions.LenientParsingOff); using (var doc = PdfDocument.Open(docPath, ParsingOptions.LenientParsingOff))
var count1 = GetCounts(doc); using (var builder = new PdfDocumentBuilder())
{
using var builder = new PdfDocumentBuilder(); var count1 = GetCounts(doc);
for (var i = 1; i <= doc.NumberOfPages; i++)
{ for (var i = 1; i <= doc.NumberOfPages; i++)
builder.AddPage(doc, i); {
builder.AddPage(doc, i);
}
var result = builder.Build();
using (var doc2 = PdfDocument.Open(result, ParsingOptions.LenientParsingOff))
{
var count2 = GetCounts(doc2);
Assert.Equal(count1.Item1, count2.Item1);
Assert.Equal(count1.Item2, count2.Item2);
}
} }
var result = builder.Build();
using (var doc2 = PdfDocument.Open(result, ParsingOptions.LenientParsingOff))
{
var count2 = GetCounts(doc2);
Assert.Equal(count1.Item1, count2.Item1);
Assert.Equal(count1.Item2, count2.Item2);
}
(int, double) GetCounts(PdfDocument toCount) (int, double) GetCounts(PdfDocument toCount)
{ {