;; -*-theme-d-*-

;; Copyright (C) 2018  Tommi Höynälänmaa
;; Distributed under GNU General Public License version 3,
;; see file doc/GPL-3.

;; Expected results: translation and running OK

(define-proper-program (tests test687)

  (import (standard-library core)
	  (standard-library math)
	  (standard-library posix-math)
	  (standard-library console-io)
	  (tests numerical-test-env))

  (define-simple-proc main (() <none> nonpure)

    (report-test (j0 1.5) 0.511827671735918)
    (report-test (j0 (rational 3 2)) 0.511827671735918)
    (report-test (j0 2) 0.223890779141236)
    (console-newline)

    (report-test (j1 1.5) 0.557936507910100)
    (report-test (j1 (rational 3 2)) 0.557936507910100)
    (report-test (j1 2) 0.576724807756873)
    (console-newline)

    (report-test (jn 2 0.5) 0.030604023458683)
    (report-test (jn 2 (rational 1 2)) 0.030604023458683)
    (report-test (jn 2 3) 0.486091260585891)
    (console-newline)

    (report-test (y0 1.5) 0.382448923797759)
    (report-test (y0 (rational 3 2)) 0.382448923797759)
    (report-test (y0 2) 0.510375672649745)
    (report-test (y0 0) (neg-inf))
    (report-test (y0 -1) (nan))
    (console-newline)

    (report-test (y1 2.1) -0.051678612130424)
    (report-test (y1 (rational 21 10)) -0.051678612130424)
    (report-test (y1 1) -0.781212821300289)
    (report-test (y1 0) (neg-inf))
    (report-test (y1 -1) (nan))
    (console-newline)

    (report-test (yn 3 0.5) -42.059494304723884)
    (report-test (yn 3 (rational 1 2)) -42.059494304723884)
    (report-test (yn 2 0) (neg-inf))
    (report-test (yn 4 -5.5) (nan))
    (console-newline)))
