made range of aqi fake data random and not linear.

This commit is contained in:
Faris Armoush
2025-05-26 16:56:25 +03:00
parent ec7b0aa078
commit cb4956f915

View File

@ -5,20 +5,22 @@ import 'package:syncrow_web/pages/analytics/services/range_of_aqi/range_of_aqi_s
class FakeRangeOfAqiService implements RangeOfAqiService { class FakeRangeOfAqiService implements RangeOfAqiService {
@override @override
Future<List<RangeOfAqi>> load(GetRangeOfAqiParam param) async { Future<List<RangeOfAqi>> load(GetRangeOfAqiParam param) async {
final random = DateTime.now().millisecondsSinceEpoch;
return List.generate(30, (index) { return List.generate(30, (index) {
final date = DateTime(2025, 5, 1).add(Duration(days: index)); final date = DateTime(2025, 5, 1).add(Duration(days: index));
final min = (index * 8).toDouble();
final avg = min + 40;
final max = avg + 40;
final cappedMin = min > 301 ? 301.0 : min; final min = ((random + index * 17) % 200).toDouble();
final cappedAvg = avg > 301 ? 301.0 : avg; final avgDelta = ((random + index * 23) % 50).toDouble() + 20;
final cappedMax = max > 301 ? 301.0 : max; final maxDelta = ((random + index * 31) % 50).toDouble() + 30;
final avg = (min + avgDelta).clamp(0.0, 301.0);
final max = (avg + maxDelta).clamp(0.0, 301.0);
return RangeOfAqi( return RangeOfAqi(
min: cappedMin, min: min,
avg: cappedAvg, avg: avg,
max: cappedMax, max: max,
date: date, date: date,
); );
}); });