Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
f1d2d2224This file is pinned to the selected release. Download the original to open it in your design tool.
package com.marginallyclever.makelangelo.makeart.io;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.turtletool.ReorderTurtleAction;
import com.marginallyclever.makelangelo.makeart.turtletool.SimplifyTurtleAction;
import com.marginallyclever.makelangelo.makeart.turtlegenerator.Generator_TruchetTiles;
import com.marginallyclever.makelangelo.paper.Paper;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettingsManager;
import com.marginallyclever.makelangelo.turtle.Turtle;
import com.marginallyclever.util.PreferencesHelper;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* Confirm saving and loading SVG is lossless.
* @author Dan Royer
* @since 7.49.0
*/
public class SaveAndLoadSVGTest {
@BeforeAll
public static void setup() {
PreferencesHelper.start();
Translator.start();
}
@Test
public void test() throws Exception {
Generator_TruchetTiles g = new Generator_TruchetTiles();
g.setPaper(new Paper());
g.addListener(generatedTurtle-> {
try {
saveAndLoad(generatedTurtle);
} catch (Exception e) {
throw new RuntimeException(e);
}
});
g.generate();
}
private void saveAndLoad(Turtle original) throws Exception {
// given
File fileTemp = File.createTempFile("unit", null);
try {
SimplifyTurtleAction simplify = new SimplifyTurtleAction();
Turtle b2 = simplify.run(original);
ReorderTurtleAction reorder = new ReorderTurtleAction();
Turtle before = reorder.run(b2);
SaveSVG save = new SaveSVG();
FileOutputStream fileOutputStream = new FileOutputStream(fileTemp);
save.save(fileOutputStream, before, PlotterSettingsManager.buildMakelangelo5());
fileOutputStream.close();
LoadSVG load = new LoadSVG();
FileInputStream input = new FileInputStream(fileTemp);
Turtle after = load.load(input);
input.close();
Assertions.assertEquals(before.generateHistory(),after.generateHistory(),"Different history");
} finally {
fileTemp.delete();
}
}
}