| ... | @@ -901,3 +901,52 @@ test "sorting a span" { | ... | @@ -901,3 +901,52 @@ test "sorting a span" { |
| 901 | c += 1; | 901 | c += 1; |
| 902 | } | 902 | } |
| 903 | } | 903 | } |
| | 904 | |
| | 905 | test "0 sized struct field" { |
| | 906 | const ally = testing.allocator; |
| | 907 | |
| | 908 | const Foo = struct { |
| | 909 | a: u0, |
| | 910 | b: f32, |
| | 911 | }; |
| | 912 | |
| | 913 | var list = MultiArrayList(Foo){}; |
| | 914 | defer list.deinit(ally); |
| | 915 | |
| | 916 | try testing.expectEqualSlices(u0, &[_]u0{}, list.items(.a)); |
| | 917 | try testing.expectEqualSlices(f32, &[_]f32{}, list.items(.b)); |
| | 918 | |
| | 919 | try list.append(ally, .{ .a = 0, .b = 42.0 }); |
| | 920 | try testing.expectEqualSlices(u0, &[_]u0{0}, list.items(.a)); |
| | 921 | try testing.expectEqualSlices(f32, &[_]f32{42.0}, list.items(.b)); |
| | 922 | |
| | 923 | try list.insert(ally, 0, .{ .a = 0, .b = -1.0 }); |
| | 924 | try testing.expectEqualSlices(u0, &[_]u0{ 0, 0 }, list.items(.a)); |
| | 925 | try testing.expectEqualSlices(f32, &[_]f32{ -1.0, 42.0 }, list.items(.b)); |
| | 926 | |
| | 927 | list.swapRemove(list.len - 1); |
| | 928 | try testing.expectEqualSlices(u0, &[_]u0{0}, list.items(.a)); |
| | 929 | try testing.expectEqualSlices(f32, &[_]f32{-1.0}, list.items(.b)); |
| | 930 | } |
| | 931 | |
| | 932 | test "0 sized struct" { |
| | 933 | const ally = testing.allocator; |
| | 934 | |
| | 935 | const Foo = struct { |
| | 936 | a: u0, |
| | 937 | }; |
| | 938 | |
| | 939 | var list = MultiArrayList(Foo){}; |
| | 940 | defer list.deinit(ally); |
| | 941 | |
| | 942 | try testing.expectEqualSlices(u0, &[_]u0{}, list.items(.a)); |
| | 943 | |
| | 944 | try list.append(ally, .{ .a = 0 }); |
| | 945 | try testing.expectEqualSlices(u0, &[_]u0{0}, list.items(.a)); |
| | 946 | |
| | 947 | try list.insert(ally, 0, .{ .a = 0 }); |
| | 948 | try testing.expectEqualSlices(u0, &[_]u0{ 0, 0 }, list.items(.a)); |
| | 949 | |
| | 950 | list.swapRemove(list.len - 1); |
| | 951 | try testing.expectEqualSlices(u0, &[_]u0{0}, list.items(.a)); |
| | 952 | } |