import 'package:binary_search_tree/binary_search_tree.dart'; import 'package:test/test.dart'; void main() { group('BinarySearchTree', () { test('data is retained', () { final bst = BinarySearchTree('4'); expect(bst.root.data, equals('4')); }, skip: false); group('insert data at proper node', () { test('smaller number at left node', () { final bst = BinarySearchTree('4')..insert('2'); expect(bst.root.data, equals('4')); expect(bst.root.left!.data, equals('2')); }, skip: false); test('same number at left node', () { final bst = BinarySearchTree('4')..insert('4'); expect(bst.root.data, equals('4')); expect(bst.root.left!.data, equals('4')); }, skip: false); test('greater number at right node', () { final bst = BinarySearchTree('4')..insert('5'); expect(bst.root.data, equals('4')); expect(bst.root.right!.data, equals('5')); }, skip: false); test('can create complex tree', () { final bst = BinarySearchTree('4') ..insert('2') ..insert("6") ..insert("1") ..insert("3") ..insert("5") ..insert("7"); expect(bst.root.data, equals('4')); expect(bst.root.left!.data, equals('2')); expect(bst.root.left!.left!.data, equals('1')); expect(bst.root.left!.right!.data, equals('3')); expect(bst.root.right!.data, equals('6')); expect(bst.root.right!.left!.data, equals('5')); expect(bst.root.right!.right!.data, equals('7')); }, skip: false); }); group('can sort data', () { test('can sort single number', () { final bst = BinarySearchTree('2'); expect(bst.sortedData, equals(['2'])); }, skip: false); test('can sort if second number is smaller than first', () { final bst = BinarySearchTree('2')..insert('1'); expect(bst.sortedData, equals(['1', '2'])); }, skip: false); test('can sort if second number is same as first', () { final bst = BinarySearchTree('2')..insert('2'); expect(bst.sortedData, equals(['2', '2'])); }, skip: false); test('can sort if second number is greater than first', () { final bst = BinarySearchTree('2')..insert('3'); expect(bst.sortedData, equals(['2', '3'])); }, skip: false); test('can sort complex tree', () { final bst = BinarySearchTree('2') ..insert("1") ..insert("3") ..insert("6") ..insert("7") ..insert("5"); expect(bst.sortedData, equals(['1', '2', '3', '5', '6', '7'])); }, skip: false); }); }); }