import 'dart:io';

class PerformanceTester {
  /// ✅ فحص سرعة الكتابة إلى التخزين (Storage Write Speed) بوحدة MB/s
  static Future<double> testStorageWriteSpeed() async {
    try {
      final tempDir = Directory.systemTemp;
      final testFile = File('${tempDir.path}/speed_test.txt');
      final data = List<int>.filled(1024 * 1024 * 5, 0); // 5MB

      final stopwatch = Stopwatch()..start();
      await testFile.writeAsBytes(data, flush: true);
      stopwatch.stop();

      await testFile.delete();

      double seconds = stopwatch.elapsedMilliseconds / 1000;
      if (seconds == 0) seconds = 0.001;

      final speed = 5 / seconds;
      return double.parse(speed.toStringAsFixed(2));
    } catch (e) {
      print("❌ Storage write error: $e");
      return 0.0;
    }
  }

  /// ✅ فحص سرعة المعالج (CPU Compute Speed) بوحدة الثواني
  static Future<double> testCPUSpeed() async {
    try {
      final stopwatch = Stopwatch()..start();
      double x = 0;
      for (int i = 0; i < 100000000; i++) {
        x += i * 0.000001;
      }
      stopwatch.stop();
      return stopwatch.elapsedMilliseconds / 1000.0;
    } catch (e) {
      print("❌ CPU compute error: $e");
      return 999.0;
    }
  }
}
