From 0724c14cd926eb0196c4406783d628dacba22aa4 Mon Sep 17 00:00:00 2001 From: Moelf Date: Fri, 18 Oct 2024 00:15:34 +0200 Subject: [PATCH] more tests more tests fix print everything in PyROOT add coverage add coverage --- .github/workflows/cvmfs.yml | 8 +++++++- src/RNTuple/Writing/TFileWriter.jl | 5 +---- test/RNTupleWriting/output_sample.jl | 16 ++++++++++------ test/RNTupleWriting/test1.py | 12 +++++++++--- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/.github/workflows/cvmfs.yml b/.github/workflows/cvmfs.yml index bd519dec..5bec39be 100644 --- a/.github/workflows/cvmfs.yml +++ b/.github/workflows/cvmfs.yml @@ -28,9 +28,15 @@ jobs: - uses: julia-actions/julia-buildpkg@v1 - name: Generate root file run: | - julia --project ./test/RNTupleWriting/output_sample.jl test1.root + julia --code-coverage --project ./test/RNTupleWriting/output_sample.jl test1.root - uses: cvmfs-contrib/github-action-cvmfs@v4 - name: Read root file in C++ run: | source /cvmfs/sft.cern.ch/lcg/views/dev3/latest/x86_64-ubuntu2204-gcc11-opt/setup.sh python ./test/RNTupleWriting/test1.py test1.root + - uses: julia-actions/julia-processcoverage@v1 + - uses: codecov/codecov-action@v4 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + with: + file: lcov.info diff --git a/src/RNTuple/Writing/TFileWriter.jl b/src/RNTuple/Writing/TFileWriter.jl index 18def0d3..ec0e89a3 100644 --- a/src/RNTuple/Writing/TFileWriter.jl +++ b/src/RNTuple/Writing/TFileWriter.jl @@ -518,7 +518,7 @@ function schema_to_field_column_records(table) column_records = UnROOT.ColumnRecord[] for (input_T, input_name) in zip(input_Ts, input_names) - add_field_column_record!(field_records, column_records, input_T, input_name, parent_field_id=length(field_records), col_field_id=length(column_records)) + add_field_column_record!(field_records, column_records, input_T, input_name, parent_field_id=length(field_records)) end return field_records, column_records end @@ -546,9 +546,6 @@ function write_rntuple(file::IO, table; file_name="test_ntuple_minimal.root", rn error("Top-level columns must have the same length") end input_length = length(input_cols[begin]) - if input_length > 65535 - error("Input too long: RNTuple writing currently only supports a single page (65535 elements)") - end rntAnchor_update = Dict{Symbol, Any}() diff --git a/test/RNTupleWriting/output_sample.jl b/test/RNTupleWriting/output_sample.jl index 094be4bf..e5bddff9 100644 --- a/test/RNTupleWriting/output_sample.jl +++ b/test/RNTupleWriting/output_sample.jl @@ -1,11 +1,15 @@ using UnROOT +const RNT_primitive_Ts = [Float64, Float32, Float16, Int64, Int32, Int16, Int8, UInt64, UInt32, UInt16] Nitems = 10 data = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] -newtable = Dict( - "x1" => Float64.(data), - "x2" => Float32.(data), - "x3" => Int32.(data), - "y1" => UInt16.(data), -) + +newtable = Dict( "x_$T" => T.(data) for T in RNT_primitive_Ts) +newtable["x_Bool"] = isodd.(data) +newtable["x_String"] = string.(data) + +for T in RNT_primitive_Ts + newtable["x_vec_$T"] = [rand(T, data[i]) for i in 1:Nitems] +end + UnROOT.write_rntuple(open(only(ARGS), "w"), newtable; rntuple_name="myntuple") diff --git a/test/RNTupleWriting/test1.py b/test/RNTupleWriting/test1.py index 400785ae..05634ec9 100644 --- a/test/RNTupleWriting/test1.py +++ b/test/RNTupleWriting/test1.py @@ -1,9 +1,15 @@ import ROOT import sys +Nitems = 10 +data = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14] + df = ROOT.RDataFrame("myntuple", sys.argv[1]) -if len(list(df.GetColumnNames())) != 4: - sys.exit(1) -if list(df.Take['std::int32_t']("x3")) != [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]: +if list(df.Take['std::int32_t']("x_Int32")) != data: sys.exit(1) +if list(df.Take['std::int64_t']("x_Int64")) != data: + sys.exit(1) + +for n in df.GetColumnNames(): + df.Display(n).Print()