*
* @author Yegor Kozlov
*/
+@SuppressWarnings("InfiniteLoopStatement")
public class MemoryUsage extends TestCase {
private static final int NUM_COLUMNS = 255;
* @param wb the workbook to write to
* @param numCols the number of columns in a row
*/
- public static void mixedSpreadsheet(Workbook wb, int numCols){
-
- System.out.println("Testing " + wb.getClass().getName());
+ public static void mixedSpreadsheet(Workbook wb, int numCols) {
+ System.out.println();
+ System.out.println("Testing " + wb.getClass().getName() + " mixed");
printMemoryUsage("before");
int i=0, cnt=0;
try {
Sheet sh = wb.createSheet();
- for(i=0; ; i++){
+ for(i=0; ; i++) {
Row row = sh.createRow(i);
- for(int j=0; j < numCols; j++){
+ for(int j=0; j < numCols; j++) {
Cell cell = row.createCell(j);
if(j % 2 == 0) {
cell.setCellValue(j);
cnt++;
}
}
- } catch (OutOfMemoryError er){
+ } catch (OutOfMemoryError er) {
System.out.println("Failed at row=" + i + ", objects : " + cnt);
} catch (final Exception e) {
System.out.println("Unable to reach an OutOfMemoryError");
* @param wb the workbook to write to
* @param numCols the number of columns in a row
*/
- public static void numberSpreadsheet(Workbook wb, int numCols){
-
- System.out.println("Testing " + wb.getClass().getName());
+ public static void numberSpreadsheet(Workbook wb, int numCols) {
+ System.out.println();
+ System.out.println("Testing " + wb.getClass().getName() + " numbers");
printMemoryUsage("before");
int i=0, cnt=0;
try {
Sheet sh = wb.createSheet();
- for(i=0; ; i++){
+ for(i=0; ; i++) {
Row row = sh.createRow(i);
- for(int j=0; j < numCols; j++){
+ for(int j=0; j < numCols; j++) {
Cell cell = row.createCell(j);
cell.setCellValue(j);
cnt++;
}
}
- } catch (OutOfMemoryError er){
+ } catch (OutOfMemoryError er) {
System.out.println("Failed at row=" + i + ", objects : " + cnt);
} catch (final Exception e) {
System.out.println("Unable to reach an OutOfMemoryError");
*
* @see #testXmlAttached()
*/
- public void testXmlDetached(){
+ public void testXmlDetached() {
+ System.out.println();
+ System.out.println("Testing detached");
+
List<CTRow> rows = new ArrayList<>();
int i = 0;
try {
- for(;;){
+ for(;;) {
//create a standalone CTRow bean
CTRow r = CTRow.Factory.newInstance();
r.setR(++i);
*
* @see #testXmlAttached()
*/
- public void testXmlAttached(){
+ public void testXmlAttached() {
+ System.out.println();
+ System.out.println("Testing attached");
printMemoryUsage("before");
List<CTRow> rows = new ArrayList<>();
int i = 0;
CTWorksheet sh = CTWorksheet.Factory.newInstance();
CTSheetData data = sh.addNewSheetData();
try {
- for(;;){
+ for(;;) {
//create CTRow attached to the parent object
CTRow r = data.addNewRow();
r.setR(++i);
printMemoryUsage("after");
}
- public void testMixedHSSF(){
- numberSpreadsheet(new HSSFWorkbook(), NUM_COLUMNS);
+ public void testMixedHSSF() {
+ mixedSpreadsheet(new HSSFWorkbook(), NUM_COLUMNS);
}
- public void testMixedXSSF(){
- numberSpreadsheet(new XSSFWorkbook(), NUM_COLUMNS);
+ public void testMixedXSSF() {
+ mixedSpreadsheet(new XSSFWorkbook(), NUM_COLUMNS);
}
- public void testNumberHSSF(){
+ public void testNumberHSSF() {
numberSpreadsheet(new HSSFWorkbook(), NUM_COLUMNS);
}
- public void testNumberXSSF(){
+ public void testNumberXSSF() {
numberSpreadsheet(new XSSFWorkbook(), NUM_COLUMNS);
}
-
}
\ No newline at end of file
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
-import java.io.FileFilter;
import java.io.IOException;
import java.io.InputStream;
-import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
import org.apache.poi.POIDataSamples;
import org.apache.poi.hpsf.CustomProperties;
@Parameters(name="{index}: {0} using {1}")
public static Iterable<Object[]> files() {
- final List<Object[]> files = new ArrayList<>();
-
- _samples.getFile("").listFiles(f -> {
- if (f.getName().startsWith("Test")) {
- files.add(new Object[]{ f });
- }
- return false;
- });
-
- return files;
+ File hpsfTestDir = _samples.getFile("");
+
+ File[] files = hpsfTestDir.listFiles(f -> true);
+ Objects.requireNonNull(files, "Could not find directory " + hpsfTestDir.getAbsolutePath());
+
+ // convert to list of object-arrays for @Parameterized
+ return Arrays.stream(files).
+ map(file1 -> new Object[] {file1}).
+ collect(Collectors.toList());
}
- @Parameter(value=0)
+ @Parameter()
public File file;
/**
*/
if (dir.hasEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME)) {
final DocumentSummaryInformation dsi = TestWriteWellKnown.getDocumentSummaryInformation(poifs);
+ assertNotNull(dsi);
/* Execute the get... methods. */
dsi.getByteCount();
+ //noinspection ResultOfMethodCallIgnored
dsi.getByteOrder();
dsi.getCategory();
dsi.getCompany();