From 42ec7286b2d36a9ba22925f816a17cb1cc2aa5ce Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 30 Oct 2021 11:32:16 +0800 Subject: + Penlight --- Data/Libraries/Penlight/tests/test-class2.lua | 28 +++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Data/Libraries/Penlight/tests/test-class2.lua (limited to 'Data/Libraries/Penlight/tests/test-class2.lua') diff --git a/Data/Libraries/Penlight/tests/test-class2.lua b/Data/Libraries/Penlight/tests/test-class2.lua new file mode 100644 index 0000000..b463b6e --- /dev/null +++ b/Data/Libraries/Penlight/tests/test-class2.lua @@ -0,0 +1,28 @@ +-- animal.lua +require 'pl.app'.require_here 'lua' + +local test = require 'pl.test' +local asserteq = test.asserteq + +local A = require 'animal' + +local fido, felix, leo +fido = A.Dog('Fido') +felix = A.Cat('Felix','Tabby') +leo = A.Lion('Leo','African') + +asserteq(fido:speak(),'bark') +asserteq(felix:speak(),'meow') +asserteq(leo:speak(),'roar') + +asserteq(tostring(leo),'Leo: roar') + +test.assertraise(function() leo:circus_act() end, "no such method circus_act") + +asserteq(leo:is_a(A.Animal),true) +asserteq(leo:is_a(A.Dog),false) +asserteq(leo:is_a(A.Cat),true) + +asserteq(A.Dog:class_of(leo),false) +asserteq(A.Cat:class_of(leo),true) +asserteq(A.Lion:class_of(leo),true) -- cgit v1.1-26-g67d0