![JAR search and dependency download from the Maven repository](/logo.png)
com.github.dakusui.jcunit8.factorspace.fsm.FsmTupleAccessor Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jcunit Show documentation
Show all versions of jcunit Show documentation
Automated combinatorial testing framework on top of JUnit
The newest version!
package com.github.dakusui.jcunit8.factorspace.fsm;
import com.github.dakusui.jcunit.core.tuples.Tuple;
import com.github.dakusui.jcunit.fsm.*;
import com.github.dakusui.jcunit8.core.StreamableCartesianator;
import java.util.AbstractList;
import java.util.Collections;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import static java.lang.String.format;
import static java.util.stream.Collectors.toList;
class FsmTupleAccessor {
final FiniteStateMachine model;
final String name;
final int scenarioLength;
FsmTupleAccessor(String name, FiniteStateMachine model, int scenarioLength) {
this.model = model;
this.name = name;
this.scenarioLength = scenarioLength;
}
String composeStateFactorName(String name, int i) {
return format("%s:STATE:%d", name, i);
}
String composeActionFactorName(String name, int i) {
return format("%s:ACTION:%d", name, i);
}
String composeActionParamFactorName(String name, int i, int j) {
return format("%s:ACTION_PARAM:%d-%d", name, i, j);
}
@SuppressWarnings("unchecked")
State getStateFromTuple(Tuple tuple, int i) {
return (State) tuple.get(composeStateFactorName(name, i));
}
@SuppressWarnings("unchecked")
Action getActionFromTuple(Tuple tuple, int i) {
return (Action) tuple.get(composeActionFactorName(name, i));
}
Args getActionArgsFromTuple(Tuple tuple, int i) {
return new Args(
IntStream.range(0, getActionFromTuple(tuple, i).numParameterFactors())
.mapToObj(j -> getActionArgFromTuple(tuple, i, j))
.toArray()
);
}
Object getActionArgFromTuple(Tuple tuple, int i, int j) {
return tuple.get(composeActionParamFactorName(name, i, j));
}
@SuppressWarnings("unchecked")
Stream> allPossibleEdges(Predicate> from, Predicate> action, Predicate> to) {
return new StreamableCartesianator
© 2015 - 2025 Weber Informatics LLC | Privacy Policy