Package statechum.model.testset.PTASequenceEngine

Examples of statechum.model.testset.PTASequenceEngine.SequenceSet


            return true;
          }     
        });
      }
    };
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    Map<String,String> actual = getDebugDataMap(en,seq.cross(TestFSMAlgo.buildList(new String[][] {
        new String[] {"a","a","b","c"}
       
    })).crossWithSet(Arrays.asList(new String[] {"b","a"})));
    vertifyPTA(en, 2, new String[][] {
        new String[] {"a","a","b","c","a"},
View Full Code Here


            return false;
          }     
        });
      }
    };
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    Map<String,String> actual = getDebugDataMap(en,seq.crossWithSet(Arrays.asList(new String[] {"b","a"}))
      .crossWithSet(Arrays.asList(new String[] {"b","a"})));
    vertifyPTA(en, 0, new String[][] {
    });
    Map<String,String> expected=TestFSMAlgo.buildStringMap(new Object[][] {
        new Object[]{new String[] {"a","a"}, PTASequenceEngine.DebugDataValues.booleanToString(true, false)},
View Full Code Here

            return !(elem == null);// return all paths which exist
          }     
        });
      }
    };
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    Map<String,String> actual = getDebugDataMap(en,seq.crossWithSet(Arrays.asList(new String[] {"b","a"}))
      .crossWithSet(Arrays.asList(new String[] {"b","a"})));
    vertifyPTA(en, 2, new String[][] {
        new String[] {"a","b"},
        new String[] {"a","a"}
    });
View Full Code Here

  }
 
  @Test
  public final void test_sequenceSet4_1() // a more complex composition
  {
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    Map<String,String> actual = getDebugDataMap(en,seq.cross(TestFSMAlgo.buildList(new String[][] {
        new String[] {"a","b","c"}
    })));
    vertifyPTA(en, 1, new String[][] {
        new String[] {"a","b","c"}
    });
View Full Code Here

  }

  @Test
  public final void test_sequenceSet4_2() // a more complex composition
  {
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    SequenceSet result = seq.cross(TestFSMAlgo.buildList(new String[][] {
        new String[] {"a","b","c"},
        new String[] {"a"},
        new String[] {"a","b","c","d"},
       
    }));
    Map<String,String> actual = getDebugDataMap(en,result);
    vertifyPTA(en, 1, new String[][] {
        new String[] {"a","b","c","d"}
    });
    Map<String,String> expected=TestFSMAlgo.buildStringMap(new Object[][] {
        new Object[]{new String[] {"a"}, PTASequenceEngine.DebugDataValues.booleanToString(false, true)},
        new Object[]{new String[] {"a","b","c"}, PTASequenceEngine.DebugDataValues.booleanToString(false, true)}
    });
    Assert.assertTrue("expected: "+expected+", actual: "+actual, expected.equals(actual));
    Assert.assertFalse(result.isEmpty());
  }
View Full Code Here

  }
 
  @Test
  public final void test_sequenceSet4_3() // a more complex composition
  {
    SequenceSet seq = en.new SequenceSet();seq.setIdentity();
    SequenceSet temp = seq.cross(TestFSMAlgo.buildList(new String[][] {
        new String[] {"a","b","c"}
    }));
    SequenceSet result = temp.cross(TestFSMAlgo.buildList(new String[][] {
        new String[] {"a","b","c"},
        new String[] {"c"}
    }));
    Map<String,String> actual = getDebugDataMap(en,result);
    vertifyPTA(en, 2, new String[][] {
        new String[] {"a","b","c","c"},
        new String[] {"a","b","c","a"}
    });
    Map<String,String> expected=TestFSMAlgo.buildStringMap(new Object[][] {
    });
    Assert.assertTrue("expected: "+expected+", actual: "+actual, expected.equals(actual));
    Assert.assertTrue(result.isEmpty());
  }
View Full Code Here

      public boolean isAccept(@SuppressWarnings("unused"Object elem)
      {
        return !rejectAllStates.booleanValue();
      }
    });
    SequenceSet initSeq = allSequences.new SequenceSet();initSeq.setIdentity();
    initSeq.cross(plusStrings);statesAccept.getAndSet(false);initSeq.cross(minusStrings);
   
    return allSequences;
  }
