PreviousUpNext

6.893 Architecture of Database Systems
Term Project

Testing the New Abstract Data Type

In order to test the new data type and ensure that all implemented functions are working correctly, I created a table called test_WSTD as follows:
indexdata
1(1996, 2)
2(1936, 22)
3(1926, 32)
4(1959, 52)
5(1936, 32)
6(1916, 24)
7(1997, 25)
8(1932, 23)
9(1993, 22)
10(1950, 27)
11(1995, 22)
12(1933, 7)
13(1924, 21)
14(1946, 76)
15(1968, 234)

Next, I ran the following tests: The following are the SQL commands used to create the test table:

CREATE TABLE test_WSTD (
	index int,
        data wstd
);
INSERT INTO test_WSTD VALUES ('1', '(1996, 2)');
INSERT INTO test_WSTD VALUES ('2', '(1936, 22)');
INSERT INTO test_WSTD VALUES ('3', '(1926, 32)');
INSERT INTO test_WSTD VALUES ('4', '(1959, 52)');
INSERT INTO test_WSTD VALUES ('5', '(1936, 32)');
INSERT INTO test_WSTD VALUES ('6', '(1916, 24)');
INSERT INTO test_WSTD VALUES ('7', '(1997, 25)');
INSERT INTO test_WSTD VALUES ('8', '(1932, 23)');
INSERT INTO test_WSTD VALUES ('9', '(1993, 22)');
INSERT INTO test_WSTD VALUES ('10', '(1950, 27)');
INSERT INTO test_WSTD VALUES ('11', '(1995, 22)');
INSERT INTO test_WSTD VALUES ('12', '(1933, 7)');
INSERT INTO test_WSTD VALUES ('13', '(1924, 21)');
INSERT INTO test_WSTD VALUES ('14', '(1946, 76)');
INSERT INTO test_WSTD VALUES ('15', '(1968, 234)');

The SQL commands for the tests are shown in GREEN, while the results for the tests are given in RED.

Same_year (WSTD-1, WSTD-2)

SELECT same_year('(1992,23)','(1992,233)');

 same_year
-----------
 t
(1 row)

SELECT same_year('(1932,23)','(1992,233)');

 same_year
-----------
 f
(1 row)

Same_day_of_week (WSTD-1, WSTD-2)

SELECT dayofweek('(1932,23)');

 dayofweek
-----------
         4
(1 row)

SELECT dayofweek('(1932,24)');

 dayofweek
-----------
         5
(1 row)

SELECT dayofweek('(1932,25)');

 dayofweek
-----------
         6
(1 row)

SELECT dayofweek('(1922,232)');

 dayofweek
-----------
         5
(1 row)

SELECT same_day_of_week('(1932,23)','(1922,232)');

 same_day_of_week
------------------
 f
(1 row)

SELECT same_day_of_week('(1932,24)','(1922,232)');

 same_day_of_week
------------------
 t
(1 row)

SELECT same_day_of_week('(1932,25)','(1922,232)');

 same_day_of_week
------------------
 f
(1 row)

Distance (WSTD-1, WSTD-2)

SELECT distance('(1932,23)','(1922,232)');

 distance
----------
     2778
(1 row)

SELECT distance('(1982,24)','(1922,232)');

 distance
----------
    16206
(1 row)

SELECT distance('(1922,232)','(1932,25)');

 distance
----------
     2780
(1 row)

SELECT distance('(1922,232)','(1922,232)');

 distance
----------
        0
(1 row)

Mon (WSTD), Tues (WSTD), Wed (WTD), Thu (WSTD), Fri (WSTD)

SELECT dayofweek('(1922,232)');

 dayofweek
-----------
         5
(1 row)

SELECT mon('(1922,232)');

 mon
-----
 f
(1 row)

SELECT tues('(1922,232)');

 tues
------
 f
(1 row)

SELECT wed('(1922,232)');

 wed
-----
 f
(1 row)

SELECT thu('(1922,232)');

 thu
-----
 f
(1 row)

SELECT fri('(1922,232)');

 fri
-----
 t
(1 row)

DJIA (WSTD)

SELECT djia('(1922,232)');

  djia
--------
 100.81
(1 row)

Date (WSTD)

SELECT get_date('(1922,232)');

  get_date
------------
 1922-10-06
(1 row)

Greater_than (WSTD-1, WSTD-2)

SELECT greater_than('(1932,23)','(1922,232)');

 greater_than
--------------
 t
(1 row)

SELECT greater_than('(1932,23)','(1957,38)');

 greater_than
--------------
 f
(1 row)

Less_than (WSTD-1, WSTD-2)

SELECT less_than('(1932,23)','(1922,232)');

 less_than
-----------
 f
(1 row)

SELECT less_than('(1954,23)','(1967,21)');

 less_than
-----------
 t
(1 row)

Greater_Equal (WSTD-1, WSTD-2)

SELECT greater_equal('(1922,232)','(1932,23)');

 greater_equal
---------------
 f
(1 row)
SELECT greater_equal('(1932,23)','(1922,232)');

 greater_equal
---------------
 t
(1 row)

SELECT greater_equal('(1932,23)','(1932,23)');

 greater_equal
---------------
 t
(1 row)

Less_Equal (WSTD-1, WSTD-2)

SELECT less_equal('(1932,23)','(1922,232)');

 less_equal
------------
 f
(1 row)

SELECT less_equal('(1922,232)','(1932,23)');

 less_equal
------------
 t
(1 row)

SELECT less_equal('(1922,232)','(1922,232)');

 less_equal
------------
 t
(1 row)

Equals (WSTD-1, WSTD-2)

SELECT equals('(1932,23)','(1922,232)');

 equals
--------
 f
(1 row)

SELECT equals('(1922,122)','(1922,122)');

 equals
--------
 t
(1 row)

More Complex Queries on test_WSTD

SELECT * FROM test_WSTD WHERE same_year(data, '(1936,1)');

 index |   data
-------+-----------
     2 | (1936,22)
     5 | (1936,32)
(2 rows)

SELECT * FROM test_WSTD WHERE same_day_of_week(data, '(1980,5)');

 index |   data
-------+-----------
     4 | (1959,52)
     9 | (1993,22)
(2 rows)

SELECT * FROM test_WSTD WHERE distance(data,'(1985,23)') < 1000;

 index |    data
-------+------------
    15 | (1968,234)
(1 row)

SELECT * FROM test_WSTD WHERE data > '(1950,1)' And data < '(1960,1)';

 index |   data
-------+-----------
     4 | (1959,52)
    10 | (1950,27)
(2 rows)

SELECT * FROM test_WSTD WHERE djia(data) > 1000.0;;

 index |   data
-------+-----------
     1 | (1996,2)
     7 | (1997,25)
     9 | (1993,22)
    11 | (1995,22)
(4 rows)

PreviousUpNext