view mde/test.d @ 4:9a990644948c

Many changes: upgraded to tango 0.99.4, reorganised mde/input, large changes to mde/mergetag and mde/init, separated off test/MTTest.d and more. committer: Diggory Hardy <diggory.hardy@gmail.com>
author Diggory Hardy <diggory.hardy@gmail.com>
date Sun, 06 Jan 2008 17:38:51 +0000
parents 485c98ecbd91
children f63f4f41a2dc
line wrap: on
line source

/// Contains some functions for testing stuff.
module mde.test;

import mde.mergetag.dataset;
import mde.text.parse;

import tango.io.Stdout;
import Int = tango.text.convert.Integer;

void MTtest () {
    Reader MTread;
    try {
        MTread = new Reader ("test.mtt", null, true);
        static DataSection dataPrinter (ID id) {	return new test.DataPrinter (id);	}
        MTread.dataSecCreator = &dataPrinter;
        MTread.read();
    } catch (Exception e) {
        Stdout (e.msg).newline;
    }
    //Stdout ("Data read from file:").newline;
    //test.printDataSet (MTread.dataset);
}

/// Prints $(I some) of the dataset.
void printDataSet (DataSet ds) {
    foreach (ID sec_id, DefaultData dd; ds.getSections!(DefaultData)()) {
        Stdout ("Section:  ")(cast(uint) sec_id).newline;
        foreach (ID i, int x; dd._int) {
            printLabel (i);
            Stdout (x).newline;
        }
        foreach (ID i, int[] x; dd._intA) {
            printLabel (i);
            foreach (int y; x)
                Stdout (y)(' ');
            Stdout.newline;
        }
        foreach (ID i, ubyte[] x; dd._binary) {
            printLabel (i);
            char[2] fmt;
            foreach (ubyte y; x) {
                Int.format(fmt,y,Int.Style.HexUpper,Int.Flags.Zero);
                Stdout (fmt~' ');
            }
            Stdout.newline;
        }
        foreach (ID i, char x; dd._char) {
            printLabel (i);
            Stdout (x).newline;
        }
        foreach (ID i, char[] x; dd._string) {
            printLabel (i);
            Stdout (x).newline;
        }
    }
}
void printLabel (ID i) {
    Stdout (cast(uint) i)(":\t");
}

class DataPrinter : DataSection
{
    this (ID id) {
        Stdout ("New section (")(id)(").").newline;
    }
    void addTag (TypeInfo ti, ID id, char[] dt) {
        Stdout ("\tData item (")(id)("):\t")(ti)("\t")(dt).newline;
    }
    void addTag (char[] tp, ID id, char[] dt) {
        Stdout ("\tData item (")(id)("):\t")(tp)("\t")(dt).newline;
    }
    void writeAll (ItemDelg) {}
}