JuliaGaussianProcesses / JuliaGaussianProcesses/KernelFunctions.jl

test_AD "normal" kernels vs MOKernels

Open
#416 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
275
Forks
41
PR merge metrics
No merged PRs in 30d

Description

https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/pull/263 by @david-vicente introduced separate methods for test_AD for MOKernel - I'm concerned this means that we won't be running the same set of tests for MOKernels.

Maybe that's how it has to be, but then it seems like the type hierarchy isn't quite right - we should obey Liskov substitution principle, right?

This to me seems like a case where overloading the same method isn't really the right thing to do (because it suggests they do the same thing - it's a kernel AD check in either case - but they don't actually seem to check the same things)... now that i've got y'all in a thread, what is your opinion on these ?

Originally posted by @st-- in https://github.com/JuliaGaussianProcesses/KernelFunctions.jl/pull/414#r771854325

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading PR 263 and the discussion quoted from PR 414, then inspect the separate test_AD methods for normal kernels and MOKernel. Determine whether both kernel types should receive equivalent checks and whether the current type hierarchy supports that substitution. Done means the testing and hierarchy approach is agreed and the resulting behavior is covered consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
machine-learning, testing
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.