All Projects → hughjdavey → aoc-kotlin-starter

hughjdavey / aoc-kotlin-starter

Licence: CC0-1.0 License
Starter template for solving Advent of Code in Kotlin

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to aoc-kotlin-starter

laravel-startkit
Laravel Admin Dashboard, Admin Template with Frontend Template, for scalable Laravel projects. It is to save your time when You start with new scalable Laravel projects with many features Bootstrap, cooreui, infyom admin Generator, roles and permissions, translatable models, spatie media and much more
Stars: ✭ 55 (+266.67%)
Mutual labels:  starter-template, starter-project
materializecss starter
A Starter Boilerplate for Materializecss, ionicons, font-awesome and Animatecss
Stars: ✭ 58 (+286.67%)
Mutual labels:  starter-template, starter-project
sass-starter-pack
Sass starter files using Gulp v4.0.0 🔥
Stars: ✭ 34 (+126.67%)
Mutual labels:  starter-template, starter-project
dotnet-web-api-boilerplate
A boilerplate / starter template for Web API server based on ASP .Net.
Stars: ✭ 17 (+13.33%)
Mutual labels:  starter-template, starter-project
run-aspnetcore-basics retired
One Solution - One Project for web application development with Asp.Net Core & EF.Core. Only one web application project which used aspnetcore components; razor pages, middlewares, dependency injection, configuration, logging. To create websites with minimum implementation of asp.net core based on HTML5, CSS, and JavaScript. You can use this boi…
Stars: ✭ 15 (+0%)
Mutual labels:  starter-template, starter-project
botfuel-sample-starter
Starter bot using Botfuel Dialog
Stars: ✭ 24 (+60%)
Mutual labels:  starter-template, starter-project
react-typescript-material-ui-with-auth-starter
React + Material UI + Auth starter using TypeScript
Stars: ✭ 27 (+80%)
Mutual labels:  starter-template, starter-project
enlite-starter
Enlite Starter - React Dashboard Starter Template with Firebase Auth
Stars: ✭ 28 (+86.67%)
Mutual labels:  starter-template, starter-project
nodejs-hackathon-boilerplate-starter-kit
Just a Hackaton/Startup Full-stack node.js starter
Stars: ✭ 37 (+146.67%)
Mutual labels:  starter-template, starter-project
angular-open-source-starter
This is a starter project for creating open-source libraries for Angular. It is a full fledged Angular workspace with demo application and easy library addition. It is designed to be used for open-sourcing libraries on Github and has everything you'd need ready for CI, code coverage, SSR testing, StackBlitz demo deployment and more.
Stars: ✭ 212 (+1313.33%)
Mutual labels:  starter-template, starter-project
react-redux-immutable-webpack-ssr-starter
React + React-Router 4 + Redux + ImmutableJS + Bootstrap + webpack 3 with with Server side rendering, Hot Reload and redux-devtools STARTER
Stars: ✭ 21 (+40%)
Mutual labels:  starter-template, starter-project
SampleProject
A starter project for Sample Project in Objective C. Objective C version of https://github.com/xeieshan/SwiftySampleProject
Stars: ✭ 31 (+106.67%)
Mutual labels:  starter-template, starter-project
eleventy solo starter njk
Further development suspended as of 2021-09-11. Please refer instead to https://www.11ty.dev/docs/starter/ for a wide selection of other Eleventy starter sets.
Stars: ✭ 22 (+46.67%)
Mutual labels:  starter-template
awrora-starter
Landing page template built with one of most popular javascript library Vue.JS, Vuetify (Material Design) and Nuxt.JS with SSR.
Stars: ✭ 38 (+153.33%)
Mutual labels:  starter-project
bootstrap-gulp-starter-template
Bootstrap 4 + Gulp 4 + Panini for improve front-end development workflow
Stars: ✭ 67 (+346.67%)
Mutual labels:  starter-project
gatsby-starter-paradigmshift
Gatsby.js V2 starter template based on Paradigm Shift by HTML5 UP
Stars: ✭ 16 (+6.67%)
Mutual labels:  starter-template
asap
A cmake starter project for C++ with basic infrastructure including platform detection, compiler detection, assertions..., and a complete build lifecycle. Portable across Linux, OS X and Windows.
Stars: ✭ 39 (+160%)
Mutual labels:  starter-project
advent2019
Advent of Code 2019 solutions
Stars: ✭ 43 (+186.67%)
Mutual labels:  advent-of-code
aspnet-mvc5-starter-template
Asp.Net MVC 5 Starter Kit is a S.O.L.I.D, clean and globalized template with all the necessary boilerplate, ready to go.
Stars: ✭ 39 (+160%)
Mutual labels:  starter-project
advent-of-code
My solutions for Advent of Code
Stars: ✭ 32 (+113.33%)
Mutual labels:  advent-of-code

aoc-kotlin-starter

Starter template for solving Advent of Code in Kotlin

Features

  • Gradle setup so you can run a specific day or all days on the command line (see Running below)
  • Timings for each part of each day
  • Input for each day automatically exposed in String and List form
  • Junit and Hamcrest test libraries included (see Testing below)
  • Starter .gitignore

Running

Project is already setup with gradle. To run the app:

  • Navigate to top-level directory on the command line
  • Run ./gradlew run to run all days
  • Run ./gradlew run --args $DAY where $DAY is an integer to run a specific day

Testing

Project includes Junit and Hamcrest and a stub unit test to get you going. To run all tests:

  • Navigate to top-level directory on the command line
  • Run ./gradlew test
  • Add --info, --debug or --stacktrace flags for more output
Test input

By default, instantiations of Day classes in tests will use the input files in src/test/resources, not those in src/main/resources. This hopefully gives you flexibility - you could either just copy the real input into src/test/resources if you want to test the actual answers, or you could add a file of test data based on the examples given on the Advent of Code description for the day. The stub Day1Test class shows a test of the functionality of Day1 where the test input differs from the actual input.

Architecture

  • Inputs go into src/main/resources and follow the naming convention input_day_X.txt
  • Solutions go into src/main/kotlin/days and extend the Day abstract class, calling its constructor with their day number
  • Solutions follow the naming convention DayX
  • It is assumed all solutions will have two parts but share the same input
  • Input is exposed in the solution classes in two forms - inputList and inputString
  • Day 1 solution class and input file are stubbed as a guide on how to extend the project, and how you can use the inputList and inputString mentioned above
  • To get started simply replace src/main/input_day_1.txt with the real input and the solutions in Day1 with your own
  • A Day 1 test class also exists, mostly to show a few hamcrest matchers, and how test input files can differ from actual ones (see Test input section above). To get started with testing you can edit this class, and the input file at src/test/resources/input_day_1.txt
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].