getValueName method
Returns the name of a value in this node with name
or signal
.
Implementation
String? getValueName({String? name, BayesValueSignal? signal}) {
var nameOrig = name;
if (name != null) {
name = BayesValue.resolveName(name, networkCache: network);
if (_domain.containsKey(name)) {
return name;
}
}
if (signal != null && signal != BayesValueSignal.unknown) {
var values = _domain.values.where((e) => e.signal == signal).toList();
if (values.isNotEmpty) {
return values.first.name;
}
}
if (signal == null && nameOrig != null) {
if (nameOrig.contains('+')) {
signal = BayesValueSignal.positive;
} else if (nameOrig.contains('-')) {
signal = BayesValueSignal.negative;
} else if (nameOrig.contains('?')) {
signal = BayesValueSignal.unknown;
}
}
if (_domain.length == 2) {
var valuesNames = _domain.keys.toList();
valuesNames.sort();
if (valuesNames.equals(['F', 'T'])) {
return signal == BayesValueSignal.negative ? 'F' : 'T';
} else if (valuesNames.equals(['0', '1'])) {
return signal == BayesValueSignal.negative ? '0' : '1';
} else if (valuesNames.equals(['N', 'P'])) {
return signal == BayesValueSignal.negative ? 'N' : 'P';
} else if (valuesNames.equals(['N', 'Y'])) {
return signal == BayesValueSignal.negative ? 'N' : 'Y';
} else if (valuesNames.equals(['N', 'S'])) {
return signal == BayesValueSignal.negative ? 'N' : 'S';
} else if (valuesNames.equals(['NO', 'YES'])) {
return signal == BayesValueSignal.negative ? 'NO' : 'YES';
} else if (valuesNames.equals(['FALSE', 'TRUE'])) {
return signal == BayesValueSignal.negative ? 'FALSE' : 'TRUE';
} else if (valuesNames.equals(['NEGATIVE', 'POSITIVE'])) {
return signal == BayesValueSignal.negative ? 'NEGATIVE' : 'POSITIVE';
}
}
return null;
}