Add AOC template and supporting files
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…
Reference in New Issue