summaryrefslogtreecommitdiffstats
path: root/tests/nonRegression/bug731.sci
blob: 26494c3ae1316845b453a2f4ba9f98bc1c365526 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// <-- Non-regression test for bug 731 -->
//
// <-- Bugzilla URL -->
// http://www.scilab.org/cgi-bin/bugzilla_bug_II/show_bug.cgi?id=731
//
// <-- Short Description -->
//    fun2string and macr2tree cannot cope with nested function
//    definitions

// Copyright INRIA
// Scilab Project - Pierre MARECHAL
// Date : 3 mai 2005
// last modified : 10 Jan 2006

// =============== Test 1 =============== 

function y=foo(x)
	a=sin(x)
	function y=sq(x), y=x^2,endfunction
	y=sq(a)+1
endfunction

CONTENTS = fun2string(foo);

REFCONTENTS=["function y=ans(x)";
		"  a = sin(x)";
		"  function y=sq(x)";
		"  , y=x^2,";
		"  endfunction";
		"  y = sq(a) + 1";
		"endfunction"];

test1=~or(REFCONTENTS<>CONTENTS);

// =============== Test 2 =============== 

function one()
  function two()
    // A comment
  endfunction
  function three()
    // A comment
  endfunction
    //a comment here
endfunction

CONTENTS_II = fun2string(one);

REFCONTENTS_II=["function []=ans";
		"  function two()";
		"      // A comment";
		"  endfunction";
		"  function three()";
		"      // A comment";
		"  endfunction";
		"  //a comment here";
		"endfunction"];
 
test2=~or(REFCONTENTS_II<>CONTENTS_II);

// =============== Test 3 =============== 

function a=foo1()
	a = 1 ; function foo2() ; disp("hello") ; endfunction ; disp("zut");
	a = 2
endfunction

CONTENTS_III=fun2string(foo1);

REFCONTENTS_III=["function a=ans";
		 "  a = 1;function foo2() ";
		 "  ; disp(""hello"") ; ";
		 "  endfunction;disp(''zut'');";
		 "  a = 2";
		 "endfunction"];

test3=~or(REFCONTENTS_III<>CONTENTS_III);

// =============== Result =============== 
affich_result(test1 & test2 & test3,731);