169 похожих чатов

Да, я дошёл до некоего предела,

val data: = listOf(
(listOf ("buy" to 2)) to (listOf(50, 465, 100, 8, 557) to "I have enough resources, making you a coffee!"),
(listOf("buy" to 2, "buy" to 2)) to (listOf(50, 465, 100, 8, 557) to "Sorry, not enough water!"),
(listOf("buy" to 2, "buy" to 2, "fill" to listOf(1000, 0, 0, 0)) to (listOf(1050, 465, 100, 8, 557) to ""),
(listOf("buy" to 2, "buy" to 2, "fill" to listOf(1000, 0, 0, 0)), "buy" to 2) to (listOf(700, 390, 80, 7, 564) to "I have enough resources, making you a coffee!")
// (listOf("buy" to 2, "buy" to 2, "fill" to listOf(1000, 0, 0, 0)), "buy" to 2, "take" to "") to (listOf(700, 390, 80, 7, 564) to "I gave you $564"),
)

здесь уже то ли я не могу уследить за скобками, то ли котлин путается и не может сконструировать то, что я хочу

Есть запрос на DSL для тестовых данных
Чем здесь в котлине для меня богато?

7 ответов

15 просмотров

Я уже в принципе ответил на это в старте. И собственно вы уперлись ровно в ту стенку, о которой я предупреждал. Динамическое сопоставление всего со всем - это комбинаторный взрыв. Попробуйте продумать логику.

-=LevT=-- Автор вопроса
Alexander Nozik
Я уже в принципе ответил на это в старте. И собств...

Логика состоит в том, что мне нужен максимально компактный (ради человекочитаемости и быстрых правок) DSL для динамического сопоставления expected и actual в короткоживущих тестах. Раз уж идеоматический to не масштабируется В принципе, data классы тоже такой DSL - только компактностью он не отличается.. Для моих целей так, середнячок. Я верю, что в не предназначенном для поддержки коде возможно ужать лучше

можете сделать как-то так.я не смог понять что у вас там в тестах именно нужно, поэтому имена возможно не подходящие для вашего кейса, но идея есть val data = tests { test(...) { ... } expect ... }.toRaw() Upd.: сначала я подумал, что у вас там дата, сейчас лучше. Ну и если не нужно List<...> получать в итоге в дате, то можно прям так по дсл моделям и смотреть

-=LevT=-- Автор вопроса
Aλex Sokol
можете сделать как-то так.я не смог понять что у в...

Благодарю. Можно вот это "можно прям так по дсл моделям и смотреть" - развернуть для новичка? Я котлин только начал ковырять в этом уходящем месяце

-=LevT=-
Благодарю. Можно вот это "можно прям так по дсл ...

ну вы хотите из этого собирать List по которому потом индекс делаете, это что-то типа List<List<Pair<*, *>>>. в когда вы будете делать dsl, у вас будут какие-то модели, которые вы будете настраивать, типо class MyDsl { val tests: MutableList<Test> = ... fun test(builder: Test.() -> Unit) { tests += Test().apply(builder) } }

-=LevT=-- Автор вопроса
Aλex Sokol
ну вы хотите из этого собирать List по которому по...

Дело в том, что я никогда ещё не делал никаких dsl-ей. Только слышал buzzwords "Kotlin DSL" и видел единственный результат движухи: build.gradle.kts Безусловно, я не прочь добраться до их делания, спасибо: по "kotlin dsl model" уже нагугливается что-то кроме градла. Но тестовыми данными жонглировать я хочу вот прям сейчас, потому искал готовый DSL на эту тему. Ну нет так нет...

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта