Skip to content

Commit

Permalink
Feat: added number clamp
Browse files Browse the repository at this point in the history
Closes #56
  • Loading branch information
Akalanka47000 committed Oct 15, 2023
1 parent 66e2bd7 commit 79b0757
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 20 deletions.
27 changes: 27 additions & 0 deletions packages/flodash/lib/modules/number/clamp.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/// Clamps number within the inclusive lower and upper bounds.
///
/// Arguments
///
/// - number (num): The number to clamp.
/// - [lower] (num): The lower bound.
/// - upper (num): The upper bound.
///
/// Returns
///
/// - (num): Returns the clamped number.
dynamic clamp(num number, num? lower, [num? upper]) {
if (upper == null) {
upper = lower;
if (number > upper!) {
return upper;
}
return number;
} else {
if (number > upper) {
return upper;
} else if (number < lower!) {
return lower;
}
return number;
}
}
1 change: 1 addition & 0 deletions packages/flodash/lib/modules/number/main.dart
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
export 'clamp.dart';
export 'random.dart';
2 changes: 1 addition & 1 deletion packages/flodash/lib/modules/string/starts_with.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
///Checks if string starts with the given target string.
/// Checks if string starts with the given target string.
///
/// Arguments
///
Expand Down
38 changes: 19 additions & 19 deletions packages/flodash/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ packages:
dependency: transitive
description:
name: collection
sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687
sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c"
url: "https://pub.dev"
source: hosted
version: "1.17.2"
version: "1.17.1"
fake_async:
dependency: transitive
description:
Expand All @@ -59,22 +59,30 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
url: "https://pub.dev"
source: hosted
version: "0.6.7"
matcher:
dependency: transitive
description:
name: matcher
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb"
url: "https://pub.dev"
source: hosted
version: "0.12.16"
version: "0.12.15"
material_color_utilities:
dependency: transitive
description:
name: material_color_utilities
sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41"
sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724
url: "https://pub.dev"
source: hosted
version: "0.5.0"
version: "0.2.0"
meta:
dependency: transitive
description:
Expand All @@ -100,10 +108,10 @@ packages:
dependency: transitive
description:
name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250
url: "https://pub.dev"
source: hosted
version: "1.10.0"
version: "1.9.1"
stack_trace:
dependency: transitive
description:
Expand Down Expand Up @@ -140,10 +148,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8"
sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb
url: "https://pub.dev"
source: hosted
version: "0.6.0"
version: "0.5.1"
vector_math:
dependency: transitive
description:
Expand All @@ -152,13 +160,5 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.1.4"
web:
dependency: transitive
description:
name: web
sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10
url: "https://pub.dev"
source: hosted
version: "0.1.4-beta"
sdks:
dart: ">=3.1.0-185.0.dev <3.7.0"
dart: ">=3.0.0-0 <3.7.0"
22 changes: 22 additions & 0 deletions packages/flodash/test/modules/number/clamp_test.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import 'package:flodash/flodash.dart' as flodash;

import 'package:flutter_test/flutter_test.dart';

main() {
test('lower', () {
expect(flodash.clamp(-10, -5, 5), equals(-5));
});
test('upper', () {
expect(flodash.clamp(10, -5, 5), equals(5));
});
test('in range', () {
expect(flodash.clamp(3, -5, 5), equals(3));
});
test('2 arguments - upper', () {
expect(flodash.clamp(12, 6), equals(6));
});
test('2 arguments - in range', () {
expect(flodash.clamp(4, 6), equals(4));
expect(flodash.clamp(-500, 5), equals(-500));
});
}

0 comments on commit 79b0757

Please sign in to comment.