package day_09

import "core:testing"

@(test)
task1_test :: proc(t: ^testing.T) {
	input := parse_input_file("../input/day_09_test.txt")
	defer free_input(&input)
	expected: Result1 = 50

	print_input(input)

	result := run_task1(input, 10)
	testing.expect_value(t, result, expected)
}

@(test)
task2_test :: proc(t: ^testing.T) {
	input := parse_input_file("../input/day_09_test.txt")
	defer free_input(&input)
	expected: Result2 = 24

	result := run_task2(input)
	testing.expect_value(t, result, expected)
}

/*
@(test)
task2_intersection_test :: proc(t: ^testing.T) {
	tests := []struct {
		edges:  [2]Edge,
		expect: bool,
	} {
		{{{a = {2, 1}, b = {2, 5}}, {a = {0, 3}, b = {4, 3}}}, true},
		{{{a = {0, 3}, b = {4, 3}}, {a = {2, 1}, b = {2, 5}}}, true},
		{{{a = {5, 0}, b = {5, 10}}, {a = {0, 7}, b = {10, 7}}}, true},
		{{{a = {2, 1}, b = {2, 5}}, {a = {1, 3}, b = {6, 3}}}, true},
		{{{a = {2, 1}, b = {2, 5}}, {a = {2, 3}, b = {7, 3}}}, true},
		{{{a = {2, 1}, b = {2, 5}}, {a = {2, 1}, b = {7, 1}}}, false},
		{{{a = {2, 1}, b = {2, 5}}, {a = {2, 5}, b = {7, 5}}}, false},
		{{{a = {7, 1}, b = {2, 1}}, {a = {2, 1}, b = {2, 5}}}, false},
		{{{a = {0, 3}, b = {5, 3}}, {a = {2, 3}, b = {7, 3}}}, false},
		{{{a = {2, 1}, b = {2, 5}}, {a = {2, 3}, b = {2, 7}}}, false},
		{{{a = {2, 1}, b = {2, 10}}, {a = {2, 3}, b = {2, 5}}}, false},
		{{{a = {2, 1}, b = {2, 5}}, {a = {3, 1}, b = {3, 5}}}, false},
		{{{a = {0, 3}, b = {5, 3}}, {a = {0, 4}, b = {5, 4}}}, false},
		{{{a = {2, 5}, b = {2, 8}}, {a = {0, 3}, b = {4, 3}}}, false},
		{{{a = {0, 3}, b = {1, 3}}, {a = {2, 1}, b = {2, 5}}}, false},
		{{{a = {2, 3}, b = {2, 3}}, {a = {2, 1}, b = {2, 5}}}, false},
		{{{a = {2, 3}, b = {2, 3}}, {a = {0, 3}, b = {5, 3}}}, true},
	}

	for tst in tests {
		testing.expect_value(t, edge_intersection(tst.edges[0], tst.edges[1]), tst.expect)
	}
}
*/