Repository navigation
Native tests: no NOTYET left (NA-JVM or read through the Python API) - #73
Merged
Merged
Conversation
…through the Python API The 31 NOTYET skips of the native parity run were calls that are JVM-only by design (get_java_database, a Java object a Schema method returns) reached by shared tests, so a final release (--max-notyet 0) would have been blocked. Raise site: needs_jvm() replaces not_yet() for those calls; the message says the call needs the JVM build (arcadedb-jvm) instead of "not yet". not_yet() stays for a real gap. Tests: the ones whose purpose is the Java object (the bridge's float-vector decision, the plain JPype path, a Java RID set, the deprecated Java newLightEdge, metadata fields only the Java index metadata carries) get NA-JVM rows. The ones that used the Java object only to read a value now read it through VectorIndex.get_metadata() (test_create_index_with_rich_metadata_sql, test_sql_metadata_gives_the_helper_defaults, the hierarchy and quantization part of test_add_hierarchy_defaults_differ_between_sql_and_python, both product quantization metadata tests), and scalar and lone-null binding get shared round-trip tests beside the NA-JVM comparisons with the plain path. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…k-format database.py The fused PQ build test still read the Java field (.fusedPQ) from the dict that _metadata() returns now, which failed on the JVM build. black re-wraps the import line that needs_jvm lengthened. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
A bare isort run (no --profile black) had re-wrapped the importer import; only the needs_jvm changes remain in the file's diff. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The native parity run on this branch is green but reports 31 NOTYET skips, and the release workflow runs final releases with
--max-notyet 0, so they would block the first final nativearcadedbrelease. After this change none of them is a NOTYET: each is either a correct NA-JVM (the test needs a JVM by design) or a test that now runs on both builds.Raise site
get_java_database,get_java_documentand the Java object aSchemamethod returns are JVM-only by design (which-package.adoc, installation.adoc). They now raiseNotOnNativeYetthrough a newneeds_jvm()whose message says the call needs the JVM build (thearcadedb-jvmpackage) instead of "is not on the native backend yet".not_yet()stays for a real gap (none today). The exception class and the NOTYET report are unchanged.Tests
Relabelled as NA-JVM (rows in
NATIVE_NA_JVM_TESTS, the purpose of the test is the Java object):test_float_vector_bulk.py: the fiveTestDecisiontests (the bridge's float-vector decision on the Java database, buildsFloatVectors.Matrix; 11 test items),test_convert_python_to_java_float32_is_one_float_array(asserts a Javafloat[]),test_the_set_holds_one_rid_per_string(the Java RID set of_build_allowed_rids_set).test_percall_calls.py: the four tests that compare the glued path with the plain JPype path (get_java_database,Database._java_parameters,core._through_bridge).test_light_edge_and_view_known_issues.py: the two tests that need light edges in an undeclared edge type (4 items). Only the deprecated JavaVertex.newLightEdgewrites them;CREATE EDGEand the graph batch write regular edges there, so no statement can build that graph.test_vector_sql.py:test_create_index_with_native_int8_encoding_sqlandtest_graph_build_settings_reach_the_index, which readencoding,neighborOverflowFactorandalphaDiversityRelaxationfrom the Java index metadata.VectorIndex.get_metadata()does not return those three and the native library does not expose them, so the native side would need a Java change (themetadatareply ofarcadedb_n_vindex) to run them; not done here.Rewritten to run on both builds (the Java object was only a means to read a value):
test_vector_sql.py:test_create_index_with_rich_metadata_sql,test_sql_metadata_gives_the_helper_defaults, and the hierarchy and quantization part oftest_add_hierarchy_defaults_differ_between_sql_and_pythonnow readschema.get_vector_index(...).get_metadata(). ItsneighborOverflowFactor/alphaDiversityRelaxationdefaults moved into a new test,test_sql_graph_settings_default_to_the_engines, which is NA-JVM for the reason above.test_vector_product_quantization.py: the_metadatahelper readsget_metadata(); both metadata tests run on native (including the 26.11.1 branch withrerank_oversampleandfused_pq).test_percall_calls.py: shared teststest_named_scalars_round_trip,test_positional_scalars_round_tripandtest_a_lone_null_or_lone_java_array_binds_as_the_value(split from the plain-path test) check the bound values without the plain path.Per file on native (
ARCADEDB_BACKEND=native, source checkout, imagenative-lib/nyet-on-cb, 26.10.2 engine)JClassand Java-set tests; in the wheel the JPype stub reports one of them as NOTYET)Total for the five files: 130 passed, 36 NA-JVM, 0 NOTYET, 0 failed. The image is the newest one that exports
arcadedb_n_vindex, which this branch's glue calls;p04-portis newer but lacks it (11 vector tests fail there with an undefined symbol), so it does not match this glue.JVM backend
Same five files, source checkout,
ARCADEDB_BACKENDunset, jars from~/build-scratch/bridge-jars-port-topk(engine 26.11.1-SNAPSHOT, bridge jar of an older branch) and the system JDK 25 as the bundled JRE:Checks
scripts/check_no_embedded_name.pyok; black and isort clean on the touched files; bandit 1.9.4 at--severity-level low --confidence-level low: 0 issues.🤖 Generated with Claude Code