aboutsummaryrefslogtreecommitdiff
path: root/lib/std/math.zig
diff options
context:
space:
mode:
authorJacob Young <jacobly0@users.noreply.github.com>2024-04-13 22:16:27 -0400
committerJacob Young <jacobly0@users.noreply.github.com>2024-04-14 21:26:08 -0400
commit425e38b6e0601e12329f93b2e94c76c1da300b8e (patch)
tree2aef938ebad6036c08482e566b3cc3c6404390f6 /lib/std/math.zig
parente45bdc6bd6e47ec3f7a06dbb48f24e842bf43a0d (diff)
downloadzig-425e38b6e0601e12329f93b2e94c76c1da300b8e.tar.gz
zig-425e38b6e0601e12329f93b2e94c76c1da300b8e.zip
WindowsSdk: fix for new x86_64-windows CI
Diffstat (limited to 'lib/std/math.zig')
-rw-r--r--lib/std/math.zig25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/std/math.zig b/lib/std/math.zig
index 19dd82ec67..858e9243bf 100644
--- a/lib/std/math.zig
+++ b/lib/std/math.zig
@@ -1588,6 +1588,31 @@ pub const Order = enum {
try testing.expect(Order.invert(order(-1, 0)) == .gt);
}
+ pub fn differ(self: Order) ?Order {
+ return if (self != .eq) self else null;
+ }
+
+ test differ {
+ const neg: i32 = -1;
+ const zero: i32 = 0;
+ const pos: i32 = 1;
+ try testing.expect(order(zero, neg).differ() orelse
+ order(pos, zero) == .gt);
+ try testing.expect(order(zero, zero).differ() orelse
+ order(zero, zero) == .eq);
+ try testing.expect(order(pos, pos).differ() orelse
+ order(neg, zero) == .lt);
+ try testing.expect(order(zero, zero).differ() orelse
+ order(pos, neg).differ() orelse
+ order(neg, zero) == .gt);
+ try testing.expect(order(pos, pos).differ() orelse
+ order(pos, pos).differ() orelse
+ order(neg, neg) == .eq);
+ try testing.expect(order(zero, pos).differ() orelse
+ order(neg, pos).differ() orelse
+ order(pos, neg) == .lt);
+ }
+
pub fn compare(self: Order, op: CompareOperator) bool {
return switch (self) {
.lt => switch (op) {