
# This is a generated document, created by gqt.rb
# 
# Details: (todo)
#  - date generated, script version, manifest file name and version

$LOAD_PATH.unshift '../lib/'

puts "PATH is #{$:.inspect}"

require 'test/unit'
require 'basicrdf'
require 'squish'

class TC_QueryTest < Test::Unit::TestCase

  attr_accessor :data

  def setup
    # no setup needed for testing query parser
    # when test query results, may need to do RDBMS sessions startup here
  end

  def test_query_0
    query = SquishQuery.new
    query_name="examples/squish/test0"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test0"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_1
    query = SquishQuery.new
    query_name="examples/squish/test1"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test1"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_2
    query = SquishQuery.new
    query_name="examples/squish/test3"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test3"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_3
    query = SquishQuery.new
    query_name="examples/squish/test2"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test2"
    fn = "#{q}.#{format}"
    num_clauses_expected = "1"
    num_vars_expected = "2"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_4
    query = SquishQuery.new
    query_name="examples/squish/test0c"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test0c"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_5
    query = SquishQuery.new
    query_name="examples/squish/test4"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test4"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_6
    query = SquishQuery.new
    query_name="examples/squish/test1-bogusclause"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test1-bogusclause"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "0"
    wf_expected = "false"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_7
    query = SquishQuery.new
    query_name="examples/squish/test0b"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/test0b"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "7"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite

  def test_query_8
    query = SquishQuery.new
    query_name="examples/squish/wot"      
    #puts "testing query: #{query_name}"
    format = "squish"
    q = "examples/squish/wot"
    fn = "#{q}.#{format}"
    num_clauses_expected = "7"
    num_vars_expected = "8"
    wf_expected = "true"
    wf_actual = "unknown"
    begin
      qtxt = File.new("../#{fn}").read 
      query.parseFromText qtxt
      wf_actual="true" # no exception
    rescue
      wfmsg= "Error: #{$!}"
      wf_actual="false"
    end
    num_vars_actual = query.all_vars.keys.size.to_s
    num_clauses_actual = query.clauses.size.to_s

    # Assert things about this test
    assert(num_vars_actual == num_vars_expected, 
      "The actual (#{num_vars_actual}) and expected (#{num_vars_expected} number of variables should agree")
    assert(num_clauses_actual == num_clauses_expected, 
	"The actual (#{num_clauses_actual}) and expected (#{num_clauses_expected} number of variables should agree")

    assert(wf_actual == wf_expected, 
	"The actual (#{wf_actual}) and expected (#{wf_expected} wellformedness should agree")

  end # loop through all queries in test suite


end

