- Add VariableSpec class with magnitude field validation - Add Formula class supporting multiple input/output variables - Support d4rt_code as string or object with code field - Add comprehensive tests for parsing and serialization - Fix broken test import in pruebas_d4rt_test.dart Follows README.md format requirements exactly
154 lines
4.4 KiB
Dart
154 lines
4.4 KiB
Dart
// import 'dart:io' as io;
|
|
//
|
|
// import 'package:analyzer/dart/analysis/results.dart';
|
|
// import 'package:analyzer/file_system/overlay_file_system.dart';
|
|
// import 'package:analyzer/file_system/physical_file_system.dart';
|
|
// import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
|
|
// import 'package:analyzer/src/dart/analysis/byte_store.dart';
|
|
// import 'package:analyzer/src/dart/analysis/performance_logger.dart';
|
|
// import 'package:linter/src/rules.dart';
|
|
//
|
|
// void main() async {
|
|
// var resourceProvider = OverlayResourceProvider(
|
|
// PhysicalResourceProvider.INSTANCE,
|
|
// );
|
|
//
|
|
// registerLintRules();
|
|
//
|
|
// var byteStore = NullByteStore();
|
|
//
|
|
// var libPath = '/home/test/lib';
|
|
//
|
|
// const fileCount = 10;
|
|
// // const methodCount = 10;
|
|
// // const funRadius = 2;
|
|
//
|
|
// var unrelatedPath = '$libPath/unrelated.dart';
|
|
// resourceProvider.setOverlay(unrelatedPath, content: '', modificationStamp: 0);
|
|
//
|
|
// {
|
|
// var buffer = StringBuffer();
|
|
// for (var i = 0; i < fileCount; i++) {
|
|
// buffer.writeln("export 'file_$i.dart';");
|
|
// }
|
|
//
|
|
// resourceProvider.setOverlay(
|
|
// '$libPath/files.dart',
|
|
// content: buffer.toString(),
|
|
// modificationStamp: 0,
|
|
// );
|
|
// }
|
|
//
|
|
// for (var fileIndex = 0; fileIndex < fileCount; fileIndex++) {
|
|
// var filePath = '$libPath/file_$fileIndex.dart';
|
|
//
|
|
// var buffer = StringBuffer();
|
|
// buffer.write('''
|
|
// import 'files.dart';
|
|
// class C$fileIndex {
|
|
// void foo1() {}
|
|
// void foo2() {}
|
|
// void foo3() {}
|
|
// ''');
|
|
// // for (var fieldIndex = 0; fieldIndex < methodCount; fieldIndex++) {
|
|
// // buffer.write('''
|
|
// // void foo_$fieldIndex() {}
|
|
// // ''');
|
|
// // }
|
|
// buffer.write(r'''
|
|
// }
|
|
// ''');
|
|
//
|
|
// if (fileIndex > 0) {
|
|
// buffer.write('''
|
|
// void f_$fileIndex(C${fileIndex - 1} c) {
|
|
// c.foo1();
|
|
// }
|
|
// ''');
|
|
// }
|
|
//
|
|
// // var funIndex = 0;
|
|
// // for (var otherIndex = fileIndex - funRadius;
|
|
// // otherIndex <= fileIndex + funRadius;
|
|
// // otherIndex++) {
|
|
// // var otherIndex2 = (fileCount + otherIndex) % fileCount;
|
|
// // buffer.writeln('''
|
|
// // void f_${fileIndex}_${funIndex++}(C$otherIndex2 _) {}
|
|
// // ''');
|
|
// // }
|
|
//
|
|
// print('------------ $filePath');
|
|
// print(buffer.toString());
|
|
//
|
|
// resourceProvider.setOverlay(
|
|
// filePath,
|
|
// content: buffer.toString(),
|
|
// modificationStamp: 0,
|
|
// );
|
|
// }
|
|
//
|
|
// for (var i = 0; i < 1; i++) {
|
|
// var collection = AnalysisContextCollectionImpl(
|
|
// resourceProvider: resourceProvider,
|
|
// includedPaths: [libPath],
|
|
// byteStore: byteStore,
|
|
// performanceLog: PerformanceLog(io.stdout),
|
|
// );
|
|
//
|
|
// var analysisContext = collection.contextFor(libPath);
|
|
//
|
|
// {
|
|
// var path = '/home/test/lib/file_0.dart';
|
|
//
|
|
// var analysisSession = analysisContext.currentSession;
|
|
// await analysisSession.getResolvedLibrary(unrelatedPath);
|
|
// print('\n' * 2);
|
|
//
|
|
// print('Analyze #1\n');
|
|
// await analysisSession.getResolvedLibrary(path);
|
|
// print('\n' * 2);
|
|
// }
|
|
//
|
|
// {
|
|
// var modifiedPath = '/home/test/lib/file_0.dart';
|
|
// resourceProvider.setOverlay(
|
|
// modifiedPath,
|
|
// content: r'''
|
|
// import 'files.dart';
|
|
// class C0 {
|
|
// void bar() {}
|
|
// void foo2() {}
|
|
// void foo3() {}
|
|
// }
|
|
// ''',
|
|
// modificationStamp: 1,
|
|
// );
|
|
//
|
|
// analysisContext.changeFile(modifiedPath);
|
|
// await analysisContext.applyPendingFileChanges();
|
|
// var analysisSession = analysisContext.currentSession;
|
|
// print('\n' * 2);
|
|
//
|
|
// var path_0 = '/home/test/lib/file_0.dart';
|
|
// var path_1 = '/home/test/lib/file_1.dart';
|
|
//
|
|
// print('Analyze #2\n');
|
|
//
|
|
// var result_0 = await analysisSession.getResolvedLibrary(path_0);
|
|
// result_0 as ResolvedLibraryResult;
|
|
// print('[errors_0][${result_0.units[0].diagnostics}]');
|
|
// print('\n' * 2);
|
|
//
|
|
// // var analysisDriver = analysisContext.driver;
|
|
// // analysisDriver.resetLibraryImportScope(path_1);
|
|
//
|
|
// var result_1 = await analysisSession.getResolvedLibrary(path_1);
|
|
// result_1 as ResolvedLibraryResult;
|
|
// print('[errors_1][${result_1.units[0].diagnostics}]');
|
|
// print('\n' * 2);
|
|
// }
|
|
//
|
|
// await collection.dispose();
|
|
// print('\n' * 2);
|
|
// }
|
|
// }
|