hey
commit
4ec36e3cf0
@ -0,0 +1 @@
|
|||||||
|
zig-cache
|
@ -0,0 +1,6 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() void {
|
||||||
|
std.debug.print("Hello, {}!\n", .{"World"});
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,94 @@
|
|||||||
|
const expect = @import("std").testing.expect;
|
||||||
|
|
||||||
|
test "if statement" {
|
||||||
|
const a = true;
|
||||||
|
var x: u16 = 0;
|
||||||
|
if (a) {
|
||||||
|
x += 1;
|
||||||
|
} else {
|
||||||
|
x += 2;
|
||||||
|
}
|
||||||
|
expect(x == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "if statement expression" {
|
||||||
|
const a = true;
|
||||||
|
var x: u16 = 0;
|
||||||
|
x += if (a) 1 else 2;
|
||||||
|
expect(x == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "while" {
|
||||||
|
var i: u8 = 2;
|
||||||
|
while (i < 100) {
|
||||||
|
i *= 2;
|
||||||
|
}
|
||||||
|
expect(i == 128);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "while with continue expression" {
|
||||||
|
var sum: u8 = 0;
|
||||||
|
var i: u8 = 1;
|
||||||
|
while (i <= 10) : (i += 1) {
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
expect(sum == 55);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "while with continue" {
|
||||||
|
var sum: u8 = 0;
|
||||||
|
var i: u8 = 0;
|
||||||
|
while (i <= 3) : (i += 1) {
|
||||||
|
if (i == 2) continue;
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
expect(sum == 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "while with break" {
|
||||||
|
var sum: u8 = 0;
|
||||||
|
var i: u8 = 0;
|
||||||
|
while (i <= 3) : (i += 1) {
|
||||||
|
if (i == 2) break;
|
||||||
|
sum += i;
|
||||||
|
}
|
||||||
|
expect(sum == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "for" {
|
||||||
|
const string = [_]u8{ 'a', 'b', 'c' };
|
||||||
|
|
||||||
|
for (string) |character, index| {}
|
||||||
|
for (string) |character| {}
|
||||||
|
for (string) |_, index| {}
|
||||||
|
for (string) |_| {}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn addFive(x: u32) u32 {
|
||||||
|
return x + 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
test "function" {
|
||||||
|
const y = addFive(0);
|
||||||
|
expect(@TypeOf(y) == u32);
|
||||||
|
expect(y == 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn fibonacci(n: u16) u16 {
|
||||||
|
if (n == 0 or n == 1) return n;
|
||||||
|
return fibonacci(n - 1) + fibonacci(n - 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "function recursion" {
|
||||||
|
const x = fibonacci(10);
|
||||||
|
expect(x == 55);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "defer" {
|
||||||
|
var x: i16 = 5;
|
||||||
|
{
|
||||||
|
defer x += 2;
|
||||||
|
expect(x == 5);
|
||||||
|
}
|
||||||
|
expect(x == 7);
|
||||||
|
}
|
Loading…
Reference in New Issue