Skip to content

Instantly share code, notes, and snippets.

View skywall's full-sized avatar

Lukáš Sztefek skywall

View GitHub Profile
@skywall
skywall / philosophers.py
Last active October 8, 2022 16:43
Dining philosophers (multiprocess with tqdm)
import multiprocessing
import random
import time
from multiprocessing import Process
import tqdm
ITERATIONS = 10
PHILOSOPHERS_CNT = 5
@skywall
skywall / TicketMachineTest_CustomFactory.kt
Last active November 8, 2020 09:12
TicketMachineTest - Custom Factory
class TicketMachineTest {
private val printerMock = mockk<Printer>(relaxed = true)
@Test
fun `given ticket machine when adult ticket selected and paid then ticket printed`() {
val ticketMachine = DaggerTestTicketMachineComponent.factory()
.create(printerMock)
.ticketMachine
@skywall
skywall / TestInjection_CustomFactory.kt
Created November 7, 2020 21:15
TestInjection - Custom Factory
@Singleton
@Component(modules = [
TicketMachineModule::class,
])
interface TestTicketMachineComponent {
@Component.Factory
interface Factory {
fun create(
@BindsInstance printer: Printer
@skywall
skywall / TicketMachineTest_SwitchedModule.kt
Created November 7, 2020 21:14
TicketMachineTest - Switched Module
class TicketMachineTest {
private val printerMock = mockk<Printer>(relaxed = true)
@Test
fun `given ticket machine when adult ticket selected and paid then ticket printed`() {
val ticketMachine = DaggerTestTicketMachineComponent.builder()
.testPrinterModule(TestPrinterModule(printerMock))
.build()
.ticketMachine
@skywall
skywall / TestInjection_SwitchedModule.kt
Created November 7, 2020 21:13
TestInjection - Switched Module
@Module
class TestPrinterModule(private val printer: Printer) {
@Provides
@Singleton
fun printer() = printer
}
@Singleton
@Component(modules = [
@skywall
skywall / TicketMachineTest_IndependentModule.kt
Created November 7, 2020 21:09
TicketMachineTest - Independent Module
class TicketMachineTest {
private val printerMock = mockk<Printer>(relaxed = true)
@Test
fun `given ticket machine when adult ticket selected and paid then ticket printed`() {
val ticketMachine = DaggerTicketMachineComponent.builder()
.printerModule(TestPrinterModule(printerMock))
.build()
.ticketMachine
@skywall
skywall / TestPrinterModule_IndependentModule.kt
Created November 7, 2020 21:08
TestPrinterModule - Independent Module
class TestPrinterModule(private val printer: Printer) : PrinterModule() {
override fun printer(display: Display) = printer
}
@skywall
skywall / TicketMachineInstantiation_IndependentModule.kt
Last active November 7, 2020 21:12
TicketMachine - Instantiation - Independent Module
val ticketMachine = DaggerTicketMachineComponent.builder()
.printerModule(PrinterModule())
.build()
.ticketMachine
@skywall
skywall / Injection_IndependentModule.kt
Last active November 7, 2020 21:12
Injection - Independent Module
@Module
open class PrinterModule {
@Provides
@Singleton
open fun printer(display: Display): Printer = Printer(display)
}
@Module
class TicketMachineModule {
@skywall
skywall / TicketMachineInstantiation_Naive.kt
Last active November 7, 2020 21:07
TicketMachine - Instantiation - Naive
val ticketMachine = DaggerTicketMachineComponent.create()
.ticketMachine