Add AOC template and supporting files

master
Peter 7 years ago
parent 2f93de662d
commit 66d47e2a49

@ -0,0 +1,4 @@
protocol AOCDay {
var tests: (() -> ()) { get set }
var final: (() -> ()) { get set }
}

@ -0,0 +1,22 @@
//
// Advent of Code 2018 "Day 1: Chronal Calibration"
//
import Foundation
class Chronal {
}
class Day01: AOCDay {
lazy var tests: (() -> ()) = day01Tests
lazy var final: (() -> ()) = day01Final
func day01Tests() {
}
func day01Final() {
let retVal = "None"
print("Answer to part 1 is: \(retVal)")
print("Answer to part 2 is: \(retVal)")
}
}

@ -0,0 +1,22 @@
//
// Advent of Code 2018 "Day 1: Chronal Calibration"
//
import Foundation
class Chronal {
}
class Day01: AOCDay {
lazy var tests: (() -> ()) = day01Tests
lazy var final: (() -> ()) = day01Final
func day01Tests() {
}
func day01Final() {
let retVal = "None"
print("Answer to part 1 is: \(retVal)")
print("Answer to part 2 is: \(retVal)")
}
}

@ -1 +1,36 @@
print("Hello, world!")
//
// Advent of Code 2018
//
import Foundation
let showTests = true
let onlyOneDay = 0
var allTests: [(() -> ())] = []
var allFinal: [(() -> ())] = []
print("Advent of Code 2018")
// Compile list of Tests
allTests.append(Day01().tests)
// Compile list of Answers
allFinal.append(Day01().final)
if onlyOneDay > 0 {
print("\nDay \(onlyOneDay)")
allTests[onlyOneDay-1]()
allFinal[onlyOneDay-1]()
} else {
if showTests {
for day in 1...allTests.count {
print("\nDay \(day)")
allTests[day-1]()
}
}
for day in 1...allFinal.count {
print("\nDay \(day)")
allFinal[day-1]()
}
}

@ -0,0 +1,30 @@
//
// Tools used for mundane stuff
//
import Foundation
// Global function
func XCTAssertEqual(test: String, withExpression isTrue: Bool) {
if (isTrue) {
print("Pass ", terminator: " : ")
} else {
print("* F A I L *", terminator: " : ")
}
print(test)
}
struct Tools {
static func readFile(fromPath path: String) -> String {
var retVal = ""
do {
let data = try NSString(contentsOfFile: path, encoding: String.Encoding.ascii.rawValue)
retVal = data as String
}
catch let error as NSError {
print("Tools readFile(fromPath: \"\(path)\") error: \(error)")
}
return retVal
}
}
Loading…
Cancel
Save