process-data-standard-format with pipes
EDA logic
This commit is contained in:
138
Adaptation/_Tests/Static/hgcv.js
Normal file
138
Adaptation/_Tests/Static/hgcv.js
Normal file
@ -0,0 +1,138 @@
|
||||
"use strict";
|
||||
|
||||
function getCollectionParseFloat(collection) {
|
||||
let result = [];
|
||||
let value;
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
value = parseFloat(collection[i]);
|
||||
result.push(value);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getSum(collection) {
|
||||
let result = 0;
|
||||
if (!collection || collection.length === 0) {
|
||||
result = 0;
|
||||
}
|
||||
else {
|
||||
for (let i = 0; i < collection.length; i++) {
|
||||
result += collection[i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getAverage(collection) {
|
||||
let result = null;
|
||||
if (collection == null || collection.length === 0)
|
||||
result = 0;
|
||||
else {
|
||||
let sum = getSum(collection);
|
||||
result = sum / collection.length;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getVariance(collection) {
|
||||
let result = null;
|
||||
if (collection == null || collection.length === 0)
|
||||
result = null;
|
||||
else {
|
||||
let variance = 0;
|
||||
let t = collection[0];
|
||||
for (let i = 1; i < collection.length; i++) {
|
||||
t += collection[i];
|
||||
const diff = ((i + 1) * collection[i]) - t;
|
||||
variance += diff * diff / ((i + 1.0) * i);
|
||||
}
|
||||
result = variance / (collection.length - 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints) {
|
||||
let result;
|
||||
const nine4mmEdgeSum = getSum(edge4mmRhoPoints);
|
||||
const nine10mmEdgeSum = getSum(edge10mmRhoPoints);
|
||||
result = (nine4mmEdgeSum - nine10mmEdgeSum) / nine10mmEdgeSum * 100;
|
||||
return result;
|
||||
}
|
||||
|
||||
function getMax(collection) {
|
||||
let result = collection[0];
|
||||
for (let i = 1; i < collection.length; i++) {
|
||||
if (collection[i] > result) {
|
||||
result = collection[i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getMin(collection) {
|
||||
let result = collection[0];
|
||||
for (let i = 1; i < collection.length; i++) {
|
||||
if (collection[i] < result) {
|
||||
result = collection[i];
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function getNineResRangePercent(criticalRhoPoints) {
|
||||
let result;
|
||||
const nineCriticalPointsAverage = getAverage(criticalRhoPoints);
|
||||
// result = (Math.max(...criticalRhoPoints) - Math.min(...criticalRhoPoints)) / nineCriticalPointsAverage * 100;
|
||||
// let max = criticalRhoPoints.reduce((a, b) => Math.max(a, b));
|
||||
// let min = criticalRhoPoints.reduce((a, b) => Math.min(a, b));
|
||||
// result = (max - min) / nineCriticalPointsAverage * 100;
|
||||
// let max = criticalRhoPoints.sort((a, b) => b - a);
|
||||
// let min = criticalRhoPoints.sort((a, b) => a - b);
|
||||
// result = (max[0] - min[0]) / nineCriticalPointsAverage * 100;
|
||||
let max = getMax(criticalRhoPoints);
|
||||
let min = getMin(criticalRhoPoints);
|
||||
result = (max - min) / nineCriticalPointsAverage * 100;
|
||||
return result;
|
||||
}
|
||||
|
||||
function getValue(edge10mmRhoPoints, index) {
|
||||
let result = null;
|
||||
if (index === 8) {
|
||||
if (edge10mmRhoPoints != undefined && edge10mmRhoPoints.length > 1) {
|
||||
let collection = edge10mmRhoPoints[0] === '|' ? edge10mmRhoPoints.substring(1).split('|') : edge10mmRhoPoints.split('|');
|
||||
let collectionParseFloat = getCollectionParseFloat(collection);
|
||||
result = Math.round(getAverage(collectionParseFloat) * 10000000) / 10000000;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
// 1 2 3 4 5 6 7 8 9
|
||||
const allRhoAvg = getCollectionParseFloat('|2.648|3.076|2.877|2.747|2.821|2.765|2.669|2.814|2.876'.substring(1).split('|'));
|
||||
const edge4mmRhoPoints = getCollectionParseFloat('|2.877|2.747|2.669|2.814'.substring(1).split('|'));
|
||||
const edge10mmRhoPoints = getCollectionParseFloat('|3.076|2.821|2.765|2.876'.substring(1).split('|'));
|
||||
const criticalRhoPoints = getCollectionParseFloat('|2.648|3.076|2.821|2.765|2.876'.substring(1).split('|'));
|
||||
|
||||
// 0 1 2 3 4 5 6 7 8
|
||||
// 1 2 3 4 5 6 7 8 9
|
||||
const allPhase = getCollectionParseFloat('|88.874|88.999|89.085|89.029|89.018|89.007|89.049|89.024|89.007'.substring(1).split('|'));
|
||||
const criticalPhasePoints = getCollectionParseFloat('|88.874|88.999|89.018|89.007|89.007'.substring(1).split('|'));
|
||||
|
||||
const nineMean = getAverage(allRhoAvg);
|
||||
const nine4mmEdgeMean = getAverage(edge4mmRhoPoints);
|
||||
const nine10mmEdgeMean = getAverage(edge10mmRhoPoints);
|
||||
const nineCriticalPointsAverage = getAverage(criticalRhoPoints);
|
||||
const nineResRangePercent = getNineResRangePercent(criticalRhoPoints);
|
||||
const nineCriticalPointsStdDev = Math.sqrt(getVariance(criticalRhoPoints));
|
||||
const nineCriticalPointsPhaseAngleAverage = getAverage(criticalPhasePoints);
|
||||
const nineEdgeMeanDelta = getNineEdgeMeanDelta(edge4mmRhoPoints, edge10mmRhoPoints);
|
||||
console.log(nineCriticalPointsStdDev);
|
||||
|
||||
// Sequence to date string
|
||||
// getValue(self, getContextData('1', 'cds.SEQUENCE', ''));
|
||||
|
||||
const index = 8;
|
||||
const gv_edge10mmRhoPoints = '|3.076|2.821|2.765|2.876';
|
||||
const value = roundNumber(getValue(gv_edge10mmRhoPoints, index), 7);
|
||||
console.log("value: " + value);
|
Reference in New Issue
Block a user