1// ============================================================================= 2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab 3// Copyright (C) 2013 - Pedro SOUZA 4// 5// This file is distributed under the same license as the Scilab package. 6// ============================================================================= 7// <-- TEST WITH GRAPHIC --> 8// test Light object 9// Check each default property 10figure(); 11a=gca(); 12l = light(); 13assert_checkequal(l.type, "Light"); 14assert_checkequal(l.parent.type, "Axes"); 15assert_checkequal(l.children, []); 16assert_checkequal(l.visible, "on"); 17assert_checkequal(l.light_type, "point"); 18clf(); 19subplot(2, 1, 1); 20a1=gca(); 21subplot(2, 1, 2); 22a2=gca(); 23l = light(a1); 24assert_checkequal(l.type, "Light"); 25assert_checkequal(l.parent.type, "Axes"); 26assert_checkequal(l.parent.UID, a1.UID); 27assert_checkequal(l.children, []); 28assert_checkequal(l.visible, "on"); 29assert_checkequal(l.light_type, "point"); 30clf(); 31a=gca(); 32l = light(a, visible="off", type="directional", position=[5 4 3], direction=[2 1 0], ambient_color=[0.3 0.3 0.3], diffuse_color=[0.2 0.2 0.2], specular_color=[0.1 0.1 0.1]); 33assert_checkequal(l.type, "Light"); 34assert_checkequal(l.parent.type, "Axes"); 35assert_checkequal(l.children, []); 36assert_checkequal(l.visible, "off"); 37assert_checkequal(l.light_type, "directional"); 38assert_checktrue(l.position - [5 4 3] < 1d-7); 39assert_checktrue(l.direction - [2 1 0] < 1d-7); 40assert_checktrue(l.ambient_color - [0.3 0.3 0.3] < 1d-7); 41assert_checktrue(l.diffuse_color - [0.2 0.2 0.2] < 1d-7); 42assert_checktrue(l.specular_color - [0.1 0.1 0.1] < 1d-7); 43// check valid parameter type 44errmsg=msprintf(_("Wrong type for ''%s'' property: Real matrix expected.\n"), "ambient_color"); 45ierr = execstr("l.ambient_color = ''asd''", "errcatch"); 46assert_checkequal(lasterror(), errmsg); 47errmsg=msprintf(_("Wrong type for ''%s'' property: Real matrix expected.\n"), "diffuse_color"); 48ierr = execstr("l.diffuse_color = ''asd''", "errcatch"); 49assert_checkequal(lasterror(), errmsg); 50errmsg=msprintf(_("Wrong type for ''%s'' property: Real matrix expected.\n"), "specular_color"); 51ierr = execstr("l.specular_color = ''asd''", "errcatch"); 52assert_checkequal(lasterror(), errmsg); 53errmsg=msprintf(_("Wrong type for ''%s'' property: Real matrix expected.\n"), "position"); 54ierr = execstr("l.position = ''asd''", "errcatch"); 55assert_checkequal(lasterror(), errmsg); 56errmsg=msprintf(_("Wrong type for ''%s'' property: Real matrix expected.\n"), "direction"); 57ierr = execstr("l.direction = ''asd''", "errcatch"); 58assert_checkequal(lasterror(), errmsg); 59errmsg=msprintf(_("Wrong type for ''%s'' property: String expected.\n"), "light_type"); 60ierr = execstr("l.light_type = 0", "errcatch"); 61assert_checkequal(lasterror(), errmsg); 62// check parameter vector size 63errmsg=msprintf(_("Wrong size for ''%s'' property: %d elements expected.\n"), "ambient_color", 3); 64ierr = execstr("l.ambient_color = [1 1]", "errcatch"); 65assert_checkequal(lasterror(), errmsg); 66errmsg=msprintf(_("Wrong size for ''%s'' property: %d elements expected.\n"), "diffuse_color", 3); 67ierr = execstr("l.diffuse_color = [1 1]", "errcatch"); 68assert_checkequal(lasterror(), errmsg); 69errmsg=msprintf(_("Wrong size for ''%s'' property: %d elements expected.\n"), "specular_color", 3); 70ierr = execstr("l.specular_color = [1 1]", "errcatch"); 71assert_checkequal(lasterror(), errmsg); 72errmsg=msprintf(_("Wrong size for ''%s'' property: %d elements expected.\n"), "position", 3); 73ierr = execstr("l.position = [1 1]", "errcatch"); 74assert_checkequal(lasterror(), errmsg); 75errmsg=msprintf(_("Wrong size for ''%s'' property: %d elements expected.\n"), "direction", 3); 76ierr = execstr("l.direction = [1 1]", "errcatch"); 77assert_checkequal(lasterror(), errmsg); 78// check parameter bounds 79errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 80ierr = execstr("l.ambient_color = [-1 0 0]", "errcatch"); 81assert_checkequal(lasterror(), errmsg); 82errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 83ierr = execstr("l.ambient_color = [0 -1 0]", "errcatch"); 84assert_checkequal(lasterror(), errmsg); 85errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 86ierr = execstr("l.ambient_color = [0 0 -1]", "errcatch"); 87assert_checkequal(lasterror(), errmsg); 88errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 89ierr = execstr("l.ambient_color = [1.5 0 0]", "errcatch"); 90assert_checkequal(lasterror(), errmsg); 91errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 92ierr = execstr("l.ambient_color = [0 1.5 0]", "errcatch"); 93assert_checkequal(lasterror(), errmsg); 94errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "ambient_color"); 95ierr = execstr("l.ambient_color = [0 0 1.5]", "errcatch"); 96assert_checkequal(lasterror(), errmsg); 97//////// 98errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 99ierr = execstr("l.diffuse_color = [-1 0 0]", "errcatch"); 100assert_checkequal(lasterror(), errmsg); 101errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 102ierr = execstr("l.diffuse_color = [0 -1 0]", "errcatch"); 103assert_checkequal(lasterror(), errmsg); 104errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 105ierr = execstr("l.diffuse_color = [0 0 -1]", "errcatch"); 106assert_checkequal(lasterror(), errmsg); 107errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 108ierr = execstr("l.diffuse_color = [1.5 0 0]", "errcatch"); 109assert_checkequal(lasterror(), errmsg); 110errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 111ierr = execstr("l.diffuse_color = [0 1.5 0]", "errcatch"); 112assert_checkequal(lasterror(), errmsg); 113errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "diffuse_color"); 114ierr = execstr("l.diffuse_color = [0 0 1.5]", "errcatch"); 115assert_checkequal(lasterror(), errmsg); 116///////////// 117errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 118ierr = execstr("l.specular_color = [-1 0 0]", "errcatch"); 119assert_checkequal(lasterror(), errmsg); 120errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 121ierr = execstr("l.specular_color = [0 -1 0]", "errcatch"); 122assert_checkequal(lasterror(), errmsg); 123errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 124ierr = execstr("l.specular_color = [0 0 -1]", "errcatch"); 125assert_checkequal(lasterror(), errmsg); 126errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 127ierr = execstr("l.specular_color = [1.5 0 0]", "errcatch"); 128assert_checkequal(lasterror(), errmsg); 129errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 130ierr = execstr("l.specular_color = [0 1.5 0]", "errcatch"); 131assert_checkequal(lasterror(), errmsg); 132errmsg=msprintf(_("Wrong values for ''%s'' property: values between [0, 1] expected.\n"), "specular_color"); 133ierr = execstr("l.specular_color = [0 0 1.5]", "errcatch"); 134assert_checkequal(lasterror(), errmsg); 135// check light_type input 136errmsg=msprintf(_("Wrong value for ''%s'' property: ''directional'' or ''point'' expected.\n"), "light_type"); 137ierr = execstr("l.light_type = ''pointt''", "errcatch"); 138assert_checkequal(lasterror(), errmsg); 139errmsg=msprintf(_("Wrong value for ''%s'' property: ''directional'' or ''point'' expected.\n"), "light_type"); 140ierr = execstr("l.light_type = ''ddirectional''", "errcatch"); 141assert_checkequal(lasterror(), errmsg); 142delete(l); 143assert_checkequal(a.children, []); 144close(); 145