view testlist.rhope @ 189:d0e3a13c1bd9 default tip

Remove old calculator example
author Mike Pavone <pavone@retrodev.com>
date Fri, 07 Oct 2011 00:24:04 -0700
parents 004f0fc8941f
children
line wrap: on
line source


Make List[list, cur, num:out]
{
	If[[cur]=[num]]
	{ out <- list }
	{
		out <- Make List[[list]Append[cur], [cur]+[1], num]
	}
}

Make List Step[list, cur index, curval, num, step:out]
{
	If[[curval]=[num]]
	{ out <- list }
	{
		next <- [list]Set[cur index, curval]
		out <- Make List Step[next, [cur index]+[step], [curval]+[1], num, step]
	}
}

Sum[list,index,cur:out]
{
	[list]Index[index]
	{
		out <- Sum[list,[index]+[1],[cur]+[~]]
	}{
		out <- cur
	}
}

Calc Sum[num:out]
{
	If[[[[num]/[2]]*[2]] = [num]]
	{
		out <- [[num]-[1]]*[[num]/[2]]
	}{
		out <- [[[num]-[2]]*[[[num]-[1]]/[2]]]+[[num]-[1]]
	}
}

Test Size[size:out]
{
	list <- Make List[List[], 0, size]

	If[[[list]Length] != [size]]
	{
		out <- No
		Print["Length should be:"]
		{ Print[size]
		{ Print["but was:"]
		{ Print[[list]Length] }}}
	}{
		tlast <- [size]-[1]
		If[[[list]Last] != [tlast]]
		{
			out <- No
			Print["Last should be:"]
			{ Print[tlast]
			{ Print["but was:"]
			{ Print[[list]Last] }}}
		}{
			sum <- Sum[list,0,0]
			ssum <- Calc Sum[size]
			If[[sum]=[ssum]]
			{
				out <- Yes
				Print["Test succeeded for size:"]
				{ Print[size] }
			}{
				out <- No
				Print["Sum is:"]
				{ Print[sum]
				{ Print["but should be:"]
				{ Print[ssum] }}}
			}
		}
	}
}

Do Test[size:success,failure]
{
	success <- If[Test Size[size]] {}
	{ failure <- size }
}

Test Next[size,step:success,failure]
{
	list <- Make List Step[List[], 0, 0, size, step]
	
	If[[[list]Length] != [size]]
	{
		failure <- size
		Print["Length should be:"]
		{ Print[size]
		{ Print["but was:"]
		{ Print[[list]Length] }}}
	}{
		sum <- Fold[+[?], 0, list]
		ssum <- Calc Sum[size]
		If[[sum]=[ssum]]
		{
			success <- Yes
			Print["Test succeeded for size:"]
			{ Print[size] }
		}{
			failure <- size
			Print["Sum is:"]
			{ Print[sum]
			{ Print["but should be:"]
			{ Print[ssum] }}}
		}
	}
}

Test First[index:success,failure]
{
	f <- [[List[]]Set[index, 0]]First
	{
		success <- If[[~]=[index]] {}
		{ 
			Print["First returned:"]
			{ Print[f]
			{ Print["Should have returned:"]
			{ Print[index] }}}
			failure <- index
		}
	}{
		Print["First set \"none\" output on List with 1 element at index:"]
		{ Print[index] }
		failure <- index
	}
}

Main[:out]
{
	,out <- Do Test[8i32]
	{ ,out <- Do Test[16i32]
	{ ,out <- Do Test[24i32]
	{ ,out <- Do Test[32i32]
	{ 
		Print["Basic append/retrieve tests succeeded"]
		do ftest <- Yes
	}}}}

	Val[do ftest]
	{
		[List[]]First
		{
			Print["Calling First on empty list populated first output!"]
			out <- 33i32
		}{
			Test First[0i32]
			{
				,out <- Test First[7i32]
				{ ,out <- Test First[15i32]
				{ ,out <- Test First[23i32]
				{ ,out <- Test First[31i32] 
				{
					Print["Tests of First method successful"]
					,out <- Test Next[33i32, 1i32]
					{ ,out <- Test Next[5i32, 2i32]
					{ ,out <- Test Next[17i32, 3i32]
					{
						Print["Test of Next method successful"]
						out <- 0i32
					}}}
				}
				}}}
			}{
				out <- 1i32
			}
		}
	}
}