示例#1
0
        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));
        }
示例#2
0
        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");
        }
示例#3
0
文件: WebTest.cs 项目: cip4/JDFLibNet
        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);
        }
示例#4
0
        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());
        }
示例#5
0
        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);
        }
示例#6
0
        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);
        }
示例#7
0
        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));
        }