JL Julia  ·  25 вопросов  ·  ~70 мин  ·  ⏱ Таймер 10:00  ·  Средний  · 

Пакеты и окружения Julia

Практические задания по теме «Пакеты и окружения Julia» требуют сопоставить несколько решений, найти источник ошибки и оценить последствия выбранного подхода. Вопросы требуют читать код, находить границу применимости, выбирать проверяемую правку и отличать свойства Julia от поведения конкретного пакета. В тесте 25 вопросов: 15 заданий с кодом и 10 заданий с математической записью. Все формулировки рассчитаны на Julia 1.12.6; для сторонних библиотек используется явно названный API.

Отвечено: 0 из 25
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На работу отведено 70 минут. После завершения откроются правильные ответы, объяснения и результаты по темам.
Вопрос 1 из 25
Какой механизм Julia определяет поведение строки `project = Dict(`?
D_{direct}\subseteq\mathrm{Project}
JuliaJulia · Описание проекта в Project.toml
using TOML
project = Dict(
    "name" => "SignalLab",
    "uuid" => "11111111-2222-3333-4444-555555555555",
    "version" => "0.3.0",
    "deps" => Dict("DataFrames" => "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"),
    "compat" => Dict("julia" => "1.10, 1.11, 1.12", "DataFrames" => "1.6"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
roundtrip = TOML.parse(read(io, String))
@show roundtrip["name"] roundtrip["compat"]
Вопрос 2 из 25
Какой эксперимент отличит настоящий механизм `project = Dict(` от случайного результата одного запуска?
JuliaJulia · Описание проекта в Project.toml
using TOML
project = Dict(
    "name" => "SignalLab",
    "uuid" => "11111111-2222-3333-4444-555555555555",
    "version" => "0.3.0",
    "deps" => Dict("DataFrames" => "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"),
    "compat" => Dict("julia" => "1.10, 1.11, 1.12", "DataFrames" => "1.6"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
roundtrip = TOML.parse(read(io, String))
@show roundtrip["name"] roundtrip["compat"]
Вопрос 3 из 25
Какую гарантию должна сохранить правка участка с `project = Dict(`?
JuliaJulia · Описание проекта в Project.toml
using TOML
project = Dict(
    "name" => "SignalLab",
    "uuid" => "11111111-2222-3333-4444-555555555555",
    "version" => "0.3.0",
    "deps" => Dict("DataFrames" => "a93c6f00-e57d-5684-b7b6-d8193f3e46c0"),
    "compat" => Dict("julia" => "1.10, 1.11, 1.12", "DataFrames" => "1.6"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
roundtrip = TOML.parse(read(io, String))
@show roundtrip["name"] roundtrip["compat"]
Вопрос 4 из 25
Какой результат приёмочного теста подтвердит корректность участка с `project = Dict(`?
D_{direct}\subseteq\mathrm{Project}
Вопрос 5 из 25
Какой тезис о `project = Dict(` можно честно закрепить в справке?
Вопрос 6 из 25
Какое утверждение точнее всего объясняет участок с `Pkg.activate(@__DIR__)`?
G_{resolved}=\mathrm{Manifest}
JuliaJulia · Фиксация окружения в Manifest.toml
using Pkg
Pkg.activate(@__DIR__)
Pkg.instantiate()
status = Pkg.status(; mode=Pkg.PKGMODE_MANIFEST)
@show Base.active_project()
Вопрос 7 из 25
Что нужно подтвердить отдельным примером для `Pkg.activate(@__DIR__)`?
JuliaJulia · Фиксация окружения в Manifest.toml
using Pkg
Pkg.activate(@__DIR__)
Pkg.instantiate()
status = Pkg.status(; mode=Pkg.PKGMODE_MANIFEST)
@show Base.active_project()
Вопрос 8 из 25
Какое решение устраняет риск вокруг `Pkg.activate(@__DIR__)`, не меняя поведение на допустимых данных?
JuliaJulia · Фиксация окружения в Manifest.toml
using Pkg
Pkg.activate(@__DIR__)
Pkg.instantiate()
status = Pkg.status(; mode=Pkg.PKGMODE_MANIFEST)
@show Base.active_project()
Вопрос 9 из 25
Какой результат приёмочного теста подтвердит корректность участка с `Pkg.activate(@__DIR__)`?
G_{resolved}=\mathrm{Manifest}
Вопрос 10 из 25
Что следует сообщить пользователю библиотеки о поведении `Pkg.activate(@__DIR__)`?
Вопрос 11 из 25
Какое утверждение точнее всего объясняет участок с `compat = TOML.parse(read(io, String))["compat"]`?
V\in[\ell,u)
JuliaJulia · Совместимость
using TOML
project = Dict(
    "compat" => Dict("julia" => "1.10", "CSV" => "0.10", "DataFrames" => "1"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
compat = TOML.parse(read(io, String))["compat"]
ci_versions = (v"1.10", v"1.12")
@show compat ci_versions
Вопрос 12 из 25
Какой контрольный тест лучше всего проверит правило, связанное с `compat = TOML.parse(read(io, String))["compat"]`?
JuliaJulia · Совместимость
using TOML
project = Dict(
    "compat" => Dict("julia" => "1.10", "CSV" => "0.10", "DataFrames" => "1"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
compat = TOML.parse(read(io, String))["compat"]
ci_versions = (v"1.10", v"1.12")
@show compat ci_versions
Вопрос 13 из 25
Какой контракт следует закрепить при переработке строки `compat = TOML.parse(read(io, String))["compat"]`?
JuliaJulia · Совместимость
using TOML
project = Dict(
    "compat" => Dict("julia" => "1.10", "CSV" => "0.10", "DataFrames" => "1"),
)
io = IOBuffer()
TOML.print(io, project)
seekstart(io)
compat = TOML.parse(read(io, String))["compat"]
ci_versions = (v"1.10", v"1.12")
@show compat ci_versions
Вопрос 14 из 25
Как проверить, что новая реализация `compat = TOML.parse(read(io, String))["compat"]` не изменила обещанное пользователю поведение?
V\in[\ell,u)
Вопрос 15 из 25
Какое ограничение стоит прямо указать в документации к участку с `compat = TOML.parse(read(io, String))["compat"]`?
Вопрос 16 из 25
Как нужно интерпретировать `Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))`, не добавляя к коду лишних гарантий?
P_{dev}=\operatorname{path}(P)
JuliaJulia · Локальная разработка
using Pkg
Pkg.activate(temp=true)
Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))
Pkg.instantiate()
@show Base.active_project()
Вопрос 17 из 25
Какой эксперимент отличит настоящий механизм `Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))` от случайного результата одного запуска?
JuliaJulia · Локальная разработка
using Pkg
Pkg.activate(temp=true)
Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))
Pkg.instantiate()
@show Base.active_project()
Вопрос 18 из 25
Какую гарантию должна сохранить правка участка с `Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))`?
JuliaJulia · Локальная разработка
using Pkg
Pkg.activate(temp=true)
Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))
Pkg.instantiate()
@show Base.active_project()
Вопрос 19 из 25
Как проверить, что новая реализация `Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))` не изменила обещанное пользователю поведение?
P_{dev}=\operatorname{path}(P)
Вопрос 20 из 25
Какое утверждение о `Pkg.develop(path=joinpath(@__DIR__, "..", "LocalSolver"))` является переносимым правилом, а не особенностью одного запуска?
Вопрос 21 из 25
Что именно следует из фрагмента с `rethrow()`?
\operatorname{resolve}(G,C)
JuliaJulia · Пограничные случаи
using Pkg
try
    Pkg.instantiate()
catch err
    @error "environment restore failed" project=Base.active_project() exception=(err, catch_backtrace())
    rethrow()
end
Вопрос 22 из 25
Что нужно подтвердить отдельным примером для `rethrow()`?
JuliaJulia · Пограничные случаи
using Pkg
try
    Pkg.instantiate()
catch err
    @error "environment restore failed" project=Base.active_project() exception=(err, catch_backtrace())
    rethrow()
end
Вопрос 23 из 25
Какое решение устраняет риск вокруг `rethrow()`, не меняя поведение на допустимых данных?
JuliaJulia · Пограничные случаи
using Pkg
try
    Pkg.instantiate()
catch err
    @error "environment restore failed" project=Base.active_project() exception=(err, catch_backtrace())
    rethrow()
end
Вопрос 24 из 25
Как проверить, что новая реализация `rethrow()` не изменила обещанное пользователю поведение?
\operatorname{resolve}(G,C)
Вопрос 25 из 25
Что следует сообщить пользователю библиотеки о поведении `rethrow()`?

Ответьте на все 25 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу