import 'package:flutter_test/flutter_test.dart'; import 'package:guru_utils/random/pseudo_random.dart'; // 导入PseudoRandom类的路径 void main() { group('PseudoRandom', () { test('nextInt generates random integers', () { final prng = PseudoRandom(42); final numbers = List.generate(5, (_) => prng.nextInt()); expect(numbers, isNotEmpty); expect(numbers, isNot(containsDuplicates(numbers))); }); test('nextBool generates random booleans', () { final prng = PseudoRandom(42); final bools = List.generate(5, (_) => prng.nextBool()); expect(bools, isNotEmpty); expect(bools, contains(true)); expect(bools, contains(false)); }); test('shuffle shuffles a list', () { final prng = PseudoRandom(42); final originalList = [1, 2, 3, 4, 5]; final shuffledList = List.from(originalList); prng.shuffle(shuffledList); expect(shuffledList, isNotEmpty); expect(shuffledList, isNot(equals(originalList))); expect(shuffledList.length, equals(originalList.length)); expect(shuffledList, containsAll(originalList)); }); }); } // 辅助函数:检查给定的列表是否包含重复元素 bool containsDuplicates(List list) { return list.length != list.toSet().length; }