diff options
| author | Roger Bell_West <roger@firedrake.org> | 2024-06-11 12:21:48 +0100 |
|---|---|---|
| committer | Roger Bell_West <roger@firedrake.org> | 2024-06-11 12:21:48 +0100 |
| commit | 06746b83fc7bc829d1a836eb44fbae8308b88484 (patch) | |
| tree | 34812f8890968b70e11c2fdfb111381af3ea20a3 | |
| parent | 514530d6be7cc5067a95a11ebedff9e0d4d46cfe (diff) | |
| download | perlweeklychallenge-club-06746b83fc7bc829d1a836eb44fbae8308b88484.tar.gz perlweeklychallenge-club-06746b83fc7bc829d1a836eb44fbae8308b88484.tar.bz2 perlweeklychallenge-club-06746b83fc7bc829d1a836eb44fbae8308b88484.zip | |
RogerBW solutions for challenge no. 273
23 files changed, 947 insertions, 0 deletions
diff --git a/challenge-273/roger-bell-west/crystal/ch-1.cr b/challenge-273/roger-bell-west/crystal/ch-1.cr new file mode 100755 index 0000000000..58a2a6ce89 --- /dev/null +++ b/challenge-273/roger-bell-west/crystal/ch-1.cr @@ -0,0 +1,29 @@ +#! /usr/bin/crystal + +def percentageofcharacter(a, c) + d = a.size + n = 100 * a.count(c) + (n + d // 2) // d +end + +require "spec" +describe "" do + it "test_ex1" do + percentageofcharacter("perl", 'e').should eq 25 + end + it "test_ex2" do + percentageofcharacter("java", 'a').should eq 50 + end + it "test_ex3" do + percentageofcharacter("python", 'm').should eq 0 + end + it "test_ex4" do + percentageofcharacter("ada", 'a').should eq 67 + end + it "test_ex5" do + percentageofcharacter("ballerina", 'l').should eq 22 + end + it "test_ex6" do + percentageofcharacter("analitik", 'k').should eq 13 + end +end diff --git a/challenge-273/roger-bell-west/crystal/ch-2.cr b/challenge-273/roger-bell-west/crystal/ch-2.cr new file mode 100755 index 0000000000..7b282b563c --- /dev/null +++ b/challenge-273/roger-bell-west/crystal/ch-2.cr @@ -0,0 +1,29 @@ +#! /usr/bin/crystal + +def baftera(a) + firstb = a.index('b') + if firstb.nil? + return false + end + lasta = a.rindex('a') + if lasta.nil? + return true + end + lasta < firstb +end + +require "spec" +describe "" do + it "test_ex1" do + baftera("aabb").should eq true + end + it "test_ex2" do + baftera("abab").should eq false + end + it "test_ex3" do + baftera("aaa").should eq false + end + it "test_ex4" do + baftera("bbb").should eq true + end +end diff --git a/challenge-273/roger-bell-west/javascript/ch-1.js b/challenge-273/roger-bell-west/javascript/ch-1.js new file mode 100755 index 0000000000..0274196058 --- /dev/null +++ b/challenge-273/roger-bell-west/javascript/ch-1.js @@ -0,0 +1,46 @@ +#! /usr/bin/node + +"use strict" + +function percentageofcharacter(a, c) { + const d = a.length; + const n = 100 * a.split("").filter(n => n == c).length; + return Math.floor(n / d + 0.5); +} + +if (percentageofcharacter('perl', 'e') == 25) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (percentageofcharacter('java', 'a') == 50) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (percentageofcharacter('python', 'm') == 0) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (percentageofcharacter('ada', 'a') == 67) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (percentageofcharacter('ballerina', 'l') == 22) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (percentageofcharacter('analitik', 'k') == 13) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write("\n"); diff --git a/challenge-273/roger-bell-west/javascript/ch-2.js b/challenge-273/roger-bell-west/javascript/ch-2.js new file mode 100755 index 0000000000..b18f6bd4f2 --- /dev/null +++ b/challenge-273/roger-bell-west/javascript/ch-2.js @@ -0,0 +1,40 @@ +#! /usr/bin/node + +"use strict" + +function baftera(a) { + const firstb = a.indexOf('b'); + if (firstb == -1) { + return false; + } + const lasta = a.lastIndexOf('a'); + if (lasta == -1) { + return true; + } + return lasta < firstb; +} + +if (baftera('aabb')) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (!baftera('abab')) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (!baftera('aaa')) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write(" "); +if (baftera('bbb')) { + process.stdout.write("Pass"); +} else { + process.stdout.write("FAIL"); +} +process.stdout.write("\n"); diff --git a/challenge-273/roger-bell-west/kotlin/ch-1.kt b/challenge-273/roger-bell-west/kotlin/ch-1.kt new file mode 100644 index 0000000000..fc516bd49e --- /dev/null +++ b/challenge-273/roger-bell-west/kotlin/ch-1.kt @@ -0,0 +1,46 @@ +fun percentageofcharacter(a: String, c: Char): Int { + val d = a.length + val n = 100 * a.count({it == c}) + return (n + d / 2) / d +} + +fun main() { + + if (percentageofcharacter("perl", 'e') == 25) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("java", 'a') == 50) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("python", 'm') == 0) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("ada", 'a') == 67) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("ballerina", 'l') == 22) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("analitik", 'k') == 13) { + print("Pass") + } else { + print("Fail") + } + println("") + +} diff --git a/challenge-273/roger-bell-west/kotlin/ch-2.kt b/challenge-273/roger-bell-west/kotlin/ch-2.kt new file mode 100644 index 0000000000..eaf28624be --- /dev/null +++ b/challenge-273/roger-bell-west/kotlin/ch-2.kt @@ -0,0 +1,40 @@ +fun baftera(a: String): Boolean { + val firstb = a.indexOf('b') + val lasta = a.lastIndexOf('a') + if (firstb == -1) { + return false + } + if (lasta == -1) { + return true + } + return lasta < firstb +} + +fun main() { + + if (baftera("aabb")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (!baftera("abab")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (!baftera("aaa")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (baftera("bbb")) { + print("Pass") + } else { + print("Fail") + } + println("") + +} diff --git a/challenge-273/roger-bell-west/lua/ch-1.lua b/challenge-273/roger-bell-west/lua/ch-1.lua new file mode 100755 index 0000000000..a1d9901f03 --- /dev/null +++ b/challenge-273/roger-bell-west/lua/ch-1.lua @@ -0,0 +1,53 @@ +#! /usr/bin/lua + +function percentageofcharacter(a, c) + local d = string.len(a) + local n = 0 + for w in string.gmatch(a, c) do + n = n + 1 + end + return (100 * n + d // 2) // d +end + +if percentageofcharacter("perl", "e") == 25 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if percentageofcharacter("java", "a") == 50 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if percentageofcharacter("python", "m") == 0 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if percentageofcharacter("ada", "a") == 67 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if percentageofcharacter("ballerina", "l") == 22 then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if percentageofcharacter("analitik", "k") == 13 then + io.write("Pass") +else + io.write("FAIL") +end +print("") + diff --git a/challenge-273/roger-bell-west/lua/ch-2.lua b/challenge-273/roger-bell-west/lua/ch-2.lua new file mode 100755 index 0000000000..08a8f84ce9 --- /dev/null +++ b/challenge-273/roger-bell-west/lua/ch-2.lua @@ -0,0 +1,43 @@ +#! /usr/bin/lua + +function baftera(a) + local firstb = string.find(a, "b") + local lasta = string.find(string.reverse(a), "a") + if firstb == nil then + return false + end + if lasta == nil then + return true + end + lasta = string.len(a) + 1 - lasta + return lasta < firstb +end + +if baftera("aabb") then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if not baftera("abab") then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if not baftera("aaa") then + io.write("Pass") +else + io.write("FAIL") +end +io.write(" ") + +if baftera("bbb") then + io.write("Pass") +else + io.write("FAIL") +end +print("") + diff --git a/challenge-273/roger-bell-west/perl/ch-1.pl b/challenge-273/roger-bell-west/perl/ch-1.pl new file mode 100755 index 0000000000..96934c3419 --- /dev/null +++ b/challenge-273/roger-bell-west/perl/ch-1.pl @@ -0,0 +1,25 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use experimental 'signatures'; + +use Test::More tests => 6; + +is(percentageofcharacter('perl', 'e'), 25, 'example 1'); +is(percentageofcharacter('java', 'a'), 50, 'example 2'); +is(percentageofcharacter('python', 'm'), 0, 'example 3'); +is(percentageofcharacter('ada', 'a'), 67, 'example 4'); +is(percentageofcharacter('ballerina', 'l'), 22, 'example 5'); +is(percentageofcharacter('analitik', 'k'), 13, 'example 6'); + +use integer; +sub percentageofcharacter($a, $c) { + my $d = length($a); + my $n = 0; + while ($a =~ /$c/g) { + $n++; + } + $n *= 100; + return ($n + $d / 2) / $d; +} diff --git a/challenge-273/roger-bell-west/perl/ch-2.pl b/challenge-273/roger-bell-west/perl/ch-2.pl new file mode 100755 index 0000000000..bb6637c504 --- /dev/null +++ b/challenge-273/roger-bell-west/perl/ch-2.pl @@ -0,0 +1,24 @@ +#! /usr/bin/perl + +use strict; +use warnings; +use experimental 'signatures'; + +use Test::More tests => 4; + +is(baftera('aabb'), 1, 'example 1'); +is(baftera('abab'), 0, 'example 2'); +is(baftera('aaa'), 0, 'example 3'); +is(baftera('bbb'), 1, 'example 4'); + +sub baftera($a) { + my $firstb = index($a, "b"); + if ($firstb == -1) { + return 0; + } + my $lasta = rindex($a, "a"); + if ($lasta == -1) { + return 1; + } + return ($lasta < $firstb)?1:0; +} diff --git a/challenge-273/roger-bell-west/postscript/ch-1.ps b/challenge-273/roger-bell-west/postscript/ch-1.ps new file mode 100644 index 0000000000..390955dce0 --- /dev/null +++ b/challenge-273/roger-bell-west/postscript/ch-1.ps @@ -0,0 +1,74 @@ +%!PS + +% begin included library code +% see https://codeberg.org/Firedrake/postscript-libraries/ +/s2a { + [ exch { } forall ] +} bind def + +/test.end { + ( ) print + test.count 0 gt { + (Passed ) print + test.pass (...) cvs print + (/) print + test.count (...) cvs print + ( \() print + test.pass 100 mul test.count idiv (...) cvs print + (%\)) print + (\r\n) print + } if +} bind def + +/filter { % array proc(bool) -> array + 1 dict begin + /p exch def + [ exch + { + dup p not + { + pop + } if + } forall + ] + end +} bind def + +/test.start { + print (:) print + /test.pass 0 def + /test.count 0 def +} bind def + +/test { + /test.count test.count 1 add def + { + /test.pass test.pass 1 add def + } { + ( ) print + test.count (....) cvs print + (-fail) print + } ifelse +} bind def + + +% end included library code + +/percentageofcharacter { + 0 dict begin + /c exch s2a 0 get def + /a exch def + /d a length def + /n a s2a { c eq } filter length 100 mul def + n d 2 idiv add d idiv + end +} bind def + +(percentageofcharacter) test.start +(perl) (e) percentageofcharacter 25 eq test +(java) (a) percentageofcharacter 50 eq test +(python) (m) percentageofcharacter 0 eq test +(ada) (a) percentageofcharacter 67 eq test +(ballerina) (l) percentageofcharacter 22 eq test +(analitik) (k) percentageofcharacter 13 eq test +test.end diff --git a/challenge-273/roger-bell-west/postscript/ch-2.ps b/challenge-273/roger-bell-west/postscript/ch-2.ps new file mode 100644 index 0000000000..26b2acb631 --- /dev/null +++ b/challenge-273/roger-bell-west/postscript/ch-2.ps @@ -0,0 +1,96 @@ +%!PS + +% begin included library code +% see https://codeberg.org/Firedrake/postscript-libraries/ +/test.start { + print (:) print + /test.pass 0 def + /test.count 0 def +} bind def + +/reverse { + 1 dict begin + dup length /l exch def + [ exch + aload pop + 2 1 l { + -1 roll + } for + ] + end +} bind def + +/test { + /test.count test.count 1 add def + { + /test.pass test.pass 1 add def + } { + ( ) print + test.count (....) cvs print + (-fail) print + } ifelse +} bind def + +/s2a { + [ exch { } forall ] +} bind def + +/test.end { + ( ) print + test.count 0 gt { + (Passed ) print + test.pass (...) cvs print + (/) print + test.count (...) cvs print + ( \() print + test.pass 100 mul test.count idiv (...) cvs print + (%\)) print + (\r\n) print + } if +} bind def + +/a2s { + 2 dict begin + /i exch def + i length dup string /o exch def + 1 sub 0 exch 1 exch { + dup i 3 -1 roll get o 3 1 roll put + } for + o + end +} bind def + + +% end included library code + +/baftera { + 0 dict begin + /a exch def + /firstb a (b) search { + 3 1 roll pop pop length + } { + pop -1 + } ifelse def + /lasta a s2a reverse a2s (a) search { + 3 1 roll pop pop length a length 1 sub exch sub + } { + pop -1 + } ifelse def + firstb -1 eq { + false + } { + lasta -1 eq { + true + } { + lasta firstb lt + } ifelse + } ifelse + end +} bind def + +(baftera) test.start +(aabb) baftera test +(abab) baftera not test +(aaa) baftera not test +(bbb) baftera test +test.end diff --git a/challenge-273/roger-bell-west/python/ch-1.py b/challenge-273/roger-bell-west/python/ch-1.py new file mode 100755 index 0000000000..5ff897f70f --- /dev/null +++ b/challenge-273/roger-bell-west/python/ch-1.py @@ -0,0 +1,30 @@ +#! /usr/bin/python3 + +def percentageofcharacter(a, c): + d = len(a) + n = 100 * a.count(c) + return (n + d // 2) // d + +import unittest + +class TestPercentageofcharacter(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(percentageofcharacter("perl", "e"), 25, 'example 1') + + def test_ex2(self): + self.assertEqual(percentageofcharacter("java", "a"), 50, 'example 2') + + def test_ex3(self): + self.assertEqual(percentageofcharacter("python", "m"), 0, 'example 3') + + def test_ex4(self): + self.assertEqual(percentageofcharacter("ada", "a"), 67, 'example 4') + + def test_ex5(self): + self.assertEqual(percentageofcharacter("ballerina", "l"), 22, 'example 5') + + def test_ex6(self): + self.assertEqual(percentageofcharacter("analitik", "k"), 13, 'example 6') + +unittest.main() diff --git a/challenge-273/roger-bell-west/python/ch-2.py b/challenge-273/roger-bell-west/python/ch-2.py new file mode 100755 index 0000000000..460a57a0e7 --- /dev/null +++ b/challenge-273/roger-bell-west/python/ch-2.py @@ -0,0 +1,28 @@ +#! /usr/bin/python3 + +def baftera(a): + firstb = a.find("b") + if firstb == -1: + return False + lasta = a.rfind("a") + if lasta == -1: + return True + return lasta < firstb + +import unittest + +class TestBaftera(unittest.TestCase): + + def test_ex1(self): + self.assertEqual(baftera("aabb"), True, 'example 1') + + def test_ex2(self): + self.assertEqual(baftera("abab"), False, 'example 2') + + def test_ex3(self): + self.assertEqual(baftera("aaa"), False, 'example 3') + + def test_ex4(self): + self.assertEqual(baftera("bbb"), True, 'example 4') + +unittest.main() diff --git a/challenge-273/roger-bell-west/raku/ch-1.p6 b/challenge-273/roger-bell-west/raku/ch-1.p6 new file mode 100755 index 0000000000..89454c7c93 --- /dev/null +++ b/challenge-273/roger-bell-west/raku/ch-1.p6 @@ -0,0 +1,18 @@ +#! /usr/bin/raku + +use Test; + +plan 6; + +is(percentageofcharacter('perl', 'e'), 25, 'example 1'); +is(percentageofcharacter('java', 'a'), 50, 'example 2'); +is(percentageofcharacter('python', 'm'), 0, 'example 3'); +is(percentageofcharacter('ada', 'a'), 67, 'example 4'); +is(percentageofcharacter('ballerina', 'l'), 22, 'example 5'); +is(percentageofcharacter('analitik', 'k'), 13, 'example 6'); + +sub percentageofcharacter($a, $c) { + my $d = $a.chars; + my $n = 100 * $a.match($c, :exhaustive).elems; + return ($n + $d div 2) div $d; +} diff --git a/challenge-273/roger-bell-west/raku/ch-2.p6 b/challenge-273/roger-bell-west/raku/ch-2.p6 new file mode 100755 index 0000000000..899a331eeb --- /dev/null +++ b/challenge-273/roger-bell-west/raku/ch-2.p6 @@ -0,0 +1,22 @@ +#! /usr/bin/raku + +use Test; + +plan 4; + +is(baftera('aabb'), True, 'example 1'); +is(baftera('abab'), False, 'example 2'); +is(baftera('aaa'), False, 'example 3'); +is(baftera('bbb'), True, 'example 4'); + +sub baftera($a) { + my $firstb = index($a, "b"); + if (!$firstb.defined) { + return False; + } + my $lasta = rindex($a, "a"); + if (!$lasta.defined) { + return True; + } + return $lasta < $firstb; +} diff --git a/challenge-273/roger-bell-west/ruby/ch-1.rb b/challenge-273/roger-bell-west/ruby/ch-1.rb new file mode 100755 index 0000000000..bdbb468350 --- /dev/null +++ b/challenge-273/roger-bell-west/ruby/ch-1.rb @@ -0,0 +1,37 @@ +#! /usr/bin/ruby + +def percentageofcharacter(a, c) + d = a.size + n = 100 * a.count(c) + (n + d.div(2)).div(d) +end + +require 'test/unit' + +class TestPercentageofcharacter < Test::Unit::TestCase + + def test_ex1 + assert_equal(25, percentageofcharacter('perl', 'e')) + end + + def test_ex2 + assert_equal(50, percentageofcharacter('java', 'a')) + end + + def test_ex3 + assert_equal(0, percentageofcharacter('python', 'm')) + end + + def test_ex4 + assert_equal(67, percentageofcharacter('ada', 'a')) + end + + def test_ex5 + assert_equal(22, percentageofcharacter('ballerina', 'l')) + end + + def test_ex6 + assert_equal(13, percentageofcharacter('analitik', 'k')) + end + +end diff --git a/challenge-273/roger-bell-west/ruby/ch-2.rb b/challenge-273/roger-bell-west/ruby/ch-2.rb new file mode 100755 index 0000000000..d22f18a978 --- /dev/null +++ b/challenge-273/roger-bell-west/ruby/ch-2.rb @@ -0,0 +1,35 @@ +#! /usr/bin/ruby + +def baftera(a) + firstb = a.index('b') + if firstb.nil? + return false + end + lasta = a.rindex('a') + if lasta.nil? + return true + end + lasta < firstb +end + +require 'test/unit' + +class TestBaftera < Test::Unit::TestCase + + def test_ex1 + assert_equal(true, baftera('aabb')) + end + + def test_ex2 + assert_equal(false, baftera('abab')) + end + + def test_ex3 + assert_equal(false, baftera('aaa')) + end + + def test_ex4 + assert_equal(true, baftera('bbb')) + end + +end diff --git a/challenge-273/roger-bell-west/rust/ch-1.rs b/challenge-273/roger-bell-west/rust/ch-1.rs new file mode 100755 index 0000000000..d56dd40ffc --- /dev/null +++ b/challenge-273/roger-bell-west/rust/ch-1.rs @@ -0,0 +1,38 @@ +#! /bin/sh +//usr/bin/env rustc --test $0 -o ${0}x && ./${0}x --nocapture; rm -f ${0}x ; exit + +#[test] +fn test_ex1() { + assert_eq!(percentageofcharacter("perl", 'e'), 25); +} + +#[test] +fn test_ex2() { + assert_eq!(percentageofcharacter("java", 'a'), 50); +} + +#[test] +fn test_ex3() { + assert_eq!(percentageofcharacter("python", 'm'), 0); +} + +#[test] +fn test_ex4() { + assert_eq!(percentageofcharacter("ada", 'a'), 67); +} + +#[test] +fn test_ex5() { + assert_eq!(percentageofcharacter("ballerina", 'l'), 22); +} + +#[test] +fn test_ex6() { + assert_eq!(percentageofcharacter("analitik", 'k'), 13); +} + +fn percentageofcharacter(a: &str, c: char) -> u8 { + let d = a.len(); + let n = 100 * a.match_indices(c).count(); + ((n + d / 2) / d) as u8 +} diff --git a/challenge-273/roger-bell-west/rust/ch-2.rs b/challenge-273/roger-bell-west/rust/ch-2.rs new file mode 100755 index 0000000000..968323e5e7 --- /dev/null +++ b/challenge-273/roger-bell-west/rust/ch-2.rs @@ -0,0 +1,34 @@ +#! /bin/sh +//usr/bin/env rustc --test $0 -o ${0}x && ./${0}x --nocapture; rm -f ${0}x ; exit + +#[test] +fn test_ex1() { + assert_eq!(baftera("aabb"), true); +} + +#[test] +fn test_ex2() { + assert_eq!(baftera("abab"), false); +} + +#[test] +fn test_ex3() { + assert_eq!(baftera("aaa"), false); +} + +#[test] +fn test_ex4() { + assert_eq!(baftera("bbb"), true); +} + +fn baftera(a: &str) -> bool { + let firstb = a.find('b'); + if firstb == None { + return false; + } + let lasta = a.rfind('a'); + if lasta == None { + return true; + } + lasta.unwrap() < firstb.unwrap() +} diff --git a/challenge-273/roger-bell-west/scala/ch-1.scala b/challenge-273/roger-bell-west/scala/ch-1.scala new file mode 100644 index 0000000000..013000d260 --- /dev/null +++ b/challenge-273/roger-bell-west/scala/ch-1.scala @@ -0,0 +1,47 @@ + +object Percentageofcharacter { + def percentageofcharacter(a: String, c: Char): Int = { + val d = a.length + val n = 100 * a.filter(x => x == c).size + (n + d / 2) / d + } + def main(args: Array[String]) { + if (percentageofcharacter("perl", 'e') == 25) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("java", 'a') == 50) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("python", 'm') == 0) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("ada", 'a') == 67) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("ballerina", 'l') == 22) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (percentageofcharacter("analitik", 'k') == 13) { + print("Pass") + } else { + print("Fail") + } + println("") + + } +} diff --git a/challenge-273/roger-bell-west/scala/ch-2.scala b/challenge-273/roger-bell-west/scala/ch-2.scala new file mode 100644 index 0000000000..64f4f35662 --- /dev/null +++ b/challenge-273/roger-bell-west/scala/ch-2.scala @@ -0,0 +1,41 @@ + +object Baftera { +def baftera(a: String): Boolean = { + val firstb = a.indexOf('b') + val lasta = a.lastIndexOf('a') + if (firstb == -1) { + return false + } + if (lasta == -1) { + return true + } + lasta < firstb +} + def main(args: Array[String]) { + if (baftera("aabb")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (!baftera("abab")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (!baftera("aaa")) { + print("Pass") + } else { + print("Fail") + } + print(" ") + if (baftera("bbb")) { + print("Pass") + } else { + print("Fail") + } + println("") + + } +} diff --git a/challenge-273/roger-bell-west/tests.json b/challenge-273/roger-bell-west/tests.json new file mode 100644 index 0000000000..95d6a506af --- /dev/null +++ b/challenge-273/roger-bell-west/tests.json @@ -0,0 +1,72 @@ +{ + "ch-1" : [ + { + "function" : "percentageofcharacter", + "multiarg" : true, + "arguments" : [ + "perl", + "e" + ], + "result" : 25 + }, + { + "multiarg" : true, + "arguments" : [ + "java", + "a" + ], + "result" : 50 + }, + { + "multiarg" : true, + "arguments" : [ + "python", + "m" + |
