@Test public void testSimpleWithFieldNamesMap() { MiningSegmentTransfer mst = new MiningSegmentTransfer(simpleResult,"SEGMENT_2"); mst.addResultToRequestMapping("var1", "someVarA"); doBaselineAssertions(simpleResult,mst); assertEquals(1,mst.getResultFieldNameToRequestFieldName().size()); }
@Override public String toString() { StringBuilder bldr = new StringBuilder("MiningSegmentTransfer ["); bldr.append("correlationId=").append(correlationId).append(", "); bldr.append("segmentationId=").append(segmentationId).append(", "); bldr.append("fromSegmentId=").append(fromSegmentId).append(", "); bldr.append("toSegmentId=").append(toSegmentId).append(", "); bldr.append("resultFieldNameToRequestFieldName=").append(requestFromResultMap).append(", "); bldr.append("inboundResult=").append(inboundResult).append(", "); bldr.append("outboundRequest=").append(getOutboundRequest()); bldr.append("]"); return bldr.toString(); }
public PMMLRequestData getOutboundRequest() { if (outboundRequest == null) { outboundRequest = new PMMLRequestData(this.correlationId); outboundRequest.setSource("MiningSegmentTransfer:"+this.fromSegmentId+"-"+this.toSegmentId); for (String requestField: requestFromResultMap.keySet()) { String resultFieldName = requestFromResultMap.get(requestField); Object resultFieldValue = getValueFromResult(resultFieldName); if (resultFieldValue != null) { outboundRequest.addRequestParam(requestField, resultFieldValue); } } } return outboundRequest; }
@Test public void testComplexResult() { MiningSegmentTransfer mst = new MiningSegmentTransfer(complexResult,"SEGMENT_2"); mst.addResultToRequestMapping("firstObject", "object1"); mst.addResultToRequestMapping("myComplex.varA", "stringFromMyComplex"); mst.addResultToRequestMapping("myComplex.varB", "intValue"); doBaselineAssertions(complexResult,mst); assertEquals(3,mst.getResultFieldNameToRequestFieldName().size()); PMMLRequestData rqst = mst.getOutboundRequest(); assertNotNull(rqst); assertEquals(complexResult.getCorrelationId(),rqst.getCorrelationId()); Map<String,ParameterInfo> params = rqst.getMappedRequestParams(); assertEquals(complexResult.getResultValue("firstObject", null), params.get("object1").getValue()); assertEquals(complexResult.getResultValue("myComplex", "varA"), params.get("stringFromMyComplex").getValue()); assertEquals(complexResult.getResultValue("myComplex", "varB"), params.get("intValue").getValue()); System.out.println(rqst); System.out.println(complexResult); } }
private void doBaselineAssertions(PMML4Result reference, MiningSegmentTransfer mst) { assertNotNull(mst); assertEquals(reference.getCorrelationId(),mst.getCorrelationId()); assertEquals(reference.getSegmentationId(),mst.getSegmentationId()); assertEquals(reference.getSegmentId(),mst.getFromSegmentId()); assertEquals("SEGMENT_2",mst.getToSegmentId()); assertNotNull(mst.getResultFieldNameToRequestFieldName()); }
public MiningSegmentTransfer getSegmentTransfer( MiningSegment targetSegment, String targetFieldName) { MiningSegmentTransfer xfer = null; int lastIndex = targetSegment.getSegmentIndex() - 1; if (lastIndex < 0) { throw new IndexOutOfBoundsException("Cannot have an undefined mining field in the first segment"); } for (int idx = lastIndex; idx >= 0; idx--) { MiningSegment seg = miningSegments.get(idx); if (seg != null && seg.getInternalModel() != null) { List<PMMLOutputField> outputs = seg.getInternalModel().getOutputFields(); if (outputs != null) { for (PMMLOutputField field: outputs) { if (field.getName().equals(targetFieldName)) { xfer = new MiningSegmentTransfer(this.segmentationId, seg.getSegmentId(), targetSegment.getSegmentId()); xfer.addResultToRequestMapping(targetFieldName, targetFieldName); return xfer; } } } } } return xfer; }
@Test public void testSimpleResult() { MiningSegmentTransfer mst = new MiningSegmentTransfer(simpleResult,"SEGMENT_2"); doBaselineAssertions(simpleResult,mst); }