Commit 5667ed5c authored by Ferdinand Fischer's avatar Ferdinand Fischer
Browse files

Squashed commit of the following:

commit c4687c8d45d9d9f53c8384a1194a833ccd258cc1
Author: Ferdinand Fischer <ferdinand.fischer@uni-ulm.de>
Date:   Tue Sep 1 13:55:27 2020 +0200

    fixed a bug in the evaluation of quantity.Symbolic on numeric grids,

commit dc784651
Author: Ferdinand Fischer <ferdinand.fischer@uni-ulm.de>
Date:   Mon Aug 31 13:55:01 2020 +0200

    fixed a bug in the evaluation of quantity.Symbolic on numeric grids,
parent 718eaff8
......@@ -427,7 +427,12 @@ classdef (InferiorClasses = {?quantity.Symbolic}) Discrete ...
myDomain = misc.ensureIsCell(myDomain);
newGrid = myDomain;
if obj(1).isConstant()
% Check if the object has a domain with a name:
% If there is no name, the object has an empty quantity.Domain, i.e., it is a
% constant. Then, the gridNames should be ''
% The check "isConstant" can not be used here, because it also returns true, if
% the constant value is defined over a domain.
if isempty(obj(1).domain)
gridNames = repmat({''}, length(newGrid));
else
gridNames = {obj(1).domain.name};
......
......@@ -872,22 +872,32 @@ testCase.verifyEqual(on( - fDisc), on(-f));
end
function testConstantValues(testCase)
%%
%% evaluation of a constant on the same grid
syms z
myDomain = quantity.Domain.defaultDomain(4, "z");
q = quantity.Symbolic(magic(3), myDomain);
%%
magic7 = magic(3);
magic700 = zeros(4, 3, 3);
for k = 1:q(1).domain.gridLength()
magic700(k, :,:) = magic7;
end
%%
testCase.verifyEqual(magic700, q.on());
testCase.verifyTrue(q.isConstant());
%% evaluation of a constant on a different grid
myDomain2 = quantity.Domain.defaultDomain(7, "z");
magic7 = magic(3);
magic700 = zeros(myDomain2.n, 3, 3);
for k = 1:myDomain2.n
magic700(k, :,:) = magic7;
end
q.on(myDomain2);
testCase.verifyEqual(magic700, q.on(myDomain2));
%%
p = quantity.Symbolic([0 0 0 0 z], myDomain);
testCase.verifyFalse(p.isConstant());
......@@ -954,6 +964,9 @@ Q2D = quantity.Symbolic(magic(2), [Z, Zeta]);
%%
verifyEqual(testCase, shiftdim(Q.on(), 1), magic(2))
verifyEqual(testCase, shiftdim(Q2D.on(), 2), magic(2))
%% test the evaluation on numeric grids
verifyEqual(testCase, shiftdim(Q.on(1), 1), magic(2))
end
function testSize(testCase)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment