// check/expand_subs.cpp
/* The first test routine implements Denny Fliegner's quick consistency check:
* e = (a0 + a1 + a2 + a3 + ...)^2
* expand e
* substitute a0 by (-a2 - a3 - ...) in e
* expand e
* after which e should be just a1^2.
* In addition, a simpler modification is tested in the second test:
* e = (a0 + a1)^200
* expand e
* substitute a0 by -a1 in e
* after which e should return 0 (without expanding). */
#include
#define VECSIZE 100
static unsigned expand_subs1(void)
{
symbol a1("a1");
symbol a[VECSIZE];
ex e, aux;
a[1] = a1;
for (unsigned i=0; i