View Full Code Here

  }

  /** Checks if a PTA constructed is consistent with provided sequences. */
  private void checkPTAConsistency(PTASequenceEngine engine,Set<List<String>> sequences, boolean accept)
  {
    SequenceSet initSeq = engine.new SequenceSet();initSeq.setIdentity();
    // Now we check the consistency
    for(List<String> seq:sequences)
    {
      SequenceSet endOfSeq = initSeq.crossWithSequence(seq);
      Map<String,String> map = engine.getDebugDataMapDepth(endOfSeq);
      assert map.size() == 1: "expected size of 1, got "+map.size();
      String attrs = map.values().iterator().next();
      // For reject-sequences,
      // If the end of the sequence is not a leaf, it should be considered positive, hence throw.
View Full Code Here

            }
           
          });
        }
      };
      SequenceSet minusInit = sOrigMinus.new SequenceSet();minusInit.setIdentity();minusInit.cross(minusTrainingSet);
      int totalLenOrig = 0, origNumber=0;
      for(List<String> seq:minusTrainingSet)
      {
        assert seq.size() > 1;
        assert graph.getVertex(seq) == null;// the seq is negative indeed
        assert graph.getVertex(seq.subList(0, seq.size()-1)) != null;// the -1 prefix is positive
        assert sOrigMinus.containsSequence(seq);// make sure PTA construction did not fumble.
        assert graph.paths.tracePath(seq) == seq.size()-1;// and another check that a -1 prefix is ok
        totalLenOrig+=seq.size();origNumber++;
      }
      assert sOrigMinus.getData().size() == 0;// all negatives

      /* Builds the new set. */
      PTASequenceEngine sNewMinus = rpg.getAllSequences(percent/10-1);
      int totalLenNew = 0, newNumber = 0;
      for(List<String> seq:sNewMinus.getData(PTASequenceEngine.truePred))
      {
        assert seq.size() > 1;
        assert graph.getVertex(seq) == null;
        assert graph.getVertex(seq.subList(0, seq.size()-1)) != null;
        assert graph.paths.tracePath(seq) == seq.size()-1;
        totalLenNew+=seq.size();newNumber++;
      }
      // 22,23
      String comparison = "Orig ave len: "+FS+((double)totalLenOrig)/origNumber+FS+
      // 24,25
          " new ave len: "+FS+((double)totalLenNew)/newNumber+FS+
      // 26,27
          " fudge status: "+FS+rpg.getFudgeDetails();
     
      //int numberOfMinusSequences = minusTrainingSet.size();
      assert sNewMinus.getData().size() == 0;// all negatives
     
      if (useOrig)
        sMinus = sOrigMinus;
      else
        sMinus = sNewMinus;
     
     
      RPNIBlueFringeLearner l = null;
     
      if (useAmber)
      {
        l = new RPNIBlueAmberFringeLearner(null,config)
        {
          @Override
          protected Pair<Integer,String> checkWithEndUser(
              @SuppressWarnings("unused"LearnerGraph model,
              List<String> question,
              @SuppressWarnings("unused") final Object [] moreOptions)
          {
            questionNumber.addAndGet(1);
            return new Pair<Integer,String>(graph.paths.tracePath(question),null);
          }
        };
      }
      else
      {
        l = new RPNIBlueFringeLearnerTestComponentOpt(null,config)
        {
          @Override
          protected Pair<Integer,String> checkWithEndUser(
              @SuppressWarnings("unused"LearnerGraph model,
              List<String> question,
              @SuppressWarnings("unused") final Object [] moreOptions)
          {
            questionNumber.addAndGet(1);
            return new Pair<Integer,String>(graph.paths.tracePath(question),null);
          }
        };
      }
      learned = learn(l,sMinus);
      //learned = new LearnerGraph(config);
     
      PTASequenceEngine testSetEngine = new PTA_FSMStructure(graph);
      SequenceSet ptaTestSet = testSetEngine.new SequenceSet();ptaTestSet.setIdentity();
      ptaTestSet.cross(graph.wmethod.getFullTestSet(1));

      PTA_computePrecisionRecall precRec = new PTA_computePrecisionRecall(learned);
     
      PosNegPrecisionRecall ptaPR = precRec.crossWith(sMinus);
      PosNegPrecisionRecall prNeg = precRec.crossWith(testSetEngine);
View Full Code Here

    l.setQuestionCounter(0);
    LearnerGraph learned = new LearnerGraph(learningOutcome,config);
    PTA_computePrecisionRecall precRec = new PTA_computePrecisionRecall(learned);
    PTASequenceEngine engine = new PTA_FSMStructure(graph);
    precRec.crossWith(sMinus);
    SequenceSet ptaTestSet = engine.new SequenceSet();ptaTestSet.setIdentity();
    ptaTestSet = ptaTestSet.cross(graph.wmethod.getFullTestSet(1));
    PosNegPrecisionRecall prNeg = precRec.crossWith(engine);
    System.out.println("pre: "+prNeg.getPrecision()+" rec: "+prNeg.getRecall());
    /*
    LearnerGraph.testMode=true;
    StatePair p = new StatePair(graph.findVertex("P1062"),graph.findVertex("P1153"));
View Full Code Here

TOP

Related Classes of statechum.model.testset.PTASequenceEngine.SequenceSet

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.