authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-11-18 19:54:37-05:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-11-18 19:54:37-05:00
log9eed0d3603c9ff04902e199ef358aba4bd7489f3
treead06dff8c5c562e6891a894dc31ef481424236dc
parent828abe046f965371aabfe53d57b4a93956531707
signaturelock-open Commit is signed but in an unrecognized format.

add regression test case. closes #2889


2 files changed, 32 insertions(+), 0 deletions(-)

test/stage1/behavior.zig+1
...@@ -32,6 +32,7 @@ comptime {...@@ -32,6 +32,7 @@ comptime {
32 _ = @import("behavior/bugs/2346.zig");32 _ = @import("behavior/bugs/2346.zig");
33 _ = @import("behavior/bugs/2578.zig");33 _ = @import("behavior/bugs/2578.zig");
34 _ = @import("behavior/bugs/2692.zig");34 _ = @import("behavior/bugs/2692.zig");
35 _ = @import("behavior/bugs/2889.zig");
35 _ = @import("behavior/bugs/3007.zig");36 _ = @import("behavior/bugs/3007.zig");
36 _ = @import("behavior/bugs/3046.zig");37 _ = @import("behavior/bugs/3046.zig");
37 _ = @import("behavior/bugs/3112.zig");38 _ = @import("behavior/bugs/3112.zig");
test/stage1/behavior/bugs/2889.zig created+31
...@@ -0,0 +1,31 @@
1const std = @import("std");
2
3const source = "A-";
4
5fn parseNote() ?i32 {
6 const letter = source[0];
7 const modifier = source[1];
8
9 const semitone = blk: {
10 if (letter == 'C' and modifier == '-') break :blk @as(i32, 0);
11 if (letter == 'C' and modifier == '#') break :blk @as(i32, 1);
12 if (letter == 'D' and modifier == '-') break :blk @as(i32, 2);
13 if (letter == 'D' and modifier == '#') break :blk @as(i32, 3);
14 if (letter == 'E' and modifier == '-') break :blk @as(i32, 4);
15 if (letter == 'F' and modifier == '-') break :blk @as(i32, 5);
16 if (letter == 'F' and modifier == '#') break :blk @as(i32, 6);
17 if (letter == 'G' and modifier == '-') break :blk @as(i32, 7);
18 if (letter == 'G' and modifier == '#') break :blk @as(i32, 8);
19 if (letter == 'A' and modifier == '-') break :blk @as(i32, 9);
20 if (letter == 'A' and modifier == '#') break :blk @as(i32, 10);
21 if (letter == 'B' and modifier == '-') break :blk @as(i32, 11);
22 return null;
23 };
24
25 return semitone;
26}
27
28test "fixed" {
29 const result = parseNote();
30 std.testing.expect(result.? == 9);
31}