Issue #1512791:  In setframerate method of Wave_write, round non-integral
inputs to the nearest integer.  Thanks Neil Tallim for the patch.
diff --git a/Lib/test/test_wave.py b/Lib/test/test_wave.py
index 1bcaa242..e0aace4 100644
--- a/Lib/test/test_wave.py
+++ b/Lib/test/test_wave.py
@@ -22,11 +22,14 @@
         except OSError:
             pass
 
-    def test_it(self):
+    def test_it(self, test_rounding=False):
         self.f = wave.open(TESTFN, 'wb')
         self.f.setnchannels(nchannels)
         self.f.setsampwidth(sampwidth)
-        self.f.setframerate(framerate)
+        if test_rounding:
+            self.f.setframerate(framerate - 0.1)
+        else:
+            self.f.setframerate(framerate)
         self.f.setnframes(nframes)
         output = b'\0' * nframes * nchannels * sampwidth
         self.f.writeframes(output)
@@ -39,6 +42,13 @@
         self.assertEqual(nframes, self.f.getnframes())
         self.assertEqual(self.f.readframes(nframes), output)
 
+    def test_fractional_framerate(self):
+        """
+        Addresses [ 1512791 ] module wave does no rounding
+        Floating point framerates should be rounded, rather than truncated.
+        """
+        self.test_it(test_rounding=True)
+
     def test_issue7681(self):
         self.f = wave.open(TESTFN, 'wb')
         self.f.setnchannels(nchannels)