Commit 47cc67ca authored by Matthew Dawson's avatar Matthew Dawson
Browse files

Add tests for output grid, and update its code.

Add a test for the output grid, and update the output grid conversion as
appropriate.  Also mute unnecessary output.

Tables are now fully converted, if they are single output left grid only
tables.  Tests are now in place ensuring proper conversion.
parent 0b4c411c
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -3,9 +3,14 @@ function outtable = convert_table_to_java_table( intable )
%   This function converts a table from TET's internal representation to
%   jTET's representation, ready for use against any of jTET's tools.

    outputVariables = java.util.Arrays.asList([ca.mcscert.jtet.expression.Variable('output', ca.mcscert.jtet.expression.RealVariableType())]);
    outputVar = ca.mcscert.jtet.expression.Variable('output', ca.mcscert.jtet.expression.RealVariableType());
    outputVariables = java.util.Arrays.asList([outputVar]);
    vc = ca.mcscert.jtet.expression.VariableCollection(TET.getInstance.getVariableParser.parseVariables(intable.function_inputs), ca.mcscert.jtet.expression.PartialVariableCollection(outputVariables));
    outtable = ca.mcscert.jtet.tabularexpression.Table(intable.function_name, vc);

    TableBlock.convert_hierarchical_grid_to_java(intable.Grid2.cells, outtable.getLeftGrid().getSubHierarchy())

    outputGrid = ca.mcscert.jtet.tabularexpression.TwoDimensionalGrid();
    TableBlock.convert_twodimensional_grid_to_java(intable.Grid0, outputGrid);
    outtable.getVariableOutputs().put(outputVar, outputGrid);
end
+2 −2
Original line number Diff line number Diff line
@@ -13,9 +13,9 @@
function convert_twodimensional_grid_to_java(grid, java_grid)

% Pre-set the x size.
java_grid.setSize(size(grid.Grid1.cells, 2), 1)
java_grid.resize(size(grid.Grid1.cells, 2), 1)

TableBlock.convert_twodimensional_grid_to_java_real(grid, grid.Grid2.cells, grid.Grid1.cells, java_grid, 0)
TableBlock.convert_twodimensional_grid_to_java_real(grid, grid.Grid2.cells, grid.Grid1.cells, java_grid, 0);

end
+4 −4
Original line number Diff line number Diff line
@@ -10,16 +10,16 @@
% Author: Matthew Dawson matthew@mjdsystems.ca
% Organization: McMaster Centre for Software Certification

function current_index = convert_twodimensional_grid_to_java_real(grid, left_grid, top_gird, java_grid, current_index)
function current_index = convert_twodimensional_grid_to_java_real(grid, left_grid, top_grid, java_grid, current_index)

for i=1:size(left_grid,2)
    % If we are not a leaf node on the left, descend:
    if ~isempty(old_cell.subgrid)
        current_index = TableBlock.convert_twodimensional_grid_to_java_real(grid, left_grid(i).subgrid.cells, top_grid, java_grid, current_index)
    if ~isempty(left_grid(i).subgrid)
        current_index = TableBlock.convert_twodimensional_grid_to_java_real(grid, left_grid(i).subgrid.cells, top_grid, java_grid, current_index);
    else % Otherwise, we are the reference cell for the 2d grid.  So pull results out.
        java_grid.resize(java_grid.sizeX(), current_index + 1)
        for j=1:size(top_grid, 2)
            java_grid.get(j, current_index).setContents(grid.search_return(top_grid(j), left_grid(i)).result_text);
            java_grid.get(j - 1, current_index).setContents(grid.search_return(top_grid(j), left_grid(i)).result_text);
        end
        current_index=current_index+1;
    end
+10 −0
Original line number Diff line number Diff line
@@ -39,6 +39,16 @@ classdef ConversionTest1 < BaseConversionTest
        function testTopGridConversion(testcase)
            testcase.assertEqual(testcase.ConvertedTable.getTopGrid().getSubHierarchy().size(), 0)
        end

        function testOutptGridConversion(testcase)
            grid = testcase.ConvertedTable.getVariableOutputs().get(testcase.ConvertedTable.getVariables().getOutputVariables().get('output'));
            testcase.assertEqual(grid.sizeX(), 1)
            testcase.assertEqual(grid.sizeY(), 3)

            testcase.assertEqual(char(grid.get(0, 0).contents()), '0')
            testcase.assertEqual(char(grid.get(0, 1).contents()), 'Input')
            testcase.assertEqual(char(grid.get(0, 2).contents()), '1000')
        end
    end
end