added NaN value when is not number in rolling
This commit is contained in:
parent
be12e5b985
commit
6cf314eaa0
@ -86,7 +86,7 @@ public class TsRollingArgumentEntry implements ArgumentEntry {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean updateEntry(ArgumentEntry entry) throws CalculatedFieldStateException {
|
||||
public boolean updateEntry(ArgumentEntry entry) {
|
||||
if (entry instanceof TsRollingArgumentEntry tsRollingEntry) {
|
||||
updateTsRollingEntry(tsRollingEntry);
|
||||
} else if (entry instanceof SingleValueArgumentEntry singleValueEntry) {
|
||||
@ -118,8 +118,8 @@ public class TsRollingArgumentEntry implements ArgumentEntry {
|
||||
}
|
||||
cleanupExpiredRecords();
|
||||
} catch (Exception e) {
|
||||
log.warn("Time series rolling arguments supports only numeric values.");
|
||||
// throw new IllegalArgumentException("Time series rolling arguments supports only numeric values.");
|
||||
tsRecords.put(ts, Double.NaN);
|
||||
log.warn("Invalid value '{}' for time series rolling arguments. Only numeric values are supported.", value.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -63,6 +63,9 @@ public class TbelCfTsRollingArg implements TbelCfArg, Iterable<TbelCfTsDoubleVal
|
||||
double max = Double.MIN_VALUE;
|
||||
for (TbelCfTsDoubleVal value : values) {
|
||||
double val = value.getValue();
|
||||
if (Double.isNaN(val)) {
|
||||
return val;
|
||||
}
|
||||
if (max < val) {
|
||||
max = val;
|
||||
}
|
||||
|
||||
@ -78,13 +78,14 @@ public class CalculatedFieldServiceTest extends AbstractServiceTest {
|
||||
assertThat(savedCalculatedField.getType()).isEqualTo(calculatedField.getType());
|
||||
assertThat(savedCalculatedField.getName()).isEqualTo(calculatedField.getName());
|
||||
assertThat(savedCalculatedField.getConfiguration()).isEqualTo(calculatedField.getConfiguration());
|
||||
assertThat(savedCalculatedField.getVersion()).isEqualTo(calculatedField.getVersion());
|
||||
assertThat(savedCalculatedField.getVersion()).isEqualTo(1L);
|
||||
|
||||
savedCalculatedField.setName("Test CF");
|
||||
|
||||
CalculatedField updatedCalculatedField = calculatedFieldService.save(savedCalculatedField);
|
||||
|
||||
assertThat(updatedCalculatedField).isEqualTo(savedCalculatedField);
|
||||
assertThat(updatedCalculatedField.getName()).isEqualTo(savedCalculatedField.getName());
|
||||
assertThat(updatedCalculatedField.getVersion()).isEqualTo(savedCalculatedField.getVersion() + 1);
|
||||
|
||||
calculatedFieldService.deleteCalculatedField(tenantId, savedCalculatedField.getId());
|
||||
}
|
||||
@ -147,7 +148,6 @@ public class CalculatedFieldServiceTest extends AbstractServiceTest {
|
||||
calculatedField.setName("Test Calculated Field");
|
||||
calculatedField.setConfigurationVersion(1);
|
||||
calculatedField.setConfiguration(getCalculatedFieldConfig(referencedEntityId));
|
||||
calculatedField.setVersion(1L);
|
||||
return calculatedField;
|
||||
}
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@ import org.thingsboard.server.common.data.id.CalculatedFieldId;
|
||||
import org.thingsboard.server.common.data.id.TenantId;
|
||||
import org.thingsboard.server.dao.cf.CalculatedFieldDao;
|
||||
import org.thingsboard.server.dao.exception.DataValidationException;
|
||||
import org.thingsboard.server.dao.usagerecord.ApiLimitService;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@ -39,6 +40,8 @@ public class CalculatedFieldDataValidatorTest {
|
||||
|
||||
@MockBean
|
||||
private CalculatedFieldDao calculatedFieldDao;
|
||||
@MockBean
|
||||
private ApiLimitService apiLimitService;
|
||||
@SpyBean
|
||||
private CalculatedFieldDataValidator validator;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user