This is an automated email from the ASF dual-hosted git repository.

chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fury.git


The following commit(s) were added to refs/heads/main by this push:
     new 24e2a973 fix(dart): fix inappropriate naming and align test titles 
(#2180)
24e2a973 is described below

commit 24e2a973d96fb6e9a3db1485160e7fb6df4ceeff
Author: LouShaokun <[email protected]>
AuthorDate: Thu Apr 24 17:23:51 2025 +0800

    fix(dart): fix inappropriate naming and align test titles (#2180)
    
    <!--
    **Thanks for contributing to Fury.**
    
    **If this is your first time opening a PR on Fury, you can refer to
    
[CONTRIBUTING.md](https://github.com/apache/fury/blob/main/CONTRIBUTING.md).**
    
    Contribution Checklist
    
    - The **Apache Fury (incubating)** community has restrictions on the
    naming of PR titles. You can also find instructions in
    [CONTRIBUTING.md](https://github.com/apache/fury/blob/main/CONTRIBUTING.md).
    - Fury has a strong focus on performance. If the PR you submit will have
    an impact on performance, please benchmark it first and provide the
    benchmark result here.
    -->
    
    ## What does this PR do?
    
    This PR makes two improvements to the Dart `fury-test` package:
    1. Fixes a typo in `lib/util/cross_lang_util.dart` by renaming
    `pythonMudule` to `pythonModule`.
    2. Updates all test case and test group titles under `test/` to follow
    the Dart test package’s recommended naming conventions.
    
    ## Related issues
    
    <!--
    Is there any related issue? Please attach here.
    
    - #xxxx0
    - #xxxx1
    - #xxxx2
    -->
    
    ## Does this PR introduce any user-facing change?
    
    - [ ] Does this PR introduce any public API change?
    - [ ] Does this PR introduce any binary protocol compatibility change?
    
    ## Benchmark
    
    <!--
    When the PR has an impact on performance (if you don't know whether the
    PR will have an impact on performance, you can submit the PR first, and
    if it will have impact on performance, the code reviewer will explain
    it), be sure to attach a benchmark data here.
    -->
---
 .../fury-test/lib/util/cross_lang_util.dart        |   6 +-
 .../test/buffer_test/read_bytes_as_int64_test.dart |   9 +-
 .../fury-test/test/buffer_test/var_int_test.dart   |  21 +-
 .../test/codegen_test/enum_codegen_test.dart       |   3 +-
 .../codegen_test/simple_struct_codegen_test.dart   |   8 +-
 .../test/codegen_test/struct_codegen_test.dart     |   7 +-
 .../cross_lang_struct_serialization_test.dart      |  15 +-
 .../cross_lang_test/cross_language_type_test.dart  | 223 +++++++++++----------
 .../register_serialization_test.dart               |   6 +-
 .../test/cross_lang_test/units/algorithm_test.dart |   9 +-
 .../test/cross_lang_test/units/memory_test.dart    |  62 +++---
 .../cross_lang_test/units/preserve_type_test.dart  |  62 +++---
 .../test/datatype_test/fixed_num_test.dart         |  96 ++++-----
 .../test/datatype_test/local_date_test.dart        |  74 ++++---
 .../test/datatype_test/timestamp_test.dart         |  54 ++---
 .../fury-test/test/perf_test/serial_perf_test.dart |  21 +-
 .../test/perf_test/unit/type_determining_test.dart |   4 +-
 .../fury/lib/src/meta/specs/enum_spec.dart         |   9 +
 dart/pubspec.lock                                  |  17 --
 19 files changed, 349 insertions(+), 357 deletions(-)

diff --git a/dart/packages/fury-test/lib/util/cross_lang_util.dart 
b/dart/packages/fury-test/lib/util/cross_lang_util.dart
index 79dc3224..584933ff 100644
--- a/dart/packages/fury-test/lib/util/cross_lang_util.dart
+++ b/dart/packages/fury-test/lib/util/cross_lang_util.dart
@@ -26,14 +26,14 @@ import 'package:fury_test/util/test_process_util.dart';
 
 final class CrossLangUtil{
   static const String pythonExecutable = 
"C:/Users/86511/.conda/envs/pyfury_dev6/python.exe";
-  static const String pythonMudule= "pyfury.tests.test_cross_language";
+  static const String pythonModule= "pyfury.tests.test_cross_language";
   static const Map<String,String> env = {'ENABLE_CROSS_LANGUAGE_TESTS': 
'true'};
 
   static bool executeWithPython(String testName, String filePath, [int 
waitingSec = 30]){
     List<String> command = [
       pythonExecutable,
       "-m",
-      pythonMudule,
+      pythonModule,
       testName,
       filePath
     ];
@@ -61,4 +61,4 @@ final class CrossLangUtil{
     Object? obj2 = fury2.fromFury(bytes);
     return obj2 as T;
   }
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/buffer_test/read_bytes_as_int64_test.dart 
b/dart/packages/fury-test/test/buffer_test/read_bytes_as_int64_test.dart
index 0e211b67..08db9f95 100644
--- a/dart/packages/fury-test/test/buffer_test/read_bytes_as_int64_test.dart
+++ b/dart/packages/fury-test/test/buffer_test/read_bytes_as_int64_test.dart
@@ -25,9 +25,8 @@ import 'package:fury/fury.dart';
 import 'package:test/test.dart';
 
 void main() {
-  group('ByteReader.readBytesAsInt64 tests', () {
-
-    test('Test reading different byte lengths', () {
+  group('ByteReader.readBytesAsInt64', () {
+    test('reads values for lengths 1 through 8', () {
       ByteWriter writer = ByteWriter(); // big endian
       // Write test values of different sizes
       writer.writeUint8(0xAB);                       // 1 byte: 0xAB
@@ -52,7 +51,7 @@ void main() {
       check(reader.readBytesAsInt64(8)).equals(0x1234567890ABCDEF);
     });
 
-    test('Test reading each byte individually', () {
+    test('reads each byte correctly', () {
       final testValue = 0x123456789ABCDEF0;
 
       ByteWriter writer = ByteWriter();
@@ -71,4 +70,4 @@ void main() {
       check(reader.readBytesAsInt64(1)).equals(0x12);
     });
   });
-}
\ No newline at end of file
+}
diff --git a/dart/packages/fury-test/test/buffer_test/var_int_test.dart 
b/dart/packages/fury-test/test/buffer_test/var_int_test.dart
index fbdc7d8c..1ea69c6f 100644
--- a/dart/packages/fury-test/test/buffer_test/var_int_test.dart
+++ b/dart/packages/fury-test/test/buffer_test/var_int_test.dart
@@ -27,9 +27,8 @@ import 'package:fury/fury.dart';
 import 'package:test/test.dart';
 
 void main() {
-  group('test var int RW', () {
-
-    test('Test VarInt32', () {
+  group('VarInt read/write', () {
+    test('VarInt32 encode/decode', () {
       ByteWriter bw = ByteWriter();
 
       // Basic values
@@ -70,7 +69,7 @@ void main() {
       check(br.readVarInt32()).equals(268435455);
     });
 
-    test('Test VarInt64', () {
+    test('VarInt64 encode/decode', () {
       ByteWriter bw = ByteWriter();
 
       // Basic values
@@ -115,7 +114,7 @@ void main() {
       check(br.readVarInt64()).equals(-281474976710656);
     });
 
-    test('Test VarUint32', () {
+    test('VarUint32 encode/decode', () {
       ByteWriter bw = ByteWriter();
 
       // Basic values
@@ -152,7 +151,7 @@ void main() {
       check(br.readVarUint32()).equals(268435455);
     });
 
-    test('Test VarUint32Small7', () {
+    test('VarUint32Small7 encode/decode', () {
       ByteWriter bw = ByteWriter();
 
       // Basic values
@@ -203,7 +202,7 @@ void main() {
       check(br.readVarUint32Small7()).equals(4294967295);
     });
 
-    test('Test VarUint36Small', () {
+    test('VarUint36Small encode/decode', () {
       ByteWriter bw = ByteWriter();
 
       // Basic values
@@ -260,7 +259,7 @@ void main() {
       check(br.readVarUint36Small()).equals(68719476735);
     });
 
-    test('Round-trip testing with random values', () {
+    test('Random round‑trip values', () {
       final random = Random();
       ByteWriter bw = ByteWriter();
 
@@ -300,7 +299,7 @@ void main() {
       }
     });
 
-    test('Test encoding size efficiency', () {
+    test('Encoding size efficiency', () {
       // Test that numbers are encoded with minimum number of bytes
       ByteWriter bw = ByteWriter();
 
@@ -315,7 +314,7 @@ void main() {
       check(bytes.length).equals(10);
     });
 
-    test('Test consecutive reads and writes', () {
+    test('Consecutive read/write sequence', () {
       // Test the ability to handle sequences of writes followed by sequences 
of reads
       ByteWriter bw = ByteWriter();
 
@@ -337,4 +336,4 @@ void main() {
       }
     });
   });
-}
\ No newline at end of file
+}
diff --git a/dart/packages/fury-test/test/codegen_test/enum_codegen_test.dart 
b/dart/packages/fury-test/test/codegen_test/enum_codegen_test.dart
index 7cc9bcc8..f2a8e64b 100644
--- a/dart/packages/fury-test/test/codegen_test/enum_codegen_test.dart
+++ b/dart/packages/fury-test/test/codegen_test/enum_codegen_test.dart
@@ -27,7 +27,6 @@ import 'package:test/test.dart';
 
 void main(){
   group('Simple Enum Code Generation', () {
-
     test('test enum spec generation', () async {
       EnumSpec enumSpec = EnumSpec(
         EnumFoo,
@@ -41,4 +40,4 @@ void main(){
       check($EnumSubClass).equals(enumSubClassSpec);
     });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/codegen_test/simple_struct_codegen_test.dart 
b/dart/packages/fury-test/test/codegen_test/simple_struct_codegen_test.dart
index 2e350a98..38b81335 100644
--- a/dart/packages/fury-test/test/codegen_test/simple_struct_codegen_test.dart
+++ b/dart/packages/fury-test/test/codegen_test/simple_struct_codegen_test.dart
@@ -30,8 +30,8 @@ import 'package:checks/checks.dart';
 import 'package:test/test.dart';
 
 void main(){
-  group('Simple Struct Code Generation Tests', () {
-    test('should verify code generation for a simple enum', () async {
+  group('Simple struct codegen', () {
+    test('generates EnumSpecs from enum_foo.dart', () async {
       // await runBuild();
       AssetId inputId = AssetId('fury-test', 'lib/entity/enum_foo.dart');
       var lib = await resolveAsset(inputId, (resolver) async {
@@ -52,7 +52,7 @@ void main(){
       check(variables.equals(['\$EnumFoo', '\$EnumSubClass'])).isTrue();
     });
 
-    test('should validate code presence for a simple struct', () async {
+    test('generates ClassSpec and mixin from time_obj.dart', () async {
       // await runBuild();
       AssetId inputId = AssetId('fury-test', 'lib/entity/time_obj.dart');
       var lib = await resolveAsset(inputId, (resolver) async {
@@ -78,4 +78,4 @@ void main(){
     });
 
   });
-}
\ No newline at end of file
+}
diff --git a/dart/packages/fury-test/test/codegen_test/struct_codegen_test.dart 
b/dart/packages/fury-test/test/codegen_test/struct_codegen_test.dart
index 148fce3b..9f3b7368 100644
--- a/dart/packages/fury-test/test/codegen_test/struct_codegen_test.dart
+++ b/dart/packages/fury-test/test/codegen_test/struct_codegen_test.dart
@@ -26,9 +26,8 @@ import 'package:fury_test/entity/complex_obj_2.dart';
 import 'package:test/test.dart';
 
 void main(){
-  group('Simple Struct Code Generation', () {
-
-    test('test struct spec generation', () async {
+  group('Struct codegen for ComplexObject2', () {
+    test('generates ClassSpec for ComplexObject2', () async {
       ClassSpec spec = ClassSpec(
         ComplexObject2,
         true, false,
@@ -65,4 +64,4 @@ void main(){
       check($ComplexObject2).equals(spec);
     });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/cross_lang_struct_serialization_test.dart
 
b/dart/packages/fury-test/test/cross_lang_test/cross_lang_struct_serialization_test.dart
index 9ad6be30..70ec2b07 100644
--- 
a/dart/packages/fury-test/test/cross_lang_test/cross_lang_struct_serialization_test.dart
+++ 
b/dart/packages/fury-test/test/cross_lang_test/cross_lang_struct_serialization_test.dart
@@ -34,9 +34,8 @@ import 'package:fury_test/util/test_file_util.dart';
 import 'package:test/test.dart';
 
 void main() {
-  group('cross lang struct serialization tests', () {
-
-    test('testSimpleStruct1', () {
+  group('Cross-language struct serialization', () {
+    test('round-trips SimpleStruct1', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -48,7 +47,7 @@ void main() {
       check(obj2).equals(obj);
     });
 
-    test('testSerializeSimpleStruct', () {
+    test('round-trips ComplexObject2', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -57,7 +56,7 @@ void main() {
       CrossLangUtil.structRoundBack(fury, o, "test_serialize_simple_struct");
     });
 
-    test('testSerializeComplexStruct', () {
+    test('round-trips ComplexObject1 with nested data', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -80,7 +79,7 @@ void main() {
       CrossLangUtil.structRoundBack(fury, obj, 
"test_serialize_complex_struct");
     });
 
-    test('testCrossLanguageReference', () {
+    test('preserves cross-language references', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -108,7 +107,7 @@ void main() {
       check(map1['k2']).identicalTo(list1);
     });
 
-    test('testNestedStructure', () {
+    test('round-trips ComplexObject3 with nested collections', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -144,4 +143,4 @@ void main() {
     });
 
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/cross_language_type_test.dart 
b/dart/packages/fury-test/test/cross_lang_test/cross_language_type_test.dart
index 00d61659..57d14b32 100644
--- a/dart/packages/fury-test/test/cross_lang_test/cross_language_type_test.dart
+++ b/dart/packages/fury-test/test/cross_lang_test/cross_language_type_test.dart
@@ -119,113 +119,118 @@ void _basicTypeTest(bool refTracking) {
 }
 
 void main() {
-  group('test cross language datatype serialization', () {
-
-    test('testCrossLanguageSerializer', () {
-      Fury fury = Fury(
-        refTracking: true,
-      );
-      ByteWriter bw = ByteWriter();
-      fury.toFuryWithWriter(true,bw);
-      fury.toFuryWithWriter(false, bw);
-      fury.toFuryWithWriter(Int32(-1),bw);
-      fury.toFuryWithWriter(Int8.maxValue, bw);
-      fury.toFuryWithWriter(Int8.minValue, bw);
-      fury.toFuryWithWriter(Int16.maxValue, bw);
-      fury.toFuryWithWriter(Int16.minValue, bw);
-      fury.toFuryWithWriter(Int32.maxValue, bw);
-      fury.toFuryWithWriter(Int32.minValue, bw);
-      fury.toFuryWithWriter(0x7fffffffffffffff, bw);
-      fury.toFuryWithWriter(0x8000000000000000, bw);
-      fury.toFuryWithWriter(Float32(-1.0), bw);
-      fury.toFuryWithWriter(-1.0, bw);
-      fury.toFuryWithWriter('str', bw);
-
-      LocalDate day = LocalDate(2021, 11, 23);
-      fury.toFuryWithWriter(day, bw);
-
-      TimeStamp ts = TimeStamp.fromSecondsSinceEpoch(100);
-      fury.toFuryWithWriter(ts, bw);
-
-      List<Object> list = ['a', Int32(1), -1.0, ts,day];
-      fury.toFuryWithWriter(list, bw);
-
-      Map<Object, Object> map = HashMap();
-      for (int i = 0; i < list.length; ++i) {
-        map['k$i'] = list[i];
-        map[list[i]] = list[i];
-      }
-      fury.toFuryWithWriter(map, bw);
-
-      Set<Object> set = HashSet.of(list);
-      fury.toFuryWithWriter(set, bw);
-
-      BoolList blist = BoolList.of([true, false]);
-      fury.toFuryWithWriter(blist, bw);
-
-      Int16List i16list = Int16List.fromList([1,32767]);
-      fury.toFuryWithWriter(i16list, bw);
-
-      Int32List i32list = Int32List.fromList([1, 0x7fffffff]);
-      fury.toFuryWithWriter(i32list, bw);
-
-      Int64List i64list = Int64List.fromList([1, 0x7fffffffffffffff]);
-      fury.toFuryWithWriter(i64list, bw);
-
-      Float32List f32list = Float32List.fromList([1.0, 2.0]);
-      fury.toFuryWithWriter(f32list, bw);
-
-      Float64List f64list = Float64List.fromList([1.0, 2.0]);
-      fury.toFuryWithWriter(f64list, bw);
-
-      Uint8List bytes1 = bw.takeBytes();
-
-      testFunc(Uint8List bytes) {
-        ByteReader br = ByteReader.forBytes(bytes);
-        check(fury.fromFury(bytes, br) as bool).isTrue();
-        check(fury.fromFury(bytes, br) as bool).isFalse();
-        check(Int32(-1) == fury.fromFury(bytes, br)).isTrue();
-        check(Int8.maxValue == fury.fromFury(bytes, br)).isTrue();
-        check(Int8.minValue == fury.fromFury(bytes, br)).isTrue();
-        check(Int16.maxValue == fury.fromFury(bytes, br)).isTrue();
-        check(Int16.minValue == fury.fromFury(bytes, br)).isTrue();
-        check(Int32.maxValue == fury.fromFury(bytes, br)).isTrue();
-        check(Int32.minValue == fury.fromFury(bytes, br)).isTrue();
-        check(fury.fromFury(bytes, br) as int).equals(0x7fffffffffffffff);
-        check(fury.fromFury(bytes, br) as int).equals(0x8000000000000000);
-        check(Float32(-1.0) == fury.fromFury(bytes, br)).isTrue();
-        check(fury.fromFury(bytes, br) as double).equals(-1.0);
-        check(fury.fromFury(bytes, br) as String).equals('str');
-
-        check(fury.fromFury(bytes, br) as LocalDate).equals(day);
-        check(fury.fromFury(bytes, br) as TimeStamp).equals(ts);
-        check((fury.fromFury(bytes, br) as List).strEquals(list)).isTrue();
-        check((fury.fromFury(bytes, br) as Map).equals(map)).isTrue();
-        check((fury.fromFury(bytes, br) as Set).equals(set)).isTrue();
-        check((fury.fromFury(bytes, br) as BoolList).equals(blist)).isTrue();
-        check((fury.fromFury(bytes, br) as 
Int16List).equals(i16list)).isTrue();
-        check((fury.fromFury(bytes, br) as 
Int32List).equals(i32list)).isTrue();
-        check((fury.fromFury(bytes, br) as 
Int64List).equals(i64list)).isTrue();
-        check((fury.fromFury(bytes, br) as 
Float32List).equals(f32list)).isTrue();
-        check((fury.fromFury(bytes, br) as 
Float64List).equals(f64list)).isTrue();
-      }
-      testFunc(bytes1);
-
-      File file = TestFileUtil.getWriteFile('test_cross_language_serializer', 
bytes1);
-      bool exeRes = 
CrossLangUtil.executeWithPython('test_cross_language_serializer', file.path);
-      check(exeRes).isTrue();
-      Uint8List bytes2 = file.readAsBytesSync();
-      testFunc(bytes2);
-    });
-
-    test('Test Basic Types Serialization', () {
-      _basicTypeTest(true);
-      _basicTypeTest(false);
-    });
-
-    test('Test Array and Collection Types Serialization', () {
-      _testArrayCollection(true);
-      _testArrayCollection(false);
-    });
+  group('Cross-language data type serialization', () {
+    test(
+      'serializes various datatypes via ByteWriter',
+      () {
+        Fury fury = Fury(
+          refTracking: true,
+        );
+        ByteWriter bw = ByteWriter();
+        fury.toFuryWithWriter(true,bw);
+        fury.toFuryWithWriter(false, bw);
+        fury.toFuryWithWriter(Int32(-1),bw);
+        fury.toFuryWithWriter(Int8.maxValue, bw);
+        fury.toFuryWithWriter(Int8.minValue, bw);
+        fury.toFuryWithWriter(Int16.maxValue, bw);
+        fury.toFuryWithWriter(Int16.minValue, bw);
+        fury.toFuryWithWriter(Int32.maxValue, bw);
+        fury.toFuryWithWriter(Int32.minValue, bw);
+        fury.toFuryWithWriter(0x7fffffffffffffff, bw);
+        fury.toFuryWithWriter(0x8000000000000000, bw);
+        fury.toFuryWithWriter(Float32(-1.0), bw);
+        fury.toFuryWithWriter(-1.0, bw);
+        fury.toFuryWithWriter('str', bw);
+
+        LocalDate day = LocalDate(2021, 11, 23);
+        fury.toFuryWithWriter(day, bw);
+
+        TimeStamp ts = TimeStamp.fromSecondsSinceEpoch(100);
+        fury.toFuryWithWriter(ts, bw);
+
+        List<Object> list = ['a', Int32(1), -1.0, ts,day];
+        fury.toFuryWithWriter(list, bw);
+
+        Map<Object, Object> map = HashMap();
+        for (int i = 0; i < list.length; ++i) {
+          map['k$i'] = list[i];
+          map[list[i]] = list[i];
+        }
+        fury.toFuryWithWriter(map, bw);
+
+        Set<Object> set = HashSet.of(list);
+        fury.toFuryWithWriter(set, bw);
+
+        BoolList blist = BoolList.of([true, false]);
+        fury.toFuryWithWriter(blist, bw);
+
+        Int16List i16list = Int16List.fromList([1,32767]);
+        fury.toFuryWithWriter(i16list, bw);
+
+        Int32List i32list = Int32List.fromList([1, 0x7fffffff]);
+        fury.toFuryWithWriter(i32list, bw);
+
+        Int64List i64list = Int64List.fromList([1, 0x7fffffffffffffff]);
+        fury.toFuryWithWriter(i64list, bw);
+
+        Float32List f32list = Float32List.fromList([1.0, 2.0]);
+        fury.toFuryWithWriter(f32list, bw);
+
+        Float64List f64list = Float64List.fromList([1.0, 2.0]);
+        fury.toFuryWithWriter(f64list, bw);
+
+        Uint8List bytes1 = bw.takeBytes();
+
+        testFunc(Uint8List bytes) {
+          ByteReader br = ByteReader.forBytes(bytes);
+          check(fury.fromFury(bytes, br) as bool).isTrue();
+          check(fury.fromFury(bytes, br) as bool).isFalse();
+          check(Int32(-1) == fury.fromFury(bytes, br)).isTrue();
+          check(Int8.maxValue == fury.fromFury(bytes, br)).isTrue();
+          check(Int8.minValue == fury.fromFury(bytes, br)).isTrue();
+          check(Int16.maxValue == fury.fromFury(bytes, br)).isTrue();
+          check(Int16.minValue == fury.fromFury(bytes, br)).isTrue();
+          check(Int32.maxValue == fury.fromFury(bytes, br)).isTrue();
+          check(Int32.minValue == fury.fromFury(bytes, br)).isTrue();
+          check(fury.fromFury(bytes, br) as int).equals(0x7fffffffffffffff);
+          check(fury.fromFury(bytes, br) as int).equals(0x8000000000000000);
+          check(Float32(-1.0) == fury.fromFury(bytes, br)).isTrue();
+          check(fury.fromFury(bytes, br) as double).equals(-1.0);
+          check(fury.fromFury(bytes, br) as String).equals('str');
+
+          check(fury.fromFury(bytes, br) as LocalDate).equals(day);
+          check(fury.fromFury(bytes, br) as TimeStamp).equals(ts);
+          check((fury.fromFury(bytes, br) as List).strEquals(list)).isTrue();
+          check((fury.fromFury(bytes, br) as Map).equals(map)).isTrue();
+          check((fury.fromFury(bytes, br) as Set).equals(set)).isTrue();
+          check((fury.fromFury(bytes, br) as BoolList).equals(blist)).isTrue();
+          check((fury.fromFury(bytes, br) as 
Int16List).equals(i16list)).isTrue();
+          check((fury.fromFury(bytes, br) as 
Int32List).equals(i32list)).isTrue();
+          check((fury.fromFury(bytes, br) as 
Int64List).equals(i64list)).isTrue();
+          check((fury.fromFury(bytes, br) as 
Float32List).equals(f32list)).isTrue();
+          check((fury.fromFury(bytes, br) as 
Float64List).equals(f64list)).isTrue();
+        }
+        testFunc(bytes1);
+
+        File file = 
TestFileUtil.getWriteFile('test_cross_language_serializer', bytes1);
+        bool exeRes = 
CrossLangUtil.executeWithPython('test_cross_language_serializer', file.path);
+        check(exeRes).isTrue();
+        Uint8List bytes2 = file.readAsBytesSync();
+        testFunc(bytes2);
+      });
+
+    test(
+      'round-trips basic types with/without refTracking',
+      () {
+        _basicTypeTest(true);
+        _basicTypeTest(false);
+      });
+
+    test(
+      'round-trips arrays & collections with/without refTracking',
+      () {
+        _testArrayCollection(true);
+        _testArrayCollection(false);
+      });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/register_serialization_test.dart 
b/dart/packages/fury-test/test/cross_lang_test/register_serialization_test.dart
index c00f3b01..a19846bd 100644
--- 
a/dart/packages/fury-test/test/cross_lang_test/register_serialization_test.dart
+++ 
b/dart/packages/fury-test/test/cross_lang_test/register_serialization_test.dart
@@ -52,8 +52,8 @@ final class ComplexObject1Serializer extends 
Serializer<ComplexObject1>{
 }
 
 void main() {
-  group('Test Registering Serializer', () {
-    test('testRegisterSerializer', () {
+  group('Serializer registration', () {
+    test('registers serializer & round-trips ComplexObject1', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -85,4 +85,4 @@ void main() {
     });
 
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/units/algorithm_test.dart 
b/dart/packages/fury-test/test/cross_lang_test/units/algorithm_test.dart
index 0ade1c2d..a636aad7 100644
--- a/dart/packages/fury-test/test/cross_lang_test/units/algorithm_test.dart
+++ b/dart/packages/fury-test/test/cross_lang_test/units/algorithm_test.dart
@@ -31,9 +31,8 @@ import 'package:fury_test/util/test_file_util.dart';
 import 'package:test/test.dart';
 
 void main() {
-  group('serialization algorithm test', () {
-
-    test('testMurmurHash3', () {
+  group('Cross-language hash algorithms', () {
+    test('MurmurHash3 (128x64) cross-language match', () {
       Uint8List bytes = Uint8List(16);
       bytes[0] = 0x01;
       bytes[1] = 0x02;
@@ -47,7 +46,7 @@ void main() {
       check(exeRes).isTrue();
     });
 
-    test('testStructHash', () {
+    test('struct hash cross-language match', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -60,4 +59,4 @@ void main() {
       check(exeRes).isTrue();
     });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/units/memory_test.dart 
b/dart/packages/fury-test/test/cross_lang_test/units/memory_test.dart
index 3e2bbd8e..8d1a05fb 100644
--- a/dart/packages/fury-test/test/cross_lang_test/units/memory_test.dart
+++ b/dart/packages/fury-test/test/cross_lang_test/units/memory_test.dart
@@ -30,35 +30,39 @@ import 'package:fury/fury.dart';
 import 'package:fury_test/extensions/array_ext.dart';
 
 void main() {
-  test('testBuffer', () {
-    ByteWriter bw = ByteWriter();
-    bw.writeBool(true);
-    bw.writeInt8(Int8.maxValue.value);
-    bw.writeInt16(Int16.maxValue.value);
-    bw.writeInt32(Int32.maxValue.value);
-    bw.writeInt64(0x7FFFFFFFFFFFFFFF);
-    bw.writeFloat32(Float32(-1.1).value);
-    bw.writeFloat64(-1.1);
-    bw.writeVarUint32(100);
-    Uint8List bytes2 = Uint8List.fromList([97,98]);
-    bw.writeInt32(bytes2.lengthInBytes);
-    bw.writeBytes(bytes2);
+  group('Cross-language buffer serialization', () {
+    test(
+      'serialize/deserialize buffer matches Python implementation',
+      () {
+        ByteWriter bw = ByteWriter();
+        bw.writeBool(true);
+        bw.writeInt8(Int8.maxValue.value);
+        bw.writeInt16(Int16.maxValue.value);
+        bw.writeInt32(Int32.maxValue.value);
+        bw.writeInt64(0x7FFFFFFFFFFFFFFF);
+        bw.writeFloat32(Float32(-1.1).value);
+        bw.writeFloat64(-1.1);
+        bw.writeVarUint32(100);
+        Uint8List bytes2 = Uint8List.fromList([97,98]);
+        bw.writeInt32(bytes2.lengthInBytes);
+        bw.writeBytes(bytes2);
 
-    File file = TestFileUtil.getWriteFile('test_buffer.data', bw.toBytes());
-    bool exeRes = CrossLangUtil.executeWithPython('test_buffer', file.path);
-    check(exeRes).isTrue();
+        File file = TestFileUtil.getWriteFile('test_buffer.data', 
bw.toBytes());
+        bool exeRes = CrossLangUtil.executeWithPython('test_buffer', 
file.path);
+        check(exeRes).isTrue();
 
-    Uint8List readBytes = file.readAsBytesSync();
-    ByteReader br = ByteReader.forBytes(readBytes);
-    check(br.readBool()).isTrue();
-    check(br.readInt8()).equals(Int8.maxValue.value);
-    check(br.readInt16()).equals(Int16.maxValue.value);
-    check(br.readInt32()).equals(Int32.maxValue.value);
-    check(br.readInt64()).equals(0x7FFFFFFFFFFFFFFF);
-    check(br.readFloat32()).equals(Float32(-1.1).value);
-    check(br.readFloat64()).equals(-1.1);
-    check(br.readVarUint32()).equals(100);
-    Uint8List byteLis = br.copyBytes(br.readInt32());
-    check(byteLis.memEquals(bytes2)).isTrue();
+        Uint8List readBytes = file.readAsBytesSync();
+        ByteReader br = ByteReader.forBytes(readBytes);
+        check(br.readBool()).isTrue();
+        check(br.readInt8()).equals(Int8.maxValue.value);
+        check(br.readInt16()).equals(Int16.maxValue.value);
+        check(br.readInt32()).equals(Int32.maxValue.value);
+        check(br.readInt64()).equals(0x7FFFFFFFFFFFFFFF);
+        check(br.readFloat32()).equals(Float32(-1.1).value);
+        check(br.readFloat64()).equals(-1.1);
+        check(br.readVarUint32()).equals(100);
+        Uint8List byteLis = br.copyBytes(br.readInt32());
+        check(byteLis.memEquals(bytes2)).isTrue();
+      });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/cross_lang_test/units/preserve_type_test.dart 
b/dart/packages/fury-test/test/cross_lang_test/units/preserve_type_test.dart
index 0dd5499f..f93a61b4 100644
--- a/dart/packages/fury-test/test/cross_lang_test/units/preserve_type_test.dart
+++ b/dart/packages/fury-test/test/cross_lang_test/units/preserve_type_test.dart
@@ -29,140 +29,139 @@ import 'package:fury_test/extensions/array_ext.dart';
 import 'package:fury_test/extensions/map_ext.dart';
 import 'package:test/test.dart';
 
-Object? _serDeserRoundBack(Fury fury, Object? obj) {
+Object? _roundTrip(Fury fury, Object? obj) {
   Uint8List bytes = fury.toFury(obj);
   Object? obj2 = fury.fromFury(bytes);
   return obj2;
 }
 
 void main(){
-  group('PreservedTypeTest', () {
-
-    test('Test Primitive Type', () {
+  group('Type preservation', () {
+    test('primitives preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
-      Object? obj0 = _serDeserRoundBack(fury, true);
+      Object? obj0 = _roundTrip(fury, true);
       check(obj0).isNotNull().isA<bool>();
       check(obj0).equals(true);
 
-      Object? obj1 = _serDeserRoundBack(fury, Int8.maxValue);
+      Object? obj1 = _roundTrip(fury, Int8.maxValue);
       check(obj1).isNotNull().isA<Int8>();
       check(obj1).equals(Int8.maxValue);
 
-      Object? obj2 = _serDeserRoundBack(fury, Int16.maxValue);
+      Object? obj2 = _roundTrip(fury, Int16.maxValue);
       check(obj2).isNotNull().isA<Int16>();
       check(obj2).equals(Int16.maxValue);
 
-      Object? obj3 = _serDeserRoundBack(fury, Int32.maxValue);
+      Object? obj3 = _roundTrip(fury, Int32.maxValue);
       check(obj3).isNotNull().isA<Int32>();
       check(obj3).equals(Int32.maxValue);
 
-      Object? obj4 = _serDeserRoundBack(fury, 0x7FFFFFFFFFFFFFFF);
+      Object? obj4 = _roundTrip(fury, 0x7FFFFFFFFFFFFFFF);
       check(obj4).isNotNull().isA<int>();
       check(obj4).equals(0x7FFFFFFFFFFFFFFF);
 
-      Object? obj5 = _serDeserRoundBack(fury, Float32(-1.1));
+      Object? obj5 = _roundTrip(fury, Float32(-1.1));
       check(obj5).isNotNull().isA<Float32>();
       check(obj5).equals(Float32(-1.1));
 
-      Object? obj6 = _serDeserRoundBack(fury, -1.1);
+      Object? obj6 = _roundTrip(fury, -1.1);
       check(obj6).isNotNull().isA<double>();
       check(obj6).equals(-1.1);
     });
 
-    test('Test String Type', () {
+    test('strings and codeUnits preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
-      Object? obj1 = _serDeserRoundBack(fury, "str");
+      Object? obj1 = _roundTrip(fury, "str");
       check(obj1).isNotNull().isA<String>();
       check(obj1).equals("str");
 
-      Object? obj2 = _serDeserRoundBack(fury, "软件测试".codeUnits);
+      Object? obj2 = _roundTrip(fury, "软件测试".codeUnits);
       check(obj2).isNotNull().isA<List>();
       check((obj2 as List).equals("软件测试".codeUnits)).isTrue();
 
-      Object? obj3 = _serDeserRoundBack(fury, '软件测试');
+      Object? obj3 = _roundTrip(fury, '软件测试');
       check(obj3).isNotNull().isA<String>();
       check(obj3).equals("软件测试");
     });
 
-    test('Test String Type', () {
+    test('BoolList preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
-      Object? obj1 = _serDeserRoundBack(fury, BoolList.of([true, false, true, 
true, false, true]));
+      Object? obj1 = _roundTrip(fury, BoolList.of([true, false, true, true, 
false, true]));
       check(obj1).isNotNull().isA<BoolList>();
       BoolList boolList = obj1 as BoolList;
       BoolList boolList1 = BoolList.of([true, false, true, true, false, true]);
       check(boolList.equals(boolList1)).isTrue();
     });
 
-    test('Test Array Type', () {
+    test('typed arrays preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
       Int32List int32List = Int32List.fromList([1, 2]);
-      Object? obj4 = _serDeserRoundBack(fury, int32List);
+      Object? obj4 = _roundTrip(fury, int32List);
       check(obj4).isNotNull().isA<Int32List>();
       Int32List int32List1 = obj4 as Int32List;
       check(int32List1.memEquals(int32List)).isTrue();
 
       Int64List int64List = Int64List.fromList([1, 2]);
-      Object? obj5 = _serDeserRoundBack(fury, int64List);
+      Object? obj5 = _roundTrip(fury, int64List);
       check(obj5).isNotNull().isA<Int64List>();
       Int64List int64List1 = obj5 as Int64List;
       check(int64List1.memEquals(int64List)).isTrue();
 
       Uint8List byteList = Uint8List.fromList([1, 2]);
-      Object? obj6 = _serDeserRoundBack(fury, byteList);
+      Object? obj6 = _roundTrip(fury, byteList);
       check(obj6).isNotNull().isA<Uint8List>();
       Uint8List byteList1 = obj6 as Uint8List;
       check(byteList1.memEquals(byteList)).isTrue();
 
       Int16List int16List = Int16List.fromList([1, 2]);
-      Object? obj7 = _serDeserRoundBack(fury, int16List);
+      Object? obj7 = _roundTrip(fury, int16List);
       check(obj7).isNotNull().isA<Int16List>();
       Int16List int16List1 = obj7 as Int16List;
       check(int16List1.memEquals(int16List)).isTrue();
     });
 
-    test('Test List Type', () {
+    test('Lists preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
       List<String> strList = ["str", "str"];
-      Object? obj1 = _serDeserRoundBack(fury, strList);
+      Object? obj1 = _roundTrip(fury, strList);
       check(obj1).isNotNull().isA<List>();
       List strList1 = obj1 as List;
       check(strList1.equals(strList)).isTrue();
 
       List<Object> objList = ['str', 1];
-      Object? obj2 = _serDeserRoundBack(fury, objList);
+      Object? obj2 = _roundTrip(fury, objList);
       check(obj2).isNotNull().isA<List>();
       List objList1 = obj2 as List;
       check(objList1.equals(objList)).isTrue();
 
       List<List<int>> intList = [[1, 2], [1, 2]];
-      Object? obj3 = _serDeserRoundBack(fury, intList);
+      Object? obj3 = _roundTrip(fury, intList);
       check(obj3).isNotNull().isA<List>();
       List intList1 = obj3 as List;
       check(intList1.equals(intList, const ListEquality())).isTrue();
     });
 
-    test('Test Map Type', () {
+    test('Maps preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
       Map<String, Int16> strMap = {"key": Int16(1), "key2": Int16(2)};
-      Object? obj1 = _serDeserRoundBack(fury, strMap);
+      Object? obj1 = _roundTrip(fury, strMap);
       check(obj1).isNotNull().isA<Map>();
       Map strMap1 = obj1 as Map;
       check(strMap1.equals(strMap)).isTrue();
     });
 
-    test('Test Time Type', () {
+    test('TimeObj preserved', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -178,11 +177,12 @@ void main(){
       );
 
       fury.register($TimeObj, "test.TimeObj");
-      Object? obj1 = _serDeserRoundBack(fury, timeObj);
+      Object? obj1 = _roundTrip(fury, timeObj);
       check(obj1).isNotNull().isA<TimeObj>();
       TimeObj timeObj1 = obj1 as TimeObj;
       check(timeObj1).equals(timeObj);
     });
 
   });
-}
\ No newline at end of file
+}
+
diff --git a/dart/packages/fury-test/test/datatype_test/fixed_num_test.dart 
b/dart/packages/fury-test/test/datatype_test/fixed_num_test.dart
index 05664d3a..78aaeda0 100644
--- a/dart/packages/fury-test/test/datatype_test/fixed_num_test.dart
+++ b/dart/packages/fury-test/test/datatype_test/fixed_num_test.dart
@@ -24,8 +24,8 @@ import 'package:fury/fury.dart' show FixedNum, Float32, 
Int16, Int32, Int8;
 import 'package:test/test.dart';
 
 void main() {
-  group('FixedNum Base Class Tests', () {
-    test('FixedNum.from() creates the correct type', () {
+  group('FixedNum factory & comparability', () {
+    test('creates correct subtype via FixedNum.from', () {
       expect(FixedNum.from(42, type: 'int8'), isA<Int8>());
       expect(FixedNum.from(42, type: 'int16'), isA<Int16>());
       expect(FixedNum.from(42, type: 'int32'), isA<Int32>());
@@ -35,16 +35,16 @@ void main() {
       expect(FixedNum.from(42), isA<Int32>());
     });
 
-    test('FixedNum.from() handles case insensitivity', () {
+    test('handles case-insensitive type names', () {
       expect(FixedNum.from(42, type: 'INT8'), isA<Int8>());
       expect(FixedNum.from(42, type: 'Int16'), isA<Int16>());
     });
 
-    test('FixedNum.from() throws on invalid type', () {
+    test('throws on unsupported type name', () {
       expect(() => FixedNum.from(42, type: 'invalid'), throwsArgumentError);
     });
 
-    test('FixedNum instances are comparable', () {
+    test('compares values across types', () {
       var a = FixedNum.from(10, type: 'int8');
       var b = FixedNum.from(20, type: 'int8');
       var c = FixedNum.from(10, type: 'int16');
@@ -55,9 +55,9 @@ void main() {
     });
   });
 
-  group('Int8 Tests', () {
-    group('Construction and Range Handling', () {
-      test('Constructor handles values within range', () {
+  group('Int8 behaviors', () {
+    group('range & conversion', () {
+      test('preserves in-range values', () {
         var a = Int8(127);
         var b = Int8(-128);
 
@@ -65,7 +65,7 @@ void main() {
         expect(b.value, -128);
       });
 
-      test('Constructor handles overflow and underflow', () {
+      test('wraps on overflow/underflow', () {
         var a = Int8(128);  // Overflow
         var b = Int8(255);  // Overflow to -1
         var c = Int8(256);  // Overflow to 0
@@ -77,7 +77,7 @@ void main() {
         expect(d.value, 127);
       });
 
-      test('Constructor handles floating point values', () {
+      test('truncates float inputs', () {
         var a = Int8(42.7);
         var b = Int8(-42.7);
 
@@ -85,7 +85,7 @@ void main() {
         expect(b.value, -42);
       });
 
-      test('Min and Max values are correct', () {
+      test('min/max constants and instances', () {
         expect(Int8.MIN_VALUE, -128);
         expect(Int8.MAX_VALUE, 127);
         expect(Int8.minValue.value, -128);
@@ -93,8 +93,8 @@ void main() {
       });
     });
 
-    group('Arithmetic Operators', () {
-      test('Addition works with overflow handling', () {
+    group('arithmetic operators with overflow', () {
+      test('addition with overflow', () {
         var a = Int8(100);
         var b = Int8(50);
         var result = a + b;
@@ -103,7 +103,7 @@ void main() {
         expect(result.value, -106); // 100 + 50 = 150, which overflows to -106
       });
 
-      test('Addition works with FixedNum and raw numbers', () {
+      test('addition with FixedNum & num', () {
         var a = Int8(100);
         var b = Int8(50);
 
@@ -111,7 +111,7 @@ void main() {
         expect((a + 50).value, -106);
       });
 
-      test('Subtraction works with underflow handling', () {
+      test('subtraction with underflow', () {
         var a = Int8(-100);
         var b = Int8(50);
         var result = a - b;
@@ -120,7 +120,7 @@ void main() {
         expect(result.value, 106); // -100 - 50 = -150, which underflows to 106
       });
 
-      test('Multiplication works with overflow handling', () {
+      test('multiplication with overflow', () {
         var a = Int8(20);
         var b = Int8(10);
         var result = a * b;
@@ -129,7 +129,7 @@ void main() {
         expect(result.value, -56); // 20 * 10 = 200, which overflows to -56
       });
 
-      test('Division returns double', () {
+      test('division returns double', () {
         var a = Int8(100);
         var b = Int8(25);
         var result = a / b;
@@ -138,7 +138,7 @@ void main() {
         expect(result, 4.0);
       });
 
-      test('Integer division works with overflow handling', () {
+      test('integer division with overflow', () {
         var a = Int8(100);
         var b = Int8(3);
         var result = a ~/ b;
@@ -147,7 +147,7 @@ void main() {
         expect(result.value, 33);
       });
 
-      test('Modulo works correctly', () {
+      test('modulo operation', () {
         var a = Int8(100);
         var b = Int8(30);
         var result = a % b;
@@ -156,7 +156,7 @@ void main() {
         expect(result.value, 10);
       });
 
-      test('Negation works with overflow handling', () {
+      test('negation with overflow', () {
         var a = Int8(127);
         var b = Int8(-128);
 
@@ -165,8 +165,8 @@ void main() {
       });
     });
 
-    group('Bitwise Operators', () {
-      test('Bitwise AND works correctly', () {
+    group('bitwise operators', () {
+      test('bitwise AND', () {
         var a = Int8(170); // 10101010 in binary
         var b = Int8(240); // 11110000 in binary
         var result = a & b;
@@ -175,7 +175,7 @@ void main() {
         expect(result.value, Int8(160)); // 10100000 in binary
       });
 
-      test('Bitwise OR works correctly', () {
+      test('bitwise OR', () {
         var a = Int8(170); // 10101010 in binary
         var b = Int8(240); // 11110000 in binary
         var result = a | b;
@@ -184,7 +184,7 @@ void main() {
         expect(result.value, Int8(250)); // 11111010 in binary
       });
 
-      test('Bitwise XOR works correctly', () {
+      test('bitwise XOR', () {
         var a = Int8(170); // 10101010 in binary
         var b = Int8(240); // 11110000 in binary
         var result = a ^ b;
@@ -193,7 +193,7 @@ void main() {
         expect(result.value, 90); // 01011010 in binary
       });
 
-      test('Bitwise NOT works correctly', () {
+      test('bitwise NOT', () {
         var a = Int8(170); // 10101010 in binary
         var result = ~a;
 
@@ -201,7 +201,7 @@ void main() {
         expect(result.value, 85); // 01010101 in binary
       });
 
-      test('Left shift works correctly', () {
+      test('left shift', () {
         var a = Int8(10); // 00001010 in binary
         var result = a << 2;
 
@@ -209,7 +209,7 @@ void main() {
         expect(result.value, 40); // 00101000 in binary
       });
 
-      test('Right shift works correctly', () {
+      test('arithmetic right shift', () {
         var a = Int8(-96); // 10100000 in binary
         var result = a >> 3;
 
@@ -218,8 +218,8 @@ void main() {
       });
     });
 
-    group('Comparison Operators', () {
-      test('Less than works correctly', () {
+    group('comparison operators', () {
+      test('less than', () {
         var a = Int8(10);
         var b = Int8(20);
 
@@ -228,7 +228,7 @@ void main() {
         expect(a < 20, isTrue);
       });
 
-      test('Less than or equal works correctly', () {
+      test('less or equal', () {
         var a = Int8(10);
         var b = Int8(20);
         var c = Int8(10);
@@ -238,7 +238,7 @@ void main() {
         expect(b <= a, isFalse);
       });
 
-      test('Greater than works correctly', () {
+      test('greater than', () {
         var a = Int8(20);
         var b = Int8(10);
 
@@ -247,7 +247,7 @@ void main() {
         expect(a > 10, isTrue);
       });
 
-      test('Greater than or equal works correctly', () {
+      test('greater or equal', () {
         var a = Int8(20);
         var b = Int8(10);
         var c = Int8(20);
@@ -258,8 +258,8 @@ void main() {
       });
     });
 
-    group('Equality and Hash Code', () {
-      test('Equality works with FixedNum and raw numbers', () {
+    group('equality & hashCode', () {
+      test('equality across types & raw numbers', () {
         var a = Int8(42);
         var b = Int8(42);
         var c = Int8(43);
@@ -272,7 +272,7 @@ void main() {
         expect(a == d, isTrue); // Different types but same value
       });
 
-      test('Hash code is consistent with equals', () {
+      test('hashCode consistency', () {
         var a = Int8(42);
         var b = Int8(42);
         var c = Int8(43);
@@ -282,8 +282,8 @@ void main() {
       });
     });
 
-    group('Common Methods', () {
-      test('abs() works correctly', () {
+    group('common methods', () {
+      test('abs value', () {
         var a = Int8(42);
         var b = Int8(-42);
 
@@ -291,7 +291,7 @@ void main() {
         expect(b.abs(), 42);
       });
 
-      test('sign works correctly', () {
+      test('sign property', () {
         var a = Int8(42);
         var b = Int8(-42);
         var c = Int8(0);
@@ -301,7 +301,7 @@ void main() {
         expect(c.sign, 0);
       });
 
-      test('isNegative works correctly', () {
+      test('isNegative flag', () {
         var a = Int8(42);
         var b = Int8(-42);
         var c = Int8(0);
@@ -312,8 +312,8 @@ void main() {
       });
     });
 
-    group('Type Conversions', () {
-      test('toInt() works correctly', () {
+    group('type conversions', () {
+      test('toInt conversion', () {
         var a = Int8(42);
         var b = Int8(-42);
 
@@ -321,7 +321,7 @@ void main() {
         expect(b.toInt(), -42);
       });
 
-      test('toDouble() works correctly', () {
+      test('toDouble conversion', () {
         var a = Int8(42);
         var b = Int8(-42);
 
@@ -329,7 +329,7 @@ void main() {
         expect(b.toDouble(), -42.0);
       });
 
-      test('Conversion to other fixed types works', () {
+      test('conversion to other fixed types', () {
         var a = Int8(42);
 
         expect(a.toInt16(), isA<Int16>());
@@ -342,7 +342,7 @@ void main() {
         expect(a.toFloat32().value, 42.0);
       });
 
-      test('toString() works correctly', () {
+      test('toString representation', () {
         var a = Int8(42);
         var b = Int8(-42);
 
@@ -351,8 +351,8 @@ void main() {
       });
     });
 
-    group('Edge Cases and Random Tests', () {
-      test('Test with random values for overflow behavior', () {
+    group('edge & random tests', () {
+      test('random overflow behavior', () {
         // Instead of property-based testing, we'll use a set of random values
         final random = [
           27, 99, 128, 129, 255, 256, 300, -1, -127, -128, -129, -200, -256
@@ -365,7 +365,7 @@ void main() {
         }
       });
 
-      test('Test arithmetic operations with random values', () {
+      test('random arithmetic correctness', () {
         final values = [10, 50, 100, 127, -10, -50, -100, -128];
 
         for (final a in values) {
@@ -384,4 +384,4 @@ void main() {
       });
     });
   });
-}
\ No newline at end of file
+}
diff --git a/dart/packages/fury-test/test/datatype_test/local_date_test.dart 
b/dart/packages/fury-test/test/datatype_test/local_date_test.dart
index 0a82030a..f8b9ff4f 100644
--- a/dart/packages/fury-test/test/datatype_test/local_date_test.dart
+++ b/dart/packages/fury-test/test/datatype_test/local_date_test.dart
@@ -25,9 +25,8 @@ import 'package:test/test.dart';
 import 'package:checks/checks.dart';
 
 void main() {
-  group('LocalDate Constructors', () {
-
-    test('Basic constructor validates input', () {
+  group('Constructors', () {
+    test('validates constructor inputs', () {
       // Valid dates
       check(LocalDate(2025, 3, 19)).isA<LocalDate>();
       check(LocalDate(2024, 2, 29)).isA<LocalDate>(); // Leap year
@@ -40,7 +39,7 @@ void main() {
       check(() => LocalDate(2025, 2, 29)).throws<ArgumentError>(); // Not a 
leap year
     });
 
-    test('LocalDate.parse correctly parses ISO dates', () {
+    test('parses ISO date strings', () {
       var date = LocalDate.parse('2025-03-19');
       check(date.year).equals(2025);
       check(date.month).equals(3);
@@ -56,7 +55,7 @@ void main() {
       check(() => LocalDate.parse('not-a-date')).throws<FormatException>();
     });
 
-    test('LocalDate.fromDateTime correctly creates date from DateTime', () {
+    test('creates date from DateTime', () {
       var dateTime = DateTime(2025, 3, 19);
       var date = LocalDate.fromDateTime(dateTime);
       check(date.year).equals(2025);
@@ -71,8 +70,7 @@ void main() {
       check(date.toString()).equals('2020-12-31');
     });
 
-    // Fix fromEpochDay test
-    test('LocalDate.fromEpochDay creates correct dates', () {
+    test('round-trips epoch days', () {
       // 1970-01-01 is day 0
       var date = LocalDate.fromEpochDay(0, utc: true);
       check(date.toString()).equals('1970-01-01');
@@ -90,7 +88,7 @@ void main() {
       check(reconstructedDate.day).equals(19);
     });
 
-    test('LocalDate.fromEpochMillis creates correct dates', () {
+    test('round-trips epoch milliseconds', () {
       // Baseline test
       var date = LocalDate.fromEpochMillis(0, utc: true);
       check(date.toString()).equals('1970-01-01');
@@ -105,7 +103,7 @@ void main() {
       check(reconstructedDate.day).equals(19);
     });
 
-    test('LocalDate.fromEpochSeconds creates correct dates', () {
+    test('round-trips epoch seconds', () {
       // 1970-01-01 00:00:00 UTC is 0 seconds
       var date = LocalDate.fromEpochSeconds(0, utc: true);
       check(date.toString()).equals('1970-01-01');
@@ -121,15 +119,15 @@ void main() {
       check(date.day).equals(1);
     });
 
-    test('Epoch is correctly defined', () {
+    test('defines epoch constant', () {
       check(LocalDate.epoch.year).equals(1970);
       check(LocalDate.epoch.month).equals(1);
       check(LocalDate.epoch.day).equals(1);
     });
   });
 
-  group('LocalDate Conversions', () {
-    test('toEpochDay returns correct days since epoch', () {
+  group('Epoch conversions', () {
+    test('calculates epoch days', () {
       var epochDate = LocalDate(1970, 1, 1);
       check(epochDate.toEpochDay(utc: true)).equals(0);
 
@@ -144,7 +142,7 @@ void main() {
           .which((days) => days..isGreaterThan(19700)..isLessThan(19850));
     });
 
-    test('toEpochMillis returns correct milliseconds since epoch', () {
+    test('calculates epoch milliseconds', () {
       var epochDate = LocalDate(1970, 1, 1);
       check(epochDate.toEpochMillis(utc: true)).equals(0);
 
@@ -155,7 +153,7 @@ void main() {
       check(date2000.toEpochMillis(utc: true)).equals(946684800000);
     });
 
-    test('toEpochSeconds returns correct seconds since epoch', () {
+    test('calculates epoch seconds', () {
       var epochDate = LocalDate(1970, 1, 1);
       check(epochDate.toEpochSeconds(utc: true)).equals(0);
 
@@ -163,7 +161,7 @@ void main() {
       check(nextDay.toEpochSeconds(utc: true)).equals(86400); // 24 hours in 
seconds
     });
 
-    test('toDateTime returns DateTime with correct date components', () {
+    test('converts to local DateTime', () {
       var date = LocalDate(2025, 3, 19);
       var dateTime = date.toDateTime();
 
@@ -176,7 +174,7 @@ void main() {
       check(dateTime.isUtc).isFalse();
     });
 
-    test('toDateTimeUtc returns UTC DateTime', () {
+    test('converts to UTC DateTime', () {
       var date = LocalDate(2025, 3, 19);
       var dateTime = date.toDateTimeUtc();
 
@@ -186,7 +184,7 @@ void main() {
       check(dateTime.isUtc).isTrue();
     });
 
-    test('format returns correctly formatted string', () {
+    test('formats date strings', () {
       var date = LocalDate(2025, 3, 19);
 
       // Default format
@@ -198,7 +196,7 @@ void main() {
       check(date.format('M/d/yyyy')).equals('3/19/2025');
     });
 
-    test('toString returns ISO format', () {
+    test('outputs ISO string', () {
       var date = LocalDate(2025, 3, 19);
       check(date.toString()).equals('2025-03-19');
 
@@ -208,8 +206,8 @@ void main() {
     });
   });
 
-  group('LocalDate Date Operations', () {
-    test('plusDays adds correct number of days', () {
+  group('Date arithmetic', () {
+    test('adds days across boundaries', () {
       var date = LocalDate(2025, 3, 19);
 
       // Add one day
@@ -230,7 +228,7 @@ void main() {
       check(newDate.toString()).equals('2026-01-04');
     });
 
-    test('plusMonths adds correct number of months', () {
+    test('adds months with overflow handling', () {
       var date = LocalDate(2025, 3, 19);
 
       // Add one month
@@ -251,7 +249,7 @@ void main() {
       check(newDate.toString()).equals('2025-02-28'); // February has 28 days 
in 2025
     });
 
-    test('plusYears adds correct number of years', () {
+    test('adds years with leap adjustment', () {
       var date = LocalDate(2025, 3, 19);
 
       // Add one year
@@ -271,7 +269,7 @@ void main() {
       check(newDate.toString()).equals('2028-02-29'); // Leap year again
     });
 
-    test('minusDays subtracts correct number of days', () {
+    test('subtracts days correctly', () {
       var date = LocalDate(2025, 3, 19);
 
       // Subtract one day
@@ -292,7 +290,7 @@ void main() {
       check(newDate.toString()).equals('2024-12-26');
     });
 
-    test('minusMonths subtracts correct number of months', () {
+    test('subtracts months correctly', () {
       var date = LocalDate(2025, 3, 19);
 
       // Subtract one month
@@ -309,7 +307,7 @@ void main() {
       check(newDate.toString()).equals('2025-02-28'); // February has 28 days 
in 2025
     });
 
-    test('minusYears subtracts correct number of years', () {
+    test('subtracts years correctly', () {
       var date = LocalDate(2025, 3, 19);
 
       // Subtract one year
@@ -331,8 +329,8 @@ void main() {
     });
   });
 
-  group('LocalDate Comparison', () {
-    test('compareTo returns correct ordering', () {
+  group('Comparison', () {
+    test('compareTo ordering', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 20);
       var date3 = LocalDate(2025, 4, 1);
@@ -353,7 +351,7 @@ void main() {
       check(date1.compareTo(date5) == 0).isTrue();
     });
 
-    test('isAfter returns correct boolean result', () {
+    test('isAfter check', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 20);
       var date3 = LocalDate(2025, 3, 19);
@@ -363,7 +361,7 @@ void main() {
       check(date1.isAfter(date3)).isFalse();
     });
 
-    test('isBefore returns correct boolean result', () {
+    test('isBefore check', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 20);
       var date3 = LocalDate(2025, 3, 19);
@@ -373,7 +371,7 @@ void main() {
       check(date1.isBefore(date3)).isFalse();
     });
 
-    test('daysBetween calculates correct number of days', () {
+    test('calculates daysBetween', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 24);
 
@@ -395,7 +393,7 @@ void main() {
       check(date1.daysBetween(date4)).isGreaterThan(0);
     });
 
-    test('equals works correctly', () {
+    test('equality operator', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 19);
       var date3 = LocalDate(2025, 3, 20);
@@ -406,7 +404,7 @@ void main() {
       check(date1 == "not a date").isFalse();
     });
 
-    test('hashCode works as expected', () {
+    test('hashCode consistency', () {
       var date1 = LocalDate(2025, 3, 19);
       var date2 = LocalDate(2025, 3, 19);
       var date3 = LocalDate(2025, 3, 20);
@@ -416,8 +414,8 @@ void main() {
     });
   });
 
-  group('LocalDate Properties', () {
-    test('dayOfWeek returns correct day of week', () {
+  group('Properties', () {
+    test('dayOfWeek calculation', () {
       // March 19, 2025 is a Wednesday (day 3)
       var date = LocalDate(2025, 3, 19);
       check(date.dayOfWeek).equals(3);
@@ -435,7 +433,7 @@ void main() {
       check(date.dayOfWeek).equals(4);
     });
 
-    test('dayOfYear returns correct day of year', () {
+    test('dayOfYear calculation', () {
       // January 1 is day 1
       var date = LocalDate(2025, 1, 1);
       check(date.dayOfYear).equals(1);
@@ -458,8 +456,8 @@ void main() {
     });
   });
 
-  group('LocalDate Static Methods', () {
-    test('isLeapYear correctly identifies leap years', () {
+  group('Utilities', () {
+    test('isLeapYear detection', () {
       // Regular leap years (divisible by 4)
       check(LocalDate.isLeapYear(2024)).isTrue();
       check(LocalDate.isLeapYear(2020)).isTrue();
@@ -480,7 +478,7 @@ void main() {
       check(LocalDate.isLeapYear(2021)).isFalse();
     });
 
-    test('getDaysInMonth returns correct days for each month', () {
+    test('getDaysInMonth outputs month lengths', () {
       // Non-leap year
       check(LocalDate.getDaysInMonth(2025, 1)).equals(31); // January
       check(LocalDate.getDaysInMonth(2025, 2)).equals(28); // February
diff --git a/dart/packages/fury-test/test/datatype_test/timestamp_test.dart 
b/dart/packages/fury-test/test/datatype_test/timestamp_test.dart
index 9bbe838d..84c482b4 100644
--- a/dart/packages/fury-test/test/datatype_test/timestamp_test.dart
+++ b/dart/packages/fury-test/test/datatype_test/timestamp_test.dart
@@ -25,13 +25,13 @@ import 'package:test/test.dart';
 import 'package:checks/checks.dart'; // For more expressive assertions
 
 void main() {
-  group('TimeStamp constructors', () {
-    test('basic constructor', () {
+  group('Constructors', () {
+    test('sets microsecondsSinceEpoch', () {
       final ts = TimeStamp(1000000);
       check(ts.microsecondsSinceEpoch).equals(1000000);
     });
 
-    test('now() constructor creates timestamp close to current time', () {
+    test('now() near current time', () {
       final now = DateTime.now();
       final tsNow = TimeStamp.now();
       final diff = (tsNow.microsecondsSinceEpoch - 
now.microsecondsSinceEpoch).abs();
@@ -40,19 +40,19 @@ void main() {
       check(diff).isLessThan(50000);
     });
 
-    test('fromMillisecondsSinceEpoch constructor', () {
+    test('fromMillisecondsSinceEpoch() sets micros correctly', () {
       final ts = TimeStamp.fromMillisecondsSinceEpoch(1000);
       check(ts.microsecondsSinceEpoch).equals(1000 * 1000);
       check(ts.toMillisecondsSinceEpoch()).equals(1000);
     });
 
-    test('fromDateTime constructor', () {
+    test('fromDateTime() maps to microsSinceEpoch', () {
       final dt = DateTime(2025, 3, 19, 16, 38, 21);
       final ts = TimeStamp.fromDateTime(dt);
       check(ts.microsecondsSinceEpoch).equals(dt.microsecondsSinceEpoch);
     });
 
-    test('fromDateComponents constructor', () {
+    test('fromDateComponents() (local)', () {
       final ts = TimeStamp.fromDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 38, second: 21);
 
@@ -66,7 +66,7 @@ void main() {
       check(dt.isUtc).isFalse(); // Should be local time
     });
 
-    test('fromUtcDateComponents constructor', () {
+    test('fromUtcDateComponents() (UTC)', () {
       final ts = TimeStamp.fromUtcDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 38, second: 21);
 
@@ -81,18 +81,18 @@ void main() {
     });
   });
 
-  group('TimeStamp conversion methods', () {
-    test('toMillisecondsSinceEpoch', () {
+  group('Conversions', () {
+    test('toMillisecondsSinceEpoch()', () {
       final ts = TimeStamp(1234567000);
       check(ts.toMillisecondsSinceEpoch()).equals(1234567);
     });
 
-    test('toSecondsSinceEpoch', () {
+    test('toSecondsSinceEpoch()', () {
       final ts = TimeStamp(1234567000000);
       check(ts.toSecondsSinceEpoch()).equals(1234567);
     });
 
-    test('toDateTime and toUtcDateTime', () {
+    test('local vs UTC DateTime', () {
       final ts = TimeStamp(1714490301000000); // 2024-04-30 15:18:21 UTC
 
       final localDt = ts.toDateTime();
@@ -111,8 +111,8 @@ void main() {
     });
   });
 
-  group('TimeStamp arithmetic', () {
-    test('add duration', () {
+  group('Arithmetic', () {
+    test('add(Duration)', () {
       final ts = TimeStamp(1000000);
       final newTs = ts.add(Duration(seconds: 10));
 
@@ -120,7 +120,7 @@ void main() {
       check(newTs.toSecondsSinceEpoch() - ts.toSecondsSinceEpoch()).equals(10);
     });
 
-    test('subtract duration', () {
+    test('subtract(Duration)', () {
       final ts = TimeStamp(11000000);
       final newTs = ts.subtract(Duration(seconds: 10));
 
@@ -128,7 +128,7 @@ void main() {
       check(ts.toSecondsSinceEpoch() - newTs.toSecondsSinceEpoch()).equals(10);
     });
 
-    test('difference between timestamps', () {
+    test('difference()', () {
       final ts1 = TimeStamp(1000000);
       final ts2 = TimeStamp(11000000);
 
@@ -140,8 +140,8 @@ void main() {
     });
   });
 
-  group('TimeStamp comparison', () {
-    test('isBefore', () {
+  group('Comparison', () {
+    test('isBefore()', () {
       final earlier = TimeStamp(1000000);
       final later = TimeStamp(2000000);
 
@@ -150,7 +150,7 @@ void main() {
       check(earlier.isBefore(earlier)).isFalse();
     });
 
-    test('isAfter', () {
+    test('isAfter()', () {
       final earlier = TimeStamp(1000000);
       final later = TimeStamp(2000000);
 
@@ -159,7 +159,7 @@ void main() {
       check(earlier.isAfter(earlier)).isFalse();
     });
 
-    test('isAtSameMomentAs', () {
+    test('isAtSameMomentAs()', () {
       final ts1 = TimeStamp(1000000);
       final ts2 = TimeStamp(1000000);
       final ts3 = TimeStamp(2000000);
@@ -168,7 +168,7 @@ void main() {
       check(ts1.isAtSameMomentAs(ts3)).isFalse();
     });
 
-    test('equality operator', () {
+    test('== and hashCode', () {
       final ts1 = TimeStamp(1000000);
       final ts2 = TimeStamp(1000000);
       final ts3 = TimeStamp(2000000);
@@ -179,8 +179,8 @@ void main() {
     });
   });
 
-  group('TimeStamp formatting', () {
-    test('default format (ISO8601)', () {
+  group('Formatting', () {
+    test('default ISO8601 format', () {
       // 2025-03-19 16:38:21 UTC
       final ts = TimeStamp.fromUtcDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 38, second: 21);
@@ -189,7 +189,7 @@ void main() {
       check(ts.toString()).equals('2025-03-19T16:38:21.000Z');
     });
 
-    test('custom format', () {
+    test('custom patterns', () {
       final ts = TimeStamp.fromUtcDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 38, second: 21);
 
@@ -199,8 +199,8 @@ void main() {
     });
   });
 
-  group('Real-world scenarios', () {
-    test('creating timestamp for specific date and calculating difference', () 
{
+  group('Examples', () {
+    test('weekly difference calculation', () {
       // Current date from example: 2025-03-19 16:38:21
       final currentTime = TimeStamp.fromUtcDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 38, second: 21);
@@ -213,7 +213,7 @@ void main() {
       check(difference.inDays).equals(7);
     });
 
-    test('recording event timestamps and calculating duration', () {
+    test('event duration calculation', () {
       // Simulate a sequence of events with timestamps
       final eventStart = TimeStamp.fromUtcDateComponents(
           year: 2025, month: 3, day: 19, hour: 16, minute: 0, second: 0);
@@ -225,4 +225,4 @@ void main() {
       check(duration.inMinutes).equals(30);
     });
   });
-}
\ No newline at end of file
+}
diff --git a/dart/packages/fury-test/test/perf_test/serial_perf_test.dart 
b/dart/packages/fury-test/test/perf_test/serial_perf_test.dart
index 51c02483..ed8aab93 100644
--- a/dart/packages/fury-test/test/perf_test/serial_perf_test.dart
+++ b/dart/packages/fury-test/test/perf_test/serial_perf_test.dart
@@ -86,27 +86,26 @@ void _testPerfDeser(Fury fury, Object? obj,  int times, 
String testName){
 }
 
 void main() {
-  group('Test Performance of Serialization and Deserialization', () {
-
-    test('test serialize simple struct perf', () {
+  group('Serialization & Deserialization Performance', () {
+    test('Serialize simple struct', () {
       Fury fury = Fury(
         refTracking: true,
       );
       fury.register($ComplexObject2, "test.ComplexObject2");
       ComplexObject2 o = ComplexObject2(true,{Int8(-1):Int32(2)});
-      _testPerfSer(fury, o, 1000000, 'test serialize simple struct perf');
+      _testPerfSer(fury, o, 1000000, 'Serialize simple struct');
     });
 
-    test('test deserialize simple struct perf', () {
+    test('Deserialize simple struct', () {
       Fury fury = Fury(
         refTracking: true,
       );
       fury.register($ComplexObject2, "test.ComplexObject2");
       ComplexObject2 o = ComplexObject2(true,{Int8(-1):Int32(2)});
-      _testPerfDeser(fury, o, 1000000, 'test deserialize simple struct perf');
+      _testPerfDeser(fury, o, 1000000, 'Deserialize simple struct');
     });
 
-    test('test serialize medium complex struct perf', () {
+    test('Serialize medium complex struct', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -126,10 +125,10 @@ void main() {
       obj.f10 = 1 / 3.0;
       obj.f11 = Int16List.fromList([1, 2]);
       obj.f12 = [Int16(-1),Int16(4)];
-      _testPerfSer(fury, obj, 1000000, 'test deserialize medium complex struct 
perf');
+      _testPerfSer(fury, obj, 1000000, 'Serialize medium complex struct');
     });
 
-    test('test deserialize medium complex struct perf', () {
+    test('Deserialize medium complex struct', () {
       Fury fury = Fury(
         refTracking: true,
       );
@@ -149,7 +148,7 @@ void main() {
       obj.f10 = 1 / 3.0;
       obj.f11 = Int16List.fromList([1, 2]);
       obj.f12 = [Int16(-1),Int16(4)];
-      _testPerfDeser(fury, obj, 1000000, 'test serialize medium complex struct 
perf');
+      _testPerfDeser(fury, obj, 1000000, 'Deserialize medium complex struct');
     });
 
     // test('test json serialize medium complex struct perf', () {
@@ -198,4 +197,4 @@ void main() {
     //   _testPerfDeser(fury, obj, 1000000, 'test serialize medium complex 
struct perf');
     // });
   });
-}
\ No newline at end of file
+}
diff --git 
a/dart/packages/fury-test/test/perf_test/unit/type_determining_test.dart 
b/dart/packages/fury-test/test/perf_test/unit/type_determining_test.dart
index 85e6c4fb..998a60f4 100644
--- a/dart/packages/fury-test/test/perf_test/unit/type_determining_test.dart
+++ b/dart/packages/fury-test/test/perf_test/unit/type_determining_test.dart
@@ -46,7 +46,7 @@ void testDeterminingDartType() {
     Int8List(10),
     Float32List(10),
     HashSet<int>.from([1, 2, 3]),
-    LinkedHashSet<int>.from([4, 5, 6]),
+    [4, 5, 6],
     TestFuriable(),
   ];
 
@@ -99,7 +99,7 @@ void testDeterminingDartType() {
 }
 
 void main(){
-  test('testDeterminingDartType', () {
+  test('test determining dartType', () {
     testDeterminingDartType();
   });
 }
diff --git a/dart/packages/fury/lib/src/meta/specs/enum_spec.dart 
b/dart/packages/fury/lib/src/meta/specs/enum_spec.dart
index 963061fd..5a498300 100644
--- a/dart/packages/fury/lib/src/meta/specs/enum_spec.dart
+++ b/dart/packages/fury/lib/src/meta/specs/enum_spec.dart
@@ -40,4 +40,13 @@ class EnumSpec extends CustomTypeSpec{
         dartType == other.dartType &&
         values.equals(other.values);
   }
+
+  @override
+  int get hashCode =>
+    Object.hash(
+      runtimeType,
+      dartType,
+      values,
+    );
+
 }
diff --git a/dart/pubspec.lock b/dart/pubspec.lock
index 0423e27e..c3198736 100644
--- a/dart/pubspec.lock
+++ b/dart/pubspec.lock
@@ -1,20 +1,3 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
 # Generated by pub
 # See https://dart.dev/tools/pub/glossary#lockfile
 packages:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to