@Override
 public MutatedInstanceMetaData<MultiMaskEfsmSkeleton, MultiMaskEfsmMutation> apply(
     MultiMaskEfsmSkeleton individual) {
   List<Step> transitions = getTransitions(individual);
   if (transitions.isEmpty()) {
     return new MutatedInstanceMetaData<MultiMaskEfsmSkeleton, MultiMaskEfsmMutation>(
         new MultiMaskEfsmSkeleton(individual), new MutationCollection<MultiMaskEfsmMutation>());
   }
   MyMap num = new MyMap();
   for (Step s : transitions) {
     num.put(s, 1);
   }
   for (VarsActionsScenario s : individual.getCounterExamples()) {
     getTrace(individual, s, num);
   }
   double sum = 0;
   for (Step s : transitions) {
     sum += num.get(s);
   }
   int i = 0;
   double cur = num.get(transitions.get(0)) / sum;
   ThreadLocalRandom random = ThreadLocalRandom.current();
   while (random.nextDouble() > cur) {
     i++;
     cur += num.get(transitions.get(i)) / sum;
   }
   Step s = transitions.get(i);
   MultiMaskEfsmSkeleton ind = new MultiMaskEfsmSkeleton(individual);
   int x = random.nextInt(MultiMaskEfsmSkeleton.STATE_COUNT);
   ind.getState(s.state).getTransitionGroup(s.event, s.group).setNewState(s.index, x);
   return new MutatedInstanceMetaData<MultiMaskEfsmSkeleton, MultiMaskEfsmMutation>(
       ind,
       new MutationCollection<MultiMaskEfsmMutation>(
           new DestinationStateMutation(s.state, s.event, s.group, s.index, x)));
 }
Beispiel #2
0
  public static void main(String[] args) {
    MyMap<Integer, String> myMap = new MyMap<Integer, String>();
    myMap.put(1, "Eugene");
    myMap.put(56, "Oleg"); // ключики - любые
    System.out.println(myMap);
    myMap.put(
        1,
        "Oleg_new_value"); // должен перезатереть старое значение - Eugene, смотрите ключик 1 -> 8
                           // строчка
    myMap.put(5, "Pasha");
    System.out.println(myMap);
    myMap.putForcibly(6, "TEST nextEntry", 5);
    myMap.putForcibly(7, "TEST nextEntry 2!!!", 5);
    System.out.println(myMap);
    //        myMap.putForcibly(7, "different hash", 4);
    //        myMap.createNewMyEntry("TEST nextEntry", 5, );

    //        myMap.deleteMapObject(5);   // first version
    //        myMap.deleteMapObjectWithoutIteratorOld(7);   // second version
    //        System.out.println(myMap);

    //        myMap.deleteMapObjectWithoutIterator(1);

    myMap.remove(5);

    Iterator iterator = myMap.iterator();
    while (iterator.hasNext()) {
      System.out.println("iterator.next() -->  " + iterator.next());
    }
  }
 public void testExplicitIgnoralWithMap() throws Exception {
   // test simulating need to filter out metadata like class name
   MyMap value = new MyMap();
   value.put("a", "b");
   value.put("@class", MyMap.class.getName());
   Map<String, Object> result = writeAndMap(MAPPER, value);
   assertEquals(1, result.size());
   // verify that specified field is ignored
   assertFalse(result.containsKey("@class"));
   // and that others are not
   assertEquals(value.get("a"), result.get("a"));
 }
 @Override
 public V get(Object key) {
   if (key == null) return null;
   myHardKeyInstance.set((K) key);
   V result = myMap.get(myHardKeyInstance);
   myHardKeyInstance.clear();
   return result;
 }
 @Override
 public boolean containsKey(Object key) {
   if (key == null) return false;
   // optimization:
   myHardKeyInstance.set((K) key);
   boolean result = myMap.containsKey(myHardKeyInstance);
   myHardKeyInstance.clear();
   return result;
 }
  @Override
  public V remove(@NotNull Object key) {
    processQueue();

    // optimization:
    myHardKeyInstance.set((K) key);
    V result = myMap.remove(myHardKeyInstance);
    myHardKeyInstance.clear();
    return result;
  }
 // returns true if some refs were tossed
 boolean processQueue() {
   boolean processed = false;
   try {
     processingQueue = true;
     Key<K> wk;
     while ((wk = (Key<K>) myReferenceQueue.poll()) != null) {
       removeKey(wk);
       processed = true;
     }
   } finally {
     processingQueue = false;
   }
   myMap.compactIfNecessary();
   return processed;
 }
 private void getTrace(MultiMaskEfsmSkeleton individual, VarsActionsScenario scenario, MyMap num) {
   int state = individual.getInitialState();
   for (int i = 0; i < scenario.size(); i++) {
     ScenarioElement element = scenario.get(i);
     int eid = MultiMaskEfsmSkeleton.INPUT_EVENTS.get(element.getInputEvent());
     String variableValues = element.getVariableValues();
     int res = state, group = -1, index = 0;
     for (int j = 0; j < individual.getState(state).getTransitionGroupCount(eid); j++) {
       TransitionGroup g = individual.getState(state).getTransitionGroup(eid, j);
       if (g == null) {
         continue;
       }
       if (!g.hasTransitions()) {
         continue;
       }
       List<Integer> meaningfulPredicateIds = g.getMeaningfulPredicateIds();
       StringBuilder meaningfulPredicateValues = new StringBuilder();
       for (Integer k : meaningfulPredicateIds) {
         meaningfulPredicateValues.append(variableValues.charAt(k));
       }
       int transitionIndex = Integer.parseInt(meaningfulPredicateValues.toString(), 2);
       int newState = g.getNewState(transitionIndex);
       if (newState == -1) {
         continue;
       }
       g.setTransitionUsed(transitionIndex);
       res = newState;
       group = j;
       index = transitionIndex;
       break;
     }
     if (group != -1) {
       Step s = new Step(state, eid, group, index);
       num.add(s, lambda);
       state = res;
     }
   }
 }
 @TestOnly
 int underlyingMapSize() {
   return myMap.size();
 }
 @Override
 public void clear() {
   processQueue();
   myMap.clear();
 }
 V putKey(@NotNull Key<K> weakKey, V value) {
   return myMap.put(weakKey, value);
 }
 V removeKey(@NotNull Key<K> key) {
   return myMap.remove(key);
 }
Beispiel #13
0
 public static void main(String[] args) {
   MyMap map = new MyMap();
   map.put("assss", 1);
   System.out.println(map.get("assss"));
 }