MCPcopy Create free account
hub / github.com/chrxh/alien / convert

Method convert

source/EngineInterface/StatisticsConverterService.cpp:80–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78}
79
80DataPointCollection StatisticsConverterService::convert(
81 TimelineStatistics const& data,
82 uint64_t timestep,
83 double time,
84 std::optional<TimelineStatistics> const& lastData,
85 std::optional<uint64_t> lastTimestep)
86{
87 DataPointCollection result;
88 result.time = time;
89
90 auto now = std::chrono::system_clock::now();
91 auto unixEpoch = std::chrono::time_point<std::chrono::system_clock>();
92 result.systemClock = toDouble(std::chrono::duration_cast<std::chrono::seconds>(now - unixEpoch).count());
93
94 result.numCells = getDataPointBySummation(data.timestep.numCells);
95 result.numSelfReplicators = getDataPointBySummation(data.timestep.numSelfReplicators);
96 result.numColonies = getDataPointBySummation(data.timestep.numColonies);
97 result.numViruses = getDataPointBySummation(data.timestep.numViruses);
98 result.numFreeCells = getDataPointBySummation(data.timestep.numFreeCells);
99 result.numParticles = getDataPointBySummation(data.timestep.numParticles);
100 result.averageGenomeCells = getDataPointByAveraging(data.timestep.numGenomeCells, data.timestep.numSelfReplicators);
101 result.averageGenomeComplexity = getDataPointByAveraging(data.timestep.genomeComplexity, data.timestep.numSelfReplicators);
102 result.varianceGenomeComplexity = getDataPointBySummation(data.timestep.genomeComplexityVariance);
103 result.maxGenomeComplexityOfColonies = getDataPointByMaximation(data.timestep.maxGenomeComplexityOfColonies);
104 result.totalEnergy = getDataPointBySummation(data.timestep.totalEnergy);
105
106 auto deltaTimesteps = lastTimestep ? toDouble(timestep) - toDouble(*lastTimestep) : 1.0;
107 if (deltaTimesteps < NEAR_ZERO) {
108 deltaTimesteps = 1.0;
109 }
110
111 auto lastDataValue = lastData.value_or(data);
112 ColorVector<int> numNonFreeCells;
113 for (int i = 0; i < MAX_COLORS; ++i) {
114 numNonFreeCells[i] = data.timestep.numCells[i] - data.timestep.numFreeCells[i];
115 }
116 result.numCreatedCells =
117 getDataPointForProcessProperty(data.accumulated.numCreatedCells, lastDataValue.accumulated.numCreatedCells, numNonFreeCells, deltaTimesteps);
118 result.numAttacks =
119 getDataPointForProcessProperty(data.accumulated.numAttacks, lastDataValue.accumulated.numAttacks, numNonFreeCells, deltaTimesteps);
120 result.numMuscleActivities = getDataPointForProcessProperty(
121 data.accumulated.numMuscleActivities, lastDataValue.accumulated.numMuscleActivities, numNonFreeCells, deltaTimesteps);
122 result.numDefenderActivities = getDataPointForProcessProperty(
123 data.accumulated.numDefenderActivities, lastDataValue.accumulated.numDefenderActivities, numNonFreeCells, deltaTimesteps);
124 result.numTransmitterActivities = getDataPointForProcessProperty(
125 data.accumulated.numTransmitterActivities, lastDataValue.accumulated.numTransmitterActivities, numNonFreeCells, deltaTimesteps);
126 result.numInjectionActivities = getDataPointForProcessProperty(
127 data.accumulated.numInjectionActivities, lastDataValue.accumulated.numInjectionActivities, numNonFreeCells, deltaTimesteps);
128 result.numCompletedInjections = getDataPointForProcessProperty(
129 data.accumulated.numCompletedInjections, lastDataValue.accumulated.numCompletedInjections, numNonFreeCells, deltaTimesteps);
130 result.numNervePulses =
131 getDataPointForProcessProperty(data.accumulated.numNervePulses, lastDataValue.accumulated.numNervePulses, numNonFreeCells, deltaTimesteps);
132 result.numNeuronActivities = getDataPointForProcessProperty(
133 data.accumulated.numNeuronActivities, lastDataValue.accumulated.numNeuronActivities, numNonFreeCells, deltaTimesteps);
134 result.numSensorActivities = getDataPointForProcessProperty(
135 data.accumulated.numSensorActivities, lastDataValue.accumulated.numSensorActivities, numNonFreeCells, deltaTimesteps);
136 result.numSensorMatches = getDataPointForProcessProperty(
137 data.accumulated.numSensorMatches, lastDataValue.accumulated.numSensorMatches, numNonFreeCells, deltaTimesteps);

Callers

nothing calls this directly

Calls 5

toDoubleFunction · 0.85
getDataPointBySummationFunction · 0.85
getDataPointByAveragingFunction · 0.85
getDataPointByMaximationFunction · 0.85

Tested by

no test coverage detected