public virtual void testIsExecutable() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource(ElementName.SCREENINGINTENT, null, EnumUsage.Input, null, null, null, null); JDFResourceLink rl = n.getLink(r, null); r.setResStatus(EnumResStatus.Available, true); Assert.IsTrue(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Unavailable, true); Assert.IsFalse(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Draft, true); Assert.IsFalse(rl.isExecutable(null, true)); rl.setDraftOK(true); Assert.IsTrue(rl.isExecutable(null, true)); rl.setUsage(EnumUsage.Output); r.setResStatus(EnumResStatus.Available, true); Assert.IsTrue(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Unavailable, true); Assert.IsFalse(rl.isExecutable(null, true)); r.setResStatus(EnumResStatus.Draft, true); Assert.IsTrue(rl.isExecutable(null, true)); rl.setDraftOK(true); Assert.IsTrue(rl.isExecutable(null, true)); JDFResource rSig = r.addPartition(EnumPartIDKey.SignatureName, "sig1"); JDFResource rSheet = rSig.addPartition(EnumPartIDKey.SheetName, "sh1"); rSheet.setResStatus(EnumResStatus.Available, false); r.setResStatus(EnumResStatus.Unavailable, true); rSheet.setResStatus(EnumResStatus.Available, true); rl.setUsage(EnumUsage.Input); JDFAttributeMap map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig1"); Assert.IsFalse(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); JDFResource rSheet2 = rSig.addPartition(EnumPartIDKey.SheetName, "sh2"); rSheet2.setResStatus(EnumResStatus.Unavailable, false); Assert.IsFalse(rl.isExecutable(map, false)); Assert.IsFalse(rl.isExecutable(map, true)); map.put(EnumPartIDKey.SheetName, "sh1"); Assert.IsTrue(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); rl.appendPart().setPartMap(map); map.put(EnumPartIDKey.SheetName, "sh2"); rl.appendPart().setPartMap(map); map = new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig1"); rSheet2.setResStatus(EnumResStatus.Available, false); Assert.IsTrue(rl.isExecutable(map, false)); Assert.IsTrue(rl.isExecutable(map, true)); }
public virtual void testGetAmountPoolSumDouble() { JDFNode d = new JDFDoc("JDF").getJDFRoot(); JDFResource m = d.addResource("Media", EnumUsage.Input); m.addPartition(EnumPartIDKey.SignatureName, "1"); JDFResourceLink rl = d.getLink(m, EnumUsage.Input); JDFAttributeMap map = new JDFAttributeMap("SignatureName", "1"); map.put("Condition", "Good"); rl.setActualAmount(12, map); VJDFAttributeMap vMap = new VJDFAttributeMap(); vMap.Add(new JDFAttributeMap("SignatureName", "1")); JDFAttributeMap sig1 = new JDFAttributeMap("SignatureName", "2"); vMap.Add(sig1); rl.getAmountPool().getPartAmount(map).setPartMapVector(vMap); map.put("Condition", "Waste"); rl.setActualAmount(14, map); Assert.AreEqual(26.0, rl.getAmountPoolSumDouble(AttributeName.ACTUALAMOUNT, null), 0.1); Assert.AreEqual(26.0, rl.getAmountPoolSumDouble(AttributeName.ACTUALAMOUNT, vMap), 0.1); sig1.put("SheetName", "S1"); Assert.AreEqual(26.0, rl.getAmountPoolSumDouble(AttributeName.ACTUALAMOUNT, vMap), 0.1, " also when more granular"); sig1 = new JDFAttributeMap(sig1); sig1.put("SheetName", "S2"); vMap.Add(sig1); Assert.AreEqual(26.0, rl.getAmountPoolSumDouble(AttributeName.ACTUALAMOUNT, vMap), 0.1, " also when more granular"); }
public virtual void testWebGrowthCompensation() { JDFElement.setLongID(false); doc = new JDFDoc("JDF"); JDFNode n = doc.getJDFRoot(); JDFResourcePool rp = n.getCreateResourcePool(); JDFResource lo = n.addResource("Layout", EnumResourceClass.Parameter, EnumUsage.Input, null, null, null, null); JDFLayout losh = (JDFLayout)lo.addPartition(EnumPartIDKey.SheetName, "Sheet1"); JDFLayout lofr = (JDFLayout)losh.addPartition(EnumPartIDKey.Side, EnumSide.Front.getName()); rp.appendXMLComment("LayoutShift SHOULD be partitioned: at least Side and Separation will make sense", null); JDFResource los = n.addResource("LayoutShift", EnumResourceClass.Parameter, EnumUsage.Input, null, null, null, null); los.appendXMLComment("Note that the interpolation algorithm between positions is implementation dependent", null); los = los.addPartition(EnumPartIDKey.Side, "Front"); VString vSep = new VString("Cyan Magenta Yellow Black", " "); for (int i = 0; i < 16; i++) { int x = 720 * (i % 4); int y = 1000 * (i / 4); int ord = i % 8; JDFContentObject co = lofr.appendContentObject(); co.setOrd(ord); co.setOrdID(i); co.setCTM(new JDFMatrix(1, 0, 0, 1, x, y)); JDFMarkObject mo = lofr.appendMarkObject(); mo.setOrd(ord); mo.setOrdID(i + 100); mo.setCTM(new JDFMatrix(1, 0, 0, 1, x + 700, y + 900)); } for (int j = 0; j < vSep.Count; j++) { KElement sepShift = los.addPartition(EnumPartIDKey.Separation, vSep.stringAt(j)); for (int i = 0; i < 16; i += 2) { int x = 720 * (i % 4); int y = 1000 * (i / 4); KElement shiftObject = sepShift.appendElement("ShiftPoint"); shiftObject.setAttribute("Position", new JDFXYPair(x + 360, y + 500).ToString()); shiftObject.setAttribute("CTM", new JDFMatrix(1, 0, 0, 1, j + i / 4, j + i % 4).ToString()); } } doc.write2File(sm_dirTestDataTemp + "WebgrowthPartition.jdf", 2, false); }
public virtual void testLinkResourcePartition() { JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource("Component", null, null, null, null, null, null); Assert.IsTrue(r is JDFComponent); r = r.addPartition(EnumPartIDKey.SignatureName, "Sig1"); r.addPartition(EnumPartIDKey.SheetName, "S1"); Assert.IsFalse(n.hasChildElement("ResourceLinkPool", null)); JDFResourceLinkPool rlp = n.getCreateResourceLinkPool(); JDFResourceLink rl = rlp.linkResource(r, EnumUsage.Input, EnumProcessUsage.BookBlock); Assert.IsNotNull(rl); Assert.AreEqual(EnumProcessUsage.BookBlock, rl.getEnumProcessUsage()); Assert.AreEqual(EnumUsage.Input, rl.getUsage()); VJDFAttributeMap v = new VJDFAttributeMap(); v.Add(new JDFAttributeMap(EnumPartIDKey.SignatureName, "Sig1")); Assert.AreEqual(v, rl.getPartMapVector()); }
public void testStationMapStrip() { n.setType(EnumType.Stripping); JDFBinderySignature bs = (JDFBinderySignature)n.addResource(ElementName.BINDERYSIGNATURE, null); JDFDieLayout dl = bs.appendDieLayout(); JDFStation station = dl.appendStation(); station.setStationName("Lid"); station.setStationAmount(9); station = dl.appendStation(); station.setStationName("Box"); station.setStationAmount(3); JDFResource sm = n.addResource("StationMap", EnumResourceClass.Parameter, null, null, null, null, null); sm.setXMLComment("The partition structure should reflect the product structure "); JDFResource sm1 = sm.addPartition(EnumPartIDKey.PartVersion, "Strawberry"); sm1.setAttribute("StationName", "Lid"); sm1.setAttribute("MapAmount", "3"); sm1.setAttribute("StationIndex", "0 1 2"); sm1.setXMLComment("3*Strawberry MUST be placed on station index 0-2"); sm1 = sm.addPartition(EnumPartIDKey.PartVersion, "Blueberry"); sm1.setAttribute("StationName", "Lid"); sm1.setAttribute("MapAmount", "2"); sm1.setXMLComment("2*Blueberry can be placed on any remaining lid station"); sm1 = sm.addPartition(EnumPartIDKey.PartVersion, "Cherry"); sm1.setAttribute("StationName", "Lid"); sm1.setAttribute("MapAmount", "4"); sm1.setXMLComment("4*Cherry can be placed on any remaining lid station"); dl.refElement(sm); d.write2File(sm_dirTestDataTemp + "StationMapStripping.jdf", 2, false); }
public virtual void testCombinedVarnish() { JDFElement.setLongID(false); JDFDoc d = new JDFDoc("JDF"); JDFNode n = d.getJDFRoot(); VString vCombiNodes = new VString("ConventionalPrinting Varnishing", " "); VString vSeparations = new VString("Cyan Magenta Yellow Black Varnish", " "); n.setCombined(vCombiNodes); JDFConventionalPrintingParams cpp = (JDFConventionalPrintingParams)n.addResource(ElementName.CONVENTIONALPRINTINGPARAMS, null, EnumUsage.Input, null, null, null, null); cpp.setModuleAvailableIndex(new JDFIntegerRangeList("1 ~ 6")); cpp.setModuleIndex(new JDFIntegerRangeList("1 ~ 4 6")); cpp.appendXMLComment("Module 0 and 7 are varnishing modules, 1-4 are process colors and 6 is the ink module used to varnish", null); n.appendMatchingResource("Component", JDFNode.EnumProcessUsage.AnyOutput, null); JDFExposedMedia xm = (JDFExposedMedia)n.appendMatchingResource("ExposedMedia", JDFNode.EnumProcessUsage.Plate, null); n.appendNodeInfo(); JDFMedia media = xm.appendMedia(); media.setMediaType(EnumMediaType.Plate); JDFInk ink = (JDFInk)n.appendMatchingResource("Ink", JDFNode.EnumProcessUsage.AnyInput, null); JDFResource vp = n.addResource("VarnishingParams", EnumResourceClass.Parameter, EnumUsage.Input, null, null, null, null); JDFExposedMedia xmVarnish = (JDFExposedMedia)n.addResource("ExposedMedia", null, EnumUsage.Input, null, null, null, null); JDFMedia mediaVarnish = xmVarnish.appendMedia(); mediaVarnish.setAttribute("MediaType", "Sleeve"); JDFResourceLink rl = n.getLink(xmVarnish, null); JDFColorantControl cc = (JDFColorantControl)n.appendMatchingResource(ElementName.COLORANTCONTROL, JDFNode.EnumProcessUsage.AnyInput, null); cc.getCreateDeviceColorantOrder().appendXMLComment("Should the VarnishingParams seps be excluded, as is shown here?", null); cc.getCreateDeviceColorantOrder().setSeparations(vSeparations); rl.setCombinedProcessIndex(new JDFIntegerList("1")); vSeparations.addAll(new VString("PreVarnish Varnish2", " ")); for (int i = 0; i < vSeparations.Count; i++) { string sep = vSeparations.stringAt(i); ink.addPartition(EnumPartIDKey.Separation, sep); if (!sep.Equals("PreVarnish") && !sep.Equals("Varnish2")) { xm.addPartition(EnumPartIDKey.Separation, sep); } if (sep.Equals("Varnish2")) { vp.appendXMLComment("full varnishing in a varnishing module with or wihtout a sleeve. Full varnishing means to cover the complete media surface.", null); xmVarnish.addPartition(EnumPartIDKey.Separation, sep); JDFResource varnishPart = vp.addPartition(EnumPartIDKey.Separation, sep); varnishPart.setAttribute("ModuleIndex", "7"); varnishPart.setAttribute("VarnishMethod", "Sleeve"); varnishPart.setAttribute("VarnishArea", "Spot"); } else if (sep.Equals("Varnish")) { vp.appendXMLComment("varnishing in a printing module only with a mandatory plate. The plate may be exposed or not, for example, for full varnihing. ", null); // xmVarnish.addPartition(EnumPartIDKey.Separation, sep); JDFResource varnishPart = vp.addPartition(EnumPartIDKey.Separation, sep); varnishPart.setAttribute("ModuleIndex", "6"); varnishPart.setAttribute("VarnishMethod", "Plate"); varnishPart.setAttribute("VarnishArea", "Full"); } else if (sep.Equals("PreVarnish")) { vp.appendXMLComment("varnishing in a varnishing module only with a mandatory prepared sleeve ", null); xmVarnish.addPartition(EnumPartIDKey.Separation, sep); JDFResource varnishPart = vp.addPartition(EnumPartIDKey.Separation, sep); varnishPart.setAttribute("ModuleIndex", "0"); varnishPart.setAttribute("VarnishMethod", "Sleeve"); varnishPart.setAttribute("VarnishArea", "Full"); } } d.write2File(sm_dirTestDataTemp + "varnishing.jdf", 2, true); }
public virtual void testHasResourcePartMap() { JDFDoc d = new JDFDoc(ElementName.JDF); JDFNode n = d.getJDFRoot(); JDFResource r = n.addResource(ElementName.SCREENINGINTENT, null, EnumUsage.Input, null, null, null, null); JDFResourceLink rl = n.getLink(r, null); // the root always exists Assert.IsTrue(rl.hasResourcePartMap(null, false)); Assert.IsTrue(rl.hasResourcePartMap(null, true)); JDFAttributeMap attributeMap = new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig1"); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, false)); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, true)); r.setPartUsage(EnumPartUsage.Implicit); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, false)); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, true)); r.setPartUsage(EnumPartUsage.Explicit); JDFResource rSig = r.addPartition(EnumPartIDKey.SignatureName, "sig1"); // the root always exists Assert.IsTrue(rl.hasResourcePartMap(null, false)); Assert.IsTrue(rl.hasResourcePartMap(null, true)); // link and resource match rl.setPart(EnumPartIDKey.SignatureName.getName(), "sig1"); Assert.IsTrue(rl.hasResourcePartMap(null, false)); Assert.IsTrue(rl.hasResourcePartMap(null, true)); // resource is partitioned deeper than link rSig.addPartition(EnumPartIDKey.SheetName, "sh1"); Assert.IsTrue(rl.hasResourcePartMap(null, false)); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, false)); attributeMap.put(EnumPartIDKey.SheetName, "sh1"); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, true)); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, false)); attributeMap.put(EnumPartIDKey.SheetName, "sh2"); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, true)); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, false)); attributeMap.put(EnumPartIDKey.Side, "Front"); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, true)); Assert.IsFalse(rl.hasResourcePartMap(attributeMap, false)); Assert.IsFalse(rl.hasResourcePartMap(new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig2"), false)); Assert.IsFalse(rl.hasResourcePartMap(new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig2"), true)); r.setPartUsage(EnumPartUsage.Implicit); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, true)); Assert.IsTrue(rl.hasResourcePartMap(attributeMap, false)); Assert.IsFalse(rl.hasResourcePartMap(new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig2"), false)); Assert.IsFalse(rl.hasResourcePartMap(new JDFAttributeMap(EnumPartIDKey.SignatureName, "sig2"), true)); }