1using Test, LibCEED, LinearAlgebra, StaticArrays 2 3function checkoutput(str, fname) 4 if str != getoutput(fname) 5 write(fname, str) 6 return false 7 end 8 return true 9end 10 11@testset "LibCEED Development Tests" begin 12 @testset "Operator" begin 13 c = Ceed() 14 @interior_qf id = ( 15 c, 16 (input, :in, EVAL_INTERP), 17 (output, :out, EVAL_INTERP), 18 begin 19 output[] = input 20 end, 21 ) 22 b = create_tensor_h1_lagrange_basis(c, 3, 1, 3, 3, GAUSS_LOBATTO) 23 n = getnumnodes(b) 24 offsets = Vector{CeedInt}(0:n-1) 25 r = create_elem_restriction(c, 1, n, 1, 1, n, offsets) 26 op = Operator( 27 c; 28 qf=id, 29 fields=[ 30 (:input, r, b, CeedVectorActive()), 31 (:output, r, b, CeedVectorActive()), 32 ], 33 ) 34 35 v = rand(CeedScalar, n) 36 v1 = CeedVector(c, v) 37 v2 = CeedVector(c, n) 38 39 comp_op = create_composite_operator(c, [op]) 40 apply!(comp_op, v1, v2) 41 @test @witharray_read(a1 = v1, @witharray_read(a2 = v2, a1 == a2)) 42 end 43end 44